Fixes to enable TrackLiveTemps optimization on x86.
- Created new kRegRegStore instruction class for Movdrx, where the
source is first, and the destination is second.
- Reverted neg_float and neg_double implementation to prevent confusion
of register types when optimizations are performed.
- Swapped order of loads for wide values to prevent base pointer from
being clobbered when the base pointer equals the low destination reg.
- Implemented opRegCopyWide for general purpose reg source to floating
point reg destination and vice versa.
- Added more opcode coverage to x86 disassembler.
Change-Id: I4e58eec91742cc51333003fa5a678ba5b23eb575
diff --git a/src/compiler/Frontend.cc b/src/compiler/Frontend.cc
index aeee4f0..bcaba10 100644
--- a/src/compiler/Frontend.cc
+++ b/src/compiler/Frontend.cc
@@ -791,8 +791,7 @@
// Disable some optimizations on X86 for now
cUnit->disableOpt |= (
(1 << kLoadStoreElimination) |
- (1 << kPromoteRegs) |
- (1 << kTrackLiveTemps));
+ (1 << kPromoteRegs));
}
/* Are we generating code for the debugger? */
if (compiler.IsDebuggingSupported()) {