diff options
author | Ian Rogers <irogers@google.com> | 2013-08-05 10:56:33 -0700 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2013-08-12 06:11:35 +0000 |
commit | 468532ea115657709bc32ee498e701a4c71762d4 (patch) | |
tree | 4f6bd555afe2333df2e748eff72d8e1d23e8ce86 /compiler/utils/arm/assembler_arm.cc | |
parent | f981da1d60864a730f744ef2cc3a19391c8303f2 (diff) | |
download | android_art-468532ea115657709bc32ee498e701a4c71762d4.tar.gz android_art-468532ea115657709bc32ee498e701a4c71762d4.tar.bz2 android_art-468532ea115657709bc32ee498e701a4c71762d4.zip |
Entry point clean up.
Create set of entry points needed for image methods to avoid fix-up at load time:
- interpreter - bridge to interpreter, bridge to compiled code
- jni - dlsym lookup
- quick - resolution and bridge to interpreter
- portable - resolution and bridge to interpreter
Fix JNI work around to use JNI work around argument rewriting code that'd been
accidentally disabled.
Remove abstact method error stub, use interpreter bridge instead.
Consolidate trampoline (previously stub) generation in generic helper.
Simplify trampolines to jump directly into assembly code, keeps stack crawlable.
Dex: replace use of int with ThreadOffset for values that are thread offsets.
Tidy entry point routines between interpreter, jni, quick and portable.
Change-Id: I52a7c2bbb1b7e0ff8a3c3100b774212309d0828e
(cherry picked from commit 848871b4d8481229c32e0d048a9856e5a9a17ef9)
Diffstat (limited to 'compiler/utils/arm/assembler_arm.cc')
-rw-r--r-- | compiler/utils/arm/assembler_arm.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/utils/arm/assembler_arm.cc b/compiler/utils/arm/assembler_arm.cc index fa202c3017..f0d11d8f90 100644 --- a/compiler/utils/arm/assembler_arm.cc +++ b/compiler/utils/arm/assembler_arm.cc @@ -1246,10 +1246,10 @@ bool Address::CanHoldStoreOffset(StoreOperandType type, int offset) { // Implementation note: this method must emit at most one instruction when // Address::CanHoldLoadOffset. void ArmAssembler::LoadFromOffset(LoadOperandType type, - Register reg, - Register base, - int32_t offset, - Condition cond) { + Register reg, + Register base, + int32_t offset, + Condition cond) { if (!Address::CanHoldLoadOffset(type, offset)) { CHECK(base != IP); LoadImmediate(IP, offset, cond); @@ -1884,7 +1884,7 @@ void ArmExceptionSlowPath::Emit(Assembler* sasm) { // Don't care about preserving R0 as this call won't return __ mov(R0, ShifterOperand(scratch_.AsCoreRegister())); // Set up call to Thread::Current()->pDeliverException - __ LoadFromOffset(kLoadWord, R12, TR, QUICK_ENTRYPOINT_OFFSET(pDeliverException)); + __ LoadFromOffset(kLoadWord, R12, TR, QUICK_ENTRYPOINT_OFFSET(pDeliverException).Int32Value()); __ blx(R12); // Call never returns __ bkpt(0); |