diff options
| author | 2012-05-09 17:58:52 -0700 | |
|---|---|---|
| committer | 2012-05-15 15:44:18 -0700 | |
| commit | 41005ddb5576b8630a1084fbb3979ffa602c0599 (patch) | |
| tree | af8d74573cc3a98c959566233d12bdb15251910c /src/compiler_llvm/method_compiler.cc | |
| parent | c3f8fa57268740f95a3c25e605bcab638b18d7b9 (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.cc | 8 | 
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: |