summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/arm
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/codegen/arm')
-rw-r--r--src/compiler/codegen/arm/ArchFactory.cc16
-rw-r--r--src/compiler/codegen/arm/Thumb2/Gen.cc16
2 files changed, 28 insertions, 4 deletions
diff --git a/src/compiler/codegen/arm/ArchFactory.cc b/src/compiler/codegen/arm/ArchFactory.cc
index bdadf6e881..c3de5ffc13 100644
--- a/src/compiler/codegen/arm/ArchFactory.cc
+++ b/src/compiler/codegen/arm/ArchFactory.cc
@@ -22,6 +22,8 @@
*
*/
+#include "oat_compilation_unit.h"
+
#define SLOW_FIELD_PATH (cUnit->enableDebug & (1 << kDebugSlowFieldPath))
#define SLOW_INVOKE_PATH (cUnit->enableDebug & (1 << kDebugSlowInvokePath))
#define SLOW_STRING_PATH (cUnit->enableDebug & (1 << kDebugSlowStringPath))
@@ -303,8 +305,13 @@ STATIC void genSput(CompilationUnit* cUnit, MIR* mir, RegLocation rlSrc,
bool isVolatile;
bool isReferrersClass;
uint32_t fieldIdx = mir->dalvikInsn.vB;
+
+ OatCompilationUnit mUnit(cUnit->class_loader, cUnit->class_linker,
+ *cUnit->dex_file, *cUnit->dex_cache, cUnit->code_item,
+ cUnit->method_idx, cUnit->access_flags);
+
bool fastPath =
- cUnit->compiler->ComputeStaticFieldInfo(fieldIdx, cUnit,
+ cUnit->compiler->ComputeStaticFieldInfo(fieldIdx, &mUnit,
fieldOffset, ssbIndex,
isReferrersClass, isVolatile, true);
if (fastPath && !SLOW_FIELD_PATH) {
@@ -397,8 +404,13 @@ STATIC void genSget(CompilationUnit* cUnit, MIR* mir, RegLocation rlDest,
bool isVolatile;
bool isReferrersClass;
uint32_t fieldIdx = mir->dalvikInsn.vB;
+
+ OatCompilationUnit mUnit(cUnit->class_loader, cUnit->class_linker,
+ *cUnit->dex_file, *cUnit->dex_cache, cUnit->code_item,
+ cUnit->method_idx, cUnit->access_flags);
+
bool fastPath =
- cUnit->compiler->ComputeStaticFieldInfo(fieldIdx, cUnit,
+ cUnit->compiler->ComputeStaticFieldInfo(fieldIdx, &mUnit,
fieldOffset, ssbIndex,
isReferrersClass, isVolatile, false);
if (fastPath && !SLOW_FIELD_PATH) {
diff --git a/src/compiler/codegen/arm/Thumb2/Gen.cc b/src/compiler/codegen/arm/Thumb2/Gen.cc
index 5a9750a3ac..e20e19ba5b 100644
--- a/src/compiler/codegen/arm/Thumb2/Gen.cc
+++ b/src/compiler/codegen/arm/Thumb2/Gen.cc
@@ -22,6 +22,8 @@
*
*/
+#include "oat_compilation_unit.h"
+
namespace art {
/*
@@ -382,8 +384,13 @@ STATIC void genIGet(CompilationUnit* cUnit, MIR* mir, OpSize size,
int fieldOffset;
bool isVolatile;
uint32_t fieldIdx = mir->dalvikInsn.vC;
+
+ OatCompilationUnit mUnit(cUnit->class_loader, cUnit->class_linker,
+ *cUnit->dex_file, *cUnit->dex_cache, cUnit->code_item,
+ cUnit->method_idx, cUnit->access_flags);
+
bool fastPath =
- cUnit->compiler->ComputeInstanceFieldInfo(fieldIdx, cUnit,
+ cUnit->compiler->ComputeInstanceFieldInfo(fieldIdx, &mUnit,
fieldOffset, isVolatile, false);
if (fastPath && !SLOW_FIELD_PATH) {
RegLocation rlResult;
@@ -437,8 +444,13 @@ STATIC void genIPut(CompilationUnit* cUnit, MIR* mir, OpSize size,
int fieldOffset;
bool isVolatile;
uint32_t fieldIdx = mir->dalvikInsn.vC;
+
+ OatCompilationUnit mUnit(cUnit->class_loader, cUnit->class_linker,
+ *cUnit->dex_file, *cUnit->dex_cache, cUnit->code_item,
+ cUnit->method_idx, cUnit->access_flags);
+
bool fastPath =
- cUnit->compiler->ComputeInstanceFieldInfo(fieldIdx, cUnit,
+ cUnit->compiler->ComputeInstanceFieldInfo(fieldIdx, &mUnit,
fieldOffset, isVolatile, true);
if (fastPath && !SLOW_FIELD_PATH) {
RegisterClass regClass = oatRegClassBySize(size);