summaryrefslogtreecommitdiff
path: root/src/compiler_llvm/method_compiler.cc
diff options
context:
space:
mode:
author jeffhao <jeffhao@google.com> 2012-05-09 17:58:52 -0700
committer jeffhao <jeffhao@google.com> 2012-05-15 15:44:18 -0700
commit41005ddb5576b8630a1084fbb3979ffa602c0599 (patch)
treeaf8d74573cc3a98c959566233d12bdb15251910c /src/compiler_llvm/method_compiler.cc
parentc3f8fa57268740f95a3c25e605bcab638b18d7b9 (diff)
Fix x86 type conversions. test-art-host-oat passes.
- test-art-host-oat enabled in test builds. - Created inline versions of float-to-int and double-to-int. - Fixed calls to helper functions for long-to-float/double and float/double-to-long. - Removed storePair and replaced its use with storeBaseDispWide (fixes iput-wide and aput-wide with doubles). - Renamed helper functions to have art_ prefix. - Fixed move-exception to store the result back. - Fixed floating point comparison when the destination reg is the same as a source. The typing would get confused since the source is floating point, but the result is int, and a clobber is needed to overwrite the expected result type. A similar thing happens in float/double-to-int. Change-Id: I0a876072254411aa42d6acadb8723be030727219
Diffstat (limited to 'src/compiler_llvm/method_compiler.cc')
-rw-r--r--src/compiler_llvm/method_compiler.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc
index 3f3e0ad581..3f640eedbe 100644
--- a/src/compiler_llvm/method_compiler.cc
+++ b/src/compiler_llvm/method_compiler.cc
@@ -801,11 +801,11 @@ void MethodCompiler::EmitInstruction(uint32_t dex_pc,
break;
case Instruction::FLOAT_TO_INT:
- EmitInsn_FPToInt(ARGS, kFloat, kInt, F2I);
+ EmitInsn_FPToInt(ARGS, kFloat, kInt, art_f2i);
break;
case Instruction::FLOAT_TO_LONG:
- EmitInsn_FPToInt(ARGS, kFloat, kLong, F2L);
+ EmitInsn_FPToInt(ARGS, kFloat, kLong, art_f2l);
break;
case Instruction::FLOAT_TO_DOUBLE:
@@ -813,11 +813,11 @@ void MethodCompiler::EmitInstruction(uint32_t dex_pc,
break;
case Instruction::DOUBLE_TO_INT:
- EmitInsn_FPToInt(ARGS, kDouble, kInt, D2I);
+ EmitInsn_FPToInt(ARGS, kDouble, kInt, art_d2i);
break;
case Instruction::DOUBLE_TO_LONG:
- EmitInsn_FPToInt(ARGS, kDouble, kLong, D2L);
+ EmitInsn_FPToInt(ARGS, kDouble, kLong, art_d2l);
break;
case Instruction::DOUBLE_TO_FLOAT: