Fixes for x86 compiler optimizations.

x86 works with all but a few optimizations turned on, and the broken
ones are still disabled for now. This change includes:

- Flagging of opcodes to incidate register use and def. Also, made
  flagging more complete for loads/stores and set/use ccodes.

- Fixes to load store elimination, though it still doesn't work yet.

- Prevent double values that are loaded or stored from losing their
  FP_DOUBLE flag. Later optimizations use this sizing.

- Renumbering of DOUBLE registers so they alias with FP regs when
  masked.

- Add support in the disassembler to recognize shifts.

Change-Id: I758cdce418409fdd84206ce295005d5c9ab635f8
diff --git a/src/compiler/Frontend.cc b/src/compiler/Frontend.cc
index ba8d0d8..b4ec43e 100644
--- a/src/compiler/Frontend.cc
+++ b/src/compiler/Frontend.cc
@@ -799,8 +799,11 @@
   }
 #endif
   if (cUnit->instructionSet == kX86) {
-    // Disable optimizations on X86 for now
-    cUnit->disableOpt = -1;
+    // Disable some optimizations on X86 for now
+    cUnit->disableOpt |= (
+        (1 << kLoadStoreElimination) |
+        (1 << kPromoteRegs) |
+        (1 << kTrackLiveTemps));
   }
   /* Are we generating code for the debugger? */
   if (compiler.IsDebuggingSupported()) {