summaryrefslogtreecommitdiffstats
path: root/test/700-LoadArgRegs
diff options
context:
space:
mode:
authorSerguei Katkov <serguei.i.katkov@intel.com>2014-07-15 12:01:00 +0700
committerSerguei Katkov <serguei.i.katkov@intel.com>2014-07-18 13:59:18 +0700
commit8e3acdd132aef1391676a5db2696804900aacd8e (patch)
treedf23f2cf3d5927f9b189bee1e386c80981db6bae /test/700-LoadArgRegs
parentfbde4dd1cb6db729e3f3ee5bdae0cdd824d73054 (diff)
downloadart-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.txt1
-rw-r--r--test/700-LoadArgRegs/src/Main.java11
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);
}
}