diff options
| author | 2014-02-19 14:05:39 -0800 | |
|---|---|---|
| committer | 2014-04-04 16:07:46 -0700 | |
| commit | 754ddad084ccb610d0cf486f6131bdc69bae5bc6 (patch) | |
| tree | 18d8314f3f6760b035c2bcda7760782ad4f0e0bf /compiler/dex/compiler_enums.h | |
| parent | 97a332b4476d5a2b4ad0650dacc6bfcff882fc57 (diff) | |
Use trampolines for calls to helpers
This is an ARM specific optimization to the compiler
that uses trampoline islands to make calls to runtime
helper functions. The intention is to reduce the size
of the generated code (by 2 bytes per call) without
affecting performance.
By default this is on when generating an OAT file. It is
off when compiling to memory.
To switch this off in dex2oat, use the command line option:
--no-helper-trampolines
Enhances disassembler to print the trampoline entry on the
BL instruction like this:
0xb6a850c0: f7ffff9e bl -196 (0xb6a85000) ; pTestSuspend
Bug: 12607709
Change-Id: I9202bdb7cf21252ad807bd48701f1f6ce8e3d0fe
Diffstat (limited to 'compiler/dex/compiler_enums.h')
| -rw-r--r-- | compiler/dex/compiler_enums.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/dex/compiler_enums.h b/compiler/dex/compiler_enums.h index 6c8c85d16d..a3ce4f9c54 100644 --- a/compiler/dex/compiler_enums.h +++ b/compiler/dex/compiler_enums.h @@ -430,10 +430,12 @@ enum FixupKind { kFixupT2Branch, // Thumb2 Unconditional branch kFixupBlx1, // Blx1 (start of Blx1/Blx2 pair). kFixupBl1, // Bl1 (start of Bl1/Bl2 pair). + kFixup2Bl1, // Thumb2 Bl1 (start of Bl1/Bl2 pair). kFixupAdr, // Adr. kFixupMovImmLST, // kThumb2MovImm16LST. kFixupMovImmHST, // kThumb2MovImm16HST. kFixupAlign4, // Align to 4-byte boundary. + kFixupTrampCall, // Call into trampoline for runtime helper. }; std::ostream& operator<<(std::ostream& os, const FixupKind& kind); |