AArch64: Fix quick compiler monitor implementation.

Also with some small fixes :
1. Enable some dex byte code to compile.
2. Copy the register definition from runtime.cc.
3. A quick fix for "cmp Wn, Wm" in the assembler.
4. Optimise GenMoveException a bit by using xzr.
5. Fix improper use of StoreValueWide() on 32-bit value in FlushIns().
6. Fix one debug assert in the assembler.
It can pass all cases in run-all-test, except 044 which also fails with
the interpreter.

Change-Id: I9cc0253f1039c78d5100640235ac33e884b02560
diff --git a/compiler/dex/frontend.cc b/compiler/dex/frontend.cc
index 144594e..3bc060b 100644
--- a/compiler/dex/frontend.cc
+++ b/compiler/dex/frontend.cc
@@ -147,8 +147,8 @@
     // Instruction::MOVE_RESULT,
     // Instruction::MOVE_RESULT_WIDE,
     // Instruction::MOVE_RESULT_OBJECT,
-    // Instruction::MOVE_EXCEPTION,
-    // Instruction::RETURN_VOID,
+    Instruction::MOVE_EXCEPTION,
+    Instruction::RETURN_VOID,
     // Instruction::RETURN,
     // Instruction::RETURN_WIDE,
     // Instruction::RETURN_OBJECT,
@@ -163,8 +163,8 @@
     // Instruction::CONST_STRING,
     // Instruction::CONST_STRING_JUMBO,
     // Instruction::CONST_CLASS,
-    // Instruction::MONITOR_ENTER,
-    // Instruction::MONITOR_EXIT,
+    Instruction::MONITOR_ENTER,
+    Instruction::MONITOR_EXIT,
     // Instruction::CHECK_CAST,
     // Instruction::INSTANCE_OF,
     // Instruction::ARRAY_LENGTH,
@@ -173,7 +173,7 @@
     // Instruction::FILLED_NEW_ARRAY,
     // Instruction::FILLED_NEW_ARRAY_RANGE,
     // Instruction::FILL_ARRAY_DATA,
-    // Instruction::THROW,
+    Instruction::THROW,
     // Instruction::GOTO,
     // Instruction::GOTO_16,
     // Instruction::GOTO_32,
@@ -230,14 +230,14 @@
     // Instruction::IPUT_BYTE,
     // Instruction::IPUT_CHAR,
     // Instruction::IPUT_SHORT,
-    // Instruction::SGET,
+    Instruction::SGET,
     // Instruction::SGET_WIDE,
-    // Instruction::SGET_OBJECT,
+    Instruction::SGET_OBJECT,
     // Instruction::SGET_BOOLEAN,
     // Instruction::SGET_BYTE,
     // Instruction::SGET_CHAR,
     // Instruction::SGET_SHORT,
-    // Instruction::SPUT,
+    Instruction::SPUT,
     // Instruction::SPUT_WIDE,
     // Instruction::SPUT_OBJECT,
     // Instruction::SPUT_BOOLEAN,
@@ -350,7 +350,7 @@
     // Instruction::AND_INT_LIT16,
     // Instruction::OR_INT_LIT16,
     // Instruction::XOR_INT_LIT16,
-    // Instruction::ADD_INT_LIT8,
+    Instruction::ADD_INT_LIT8,
     // Instruction::RSUB_INT_LIT8,
     // Instruction::MUL_INT_LIT8,
     // Instruction::DIV_INT_LIT8,
@@ -403,7 +403,7 @@
     // kMirOpNullCheck,
     // kMirOpRangeCheck,
     // kMirOpDivZeroCheck,
-    // kMirOpCheck,
+    kMirOpCheck,
     // kMirOpCheckPart2,
     // kMirOpSelect,
     // kMirOpLast,