Fix sign extension issues in x86_64 code generation
movl expects an Immediate int64_t that is in the range -2GB to
2GB. Cast uint32_t addresses to int32_t before passing as an
Immediate to movl.
In VisitIntegerValueOf, the base address may not fit in the disp32
field. Fall back to storing the base address in a temporary
register if it is larger than 2GB.
Bug: 36281983
Test: m -j test-art-host with LibartImgHostBaseAddress == 0xa0000000
Change-Id: I5f8cc4f5a6220afc577707e3831113b0ead1d2b2
2 files changed