diff options
author | Serguei Katkov <serguei.i.katkov@intel.com> | 2014-07-15 12:01:00 +0700 |
---|---|---|
committer | Serguei Katkov <serguei.i.katkov@intel.com> | 2014-07-18 13:59:18 +0700 |
commit | 8e3acdd132aef1391676a5db2696804900aacd8e (patch) | |
tree | df23f2cf3d5927f9b189bee1e386c80981db6bae /test/700-LoadArgRegs | |
parent | fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054 (diff) | |
download | art-8e3acdd132aef1391676a5db2696804900aacd8e.tar.gz art-8e3acdd132aef1391676a5db2696804900aacd8e.tar.bz2 art-8e3acdd132aef1391676a5db2696804900aacd8e.zip |
x86_64: Fix GenDalvikArgsRange for 64-bit ref
32-bit virtual register can be in 64-bit solo register.
So we should not compute the size of virtual register
basing on size of phyical register.
Change-Id: I4e11be13df8469be63808d0ce9d1ca6f80bef483
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Diffstat (limited to 'test/700-LoadArgRegs')
-rw-r--r-- | test/700-LoadArgRegs/expected.txt | 1 | ||||
-rw-r--r-- | test/700-LoadArgRegs/src/Main.java | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/test/700-LoadArgRegs/expected.txt b/test/700-LoadArgRegs/expected.txt index 4977df691e..c0d5eeec9f 100644 --- a/test/700-LoadArgRegs/expected.txt +++ b/test/700-LoadArgRegs/expected.txt @@ -74,3 +74,4 @@ a, b, c, d, e, f, g -91, -92, -93, -94, -95, -96, -97, -98, -99 -1, -91, -92, -93, -94, -95, -96, -97, -98, -99 1, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 2, 3, 4, 5, 6 +1234605616436508552, -8613303245920329199, 1234605616436508552 diff --git a/test/700-LoadArgRegs/src/Main.java b/test/700-LoadArgRegs/src/Main.java index 0e6de737b3..4649d05b22 100644 --- a/test/700-LoadArgRegs/src/Main.java +++ b/test/700-LoadArgRegs/src/Main.java @@ -274,6 +274,14 @@ public class Main { System.out.println(i1+", "+d1+", "+d2+", "+d3+", "+d4+", "+d5+", "+d6+", "+d7+", "+d8+", "+d9+", "+i2+", "+i3+", "+i4+", "+i5+", "+i6); } + static void testRefs1(Object o1, Object o2, Object o3, Object o4, Object o5, long l1, long l2, long l3) { + System.out.println(l1 + ", " + l2 + ", " + l3); + } + + static void testRefs(Object o1, Object o2, Object o3, Object o4, Object o5, long l1, long l2, long l3) { + testRefs1(o1, o2, o3, o4, o5, l1, l2, l3); + } + static public void main(String[] args) throws Exception { testI(); testB(); @@ -288,5 +296,8 @@ public class Main { testLL(); testMore(1, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 2, 3, 4, 5, 6); + + Object obj = new Object(); + testRefs(obj, obj, obj, obj, obj, 0x1122334455667788L, 0x8877665544332211L, 0x1122334455667788L); } } |