History log of /dalvik/vm/compiler/codegen/arm/Codegen.h
Revision Date Author Comments
d862faa2ceae186da5518607505eb942d634ced9 28-Apr-2011 Carl Shapiro <cshapiro@google.com> Get rid of uneeded extern, enum, typedef and struct qualifiers.

Change-Id: I236c5a1553a51f82c9bc3eaaab042046c854d3b4
5d5b94c8d14b166af580d5dd5906db4f9527d6ca 20-Apr-2011 Carl Shapiro <cshapiro@google.com> Move the compiler into C++.

Change-Id: Idffbdb02c29e2be03a75f5a0a664603f2299504a
01605d2b668e8e1701cfdfa302dde847b9171fc9 01-Feb-2011 Carl Shapiro <cshapiro@google.com> Remove the unused monitor tracking and deadlock prediction code.

This feature has been in the code base for several releases but has never
been enabled.

Change-Id: Ia770b03ebc90a3dc7851c0cd8ef301f9762f50db
f6789277a9d25379bf43ffc39ef091db722dd5af 25-Sep-2010 buzbee <buzbee@google.com> JIT: Source code reorganization to isolate target independent code

Much of the register utility code is target independent. Move it up
a level so the x86 JIT can use it.

Change-Id: Id9895a42281fd836cb1a2c942e106de94df62a9a
bff121aa3e5d3c34caf837227cb00a46bf3f1966 05-Aug-2010 buzbee <buzbee@google.com> JIT: Reworked the assembler to be smarter about short instruction forms

Previously, the JIT wasn't generating short-form compare and branch on
zero/not zero instructions for Thumb2. The reason was that these only
allow a 1-byte displacement, and when they didn't reach the assembler would
abort the trace, split it in half and try again. This change re-enables
cbz, cbnz generation and introduces a relatively lightweight retry
mechanism.

Also includes changes for Thumb2 to always generate large displacement
literal loads and conditional branches to minimize the number of retry
attempts.

Change-Id: Icf066836fad203f5c0fcbbb2ae8e1aa73d1cf816
fc075c2d1ae63c26f96e0c6eeb72efc898dbebbf 29-May-2010 Ben Cheng <bccheng@android.com> Clean up warnings detected by gcc.

Also re-enabled the JIT for the ARMv5te target.

Change-Id: I89fd229205e30e6ee92a4933290a7d8dca001232
bd1326d0e6b82a24ee80d50921e62152ea919151 03-Apr-2010 Ben Cheng <bccheng@android.com> Clean up the codegen for invoking helper callout functions.

All invoked functions are documented in compiler/codegen/arm/CalloutHelper.h
Bug: 2567981

Change-Id: Ia7cd4107272df1b0b5588fbcc0aafcc6d0723d60
434bae646046871c334b95bd9123a78da66c27c3 27-Mar-2010 Bill Buzbee <buzbee@google.com> Fix for 2542488 JIT codegen bug with overlapping wide operands

Change-Id: I2f31492f68cb753f76dd664cd6b0a52d7d32de4c
88dc28740f628a8d0d8fe05af0e11443f8793aa1 03-Feb-2010 jeffhao <jeffhao@google.com> Made Self Verification mode's memory interface less intrusive.
9e45c0b968d63ea38353c99252d233879c2efdaf 03-Feb-2010 jeffhao <jeffhao@google.com> Made Self Verification mode's memory interface less intrusive.
5d90c20bd7903d7bba966b224e576bf137bf8b4b 23-Nov-2009 Ben Cheng <bccheng@google.com> Restructure the codegen to make architectural depedency explicit.

The original Codegen.c is broken into three components:

- CodegenCommon.c (arch-independend)
- CodegenFactory.c (Thumb1/2 dependent)
- CodegenDriver.c (Dalvik dependent)

For the Thumb/Thumb2 directories, each contain the followin three files:

- Factory.c (low-level routines for instruction selections)
- Gen.c (invoke the ISA-specific instruction selection routines)
- Ralloc.c (arch-dependent register pools)

The FP directory contains FP-specific codegen routines depending on
Thumb/Thumb2/VFP/PortableFP:

- Thumb2VFP.c
- ThumbVFP.c
- ThumbPortableFP.c

Then the hierarchy is formed by stacking these files in the following top-down
order:

1 CodegenCommon.c
2 Thumb[2]/Factory.c
3 CodegenFactory.c
4 Thumb[2]/Gen.c
5 FP stuff
6 Thumb[2]/Ralloc.c
7 CodegenDriver.c
72e93344b4d1ffc71e9c832ec23de0657e5b04a5 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
1465db5ee2d3c4c4dcc8e017a294172e858765cb 24-Sep-2009 Bill Buzbee <buzbee@google.com> Major registor allocation rework - stage 1.

Direct usage of registers abstracted out.
Live values tracked locally. Redundant loads and stores suppressed.
Address of registers and register pairs unified w/ single "location" mechanism
Register types inferred using existing dataflow analysis pass.
Interim (i.e. Hack) mechanism for storing register liveness info. Rewrite TBD.
Stubbed-out code for linear scan allocation (for loop and long traces)
Moved optimistic lock check for monitor-enter/exit inline for Thumb2
Minor restructuring, renaming and general cleanup of codegen
Renaming of enums to follow coding convention
Formatting fixes introduced by the enum renaming

Rewrite of RallocUtil.c and addition of linear scan to come in stage 2.
d7d426a1d746f70edeaeccf77886f3ad8298e28c 22-Sep-2009 Ben Cheng <bccheng@google.com> Implemented a new scheduler and FP register allocator.

Improved performance by 50% over existing JIT for some FP benchmarks.
dcf3e5d43a1831a166f70cb9e0694cd4b0b356b0 11-Sep-2009 Ben Cheng <bccheng@google.com> Model resource usage for each Thumb/Thumb2 instrution.

This is an mid-point checkin to avoid future merge nightmare for the register
allocator work.
270c1d64a192341be842f46734054c692bac061e 14-Aug-2009 Bill Buzbee <buzbee@google.com> Thumb/Thumb2 instruction selection rework.

Change-id: I7428278f07f49e675d0271c58b3cbf1f6a4e9da1
9bc3df373ae6f4f7e6e97d554884d4e0dbad5494 30-Jul-2009 Bill Buzbee <buzbee@google.com> Stage 3 of Thumb2 support. armv7-a now generates vfp code inline.