summaryrefslogtreecommitdiffstats
path: root/test/302-float-conversion
diff options
context:
space:
mode:
authorSerguei Katkov <serguei.i.katkov@intel.com>2014-06-20 16:45:52 +0700
committerSerguei Katkov <serguei.i.katkov@intel.com>2014-06-21 01:25:49 +0700
commit5078d978f21620824d9c2fdcd73063260592398c (patch)
tree324f322054b7b3620888b42b9ba36fd6cd17415e /test/302-float-conversion
parent2d2d6bb1ff8692efdddf104dabfb4a2d39877ff6 (diff)
downloadart-5078d978f21620824d9c2fdcd73063260592398c.zip
art-5078d978f21620824d9c2fdcd73063260592398c.tar.gz
art-5078d978f21620824d9c2fdcd73063260592398c.tar.bz2
x86_64: Fix fp-to-core conversion
Long max value cannot be represented with double precision and check fp against max_long does not guard invocation of conversion instruction. As a result conversion ends up with min long instead of max long. The patch changes the guard check to not allow conversion instruction for max long. Change-Id: Ied761051ec27cf6c833040c25a2c61ab9fcea414 Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Diffstat (limited to 'test/302-float-conversion')
-rw-r--r--test/302-float-conversion/expected.txt1
-rw-r--r--test/302-float-conversion/src/Main.java6
2 files changed, 7 insertions, 0 deletions
diff --git a/test/302-float-conversion/expected.txt b/test/302-float-conversion/expected.txt
index 7d5c1eb..0423076 100644
--- a/test/302-float-conversion/expected.txt
+++ b/test/302-float-conversion/expected.txt
@@ -1,2 +1,3 @@
Iteration Result is as expected
inter4:2.0
+max_long:9223372036854775807
diff --git a/test/302-float-conversion/src/Main.java b/test/302-float-conversion/src/Main.java
index afc5e97..2733135 100644
--- a/test/302-float-conversion/src/Main.java
+++ b/test/302-float-conversion/src/Main.java
@@ -21,6 +21,7 @@ public class Main {
public static void main(String args[]) {
test1();
test2();
+ test3();
}
public static void test1() {
@@ -55,4 +56,9 @@ public class Main {
System.out.println("inter4:" + inter4);
}
+ public static void test3() {
+ double d = Long.MAX_VALUE;
+ System.out.println("max_long:" + (long)d);
+ }
+
}