Revert "Revert "Rework Quick compiler's register handling""

This reverts commit 86ec520fc8b696ed6f164d7b756009ecd6e4aace.

Ready.  Fixed the original type, plus some mechanical changes
for rebasing.

Still needs additional testing, but the problem with the original
CL appears to have been a typo in the definition of the x86
double return template RegLocation.

Change-Id: I828c721f91d9b2546ef008c6ea81f40756305891
diff --git a/compiler/dex/quick/mir_to_lir.h b/compiler/dex/quick/mir_to_lir.h
index e230c9d..19621b0 100644
--- a/compiler/dex/quick/mir_to_lir.h
+++ b/compiler/dex/quick/mir_to_lir.h
@@ -21,6 +21,7 @@
 #include "compiled_method.h"
 #include "dex/compiler_enums.h"
 #include "dex/compiler_ir.h"
+#include "dex/reg_storage.h"
 #include "dex/backend.h"
 #include "driver/compiler_driver.h"
 #include "leb128.h"
@@ -812,7 +813,7 @@
     virtual bool IsFpReg(int reg) = 0;
     virtual bool SameRegType(int reg1, int reg2) = 0;
     virtual int AllocTypedTemp(bool fp_hint, int reg_class) = 0;
-    virtual int AllocTypedTempPair(bool fp_hint, int reg_class) = 0;
+    virtual RegStorage AllocTypedTempWide(bool fp_hint, int reg_class) = 0;
     virtual int S2d(int low_reg, int high_reg) = 0;
     virtual int TargetReg(SpecialTargetRegister reg) = 0;
     virtual int GetArgMappingToPhysicalReg(int arg_num) = 0;