diff options
Diffstat (limited to 'src/compiler/codegen/arm')
| -rw-r--r-- | src/compiler/codegen/arm/ArchFactory.cc | 16 | ||||
| -rw-r--r-- | src/compiler/codegen/arm/Thumb2/Gen.cc | 16 |
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); |