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/codegen/GenCommon.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/codegen/GenCommon.cc')
| -rw-r--r-- | src/compiler/codegen/GenCommon.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/codegen/GenCommon.cc b/src/compiler/codegen/GenCommon.cc index 14eaf1db6d..c9ba285c5f 100644 --- a/src/compiler/codegen/GenCommon.cc +++ b/src/compiler/codegen/GenCommon.cc @@ -1060,7 +1060,7 @@ void genIPut(CompilationUnit* cUnit, MIR* mir, OpSize size, RegLocation rlSrc, if (isVolatile) { oatGenMemBarrier(cUnit, kST); } - storePair(cUnit, regPtr, rlSrc.lowReg, rlSrc.highReg); + storeBaseDispWide(cUnit, regPtr, 0, rlSrc.lowReg, rlSrc.highReg); if (isVolatile) { oatGenMemBarrier(cUnit, kSY); } @@ -1642,7 +1642,7 @@ void genArrayPut(CompilationUnit* cUnit, MIR* mir, OpSize size, oatFreeTemp(cUnit, regLen); } - storePair(cUnit, regPtr, rlSrc.lowReg, rlSrc.highReg); + storeBaseDispWide(cUnit, regPtr, 0, rlSrc.lowReg, rlSrc.highReg); oatFreeTemp(cUnit, regPtr); } else { |