| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Also implement spill slot support.
Change-Id: If5e28811e9fbbf3842a258772c633318a2f4fafc
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a "by-the-book" implementation. It currently only deals
with allocating registers, with no hint optimizations.
The changes remaining to make it functional are:
- Allocate spill slots.
- Resolution and placements of Move instructions.
- Connect it to the code generator.
Change-Id: Ie0b2f6ba1b98da85425be721ce4afecd6b4012a4
|
|
|
|
|
|
|
|
|
|
| |
And write a few tests while at it.
A parallel move resolver will be needed for performing multiple moves
that are conceptually parallel, for example moves at a block
exit that branches to a block with phi nodes.
Change-Id: Ib95b247b4fc3f2c2fcab3b8c8d032abbd6104cd7
|
|
|
|
|
|
|
|
|
| |
Make volatility for GetFieldObject a template parameter.
Move some trivial mirror::String routines to a -inl.h.
Bug: 14285442
Change-Id: Ie23b11d4f18cb15a62c3bbb42837a8aaf6b68f92
|
|
|
|
| |
Change-Id: I857e77530fca3e2fb872fc142a916af1b48400dc
|
|
|
|
| |
Change-Id: Ia9700756a0396d797a00b529896487d52c989329
|
|
|
|
|
|
|
|
|
| |
- Use InvokeDexCallingConventionVisitor for setting
up HParameterValues
- Use kVregSize instead of kX86WordSize when dealing with
virtual registers.
Change-Id: Ia520223010194c70a3ff0ed659077f55cec4e7d8
|
|
|
|
|
|
|
|
|
|
|
| |
HPushArgument is not needed for now (but might be when we start
optimizing). Also, calling convention for 64bits backend will
require to know more about the argument than the argument's
index. Therefore currently let HInvokeStatic setup the arguments,
which is possible because arguments of a calls are virtual registers
and not instructions.
Change-Id: I8753ed6083aa083c5180ab53b436dc8de4f1fe31
|
|
|
|
|
|
|
|
|
| |
- Add stack locations to the Location class.
- Change logic of parameter passing/setup by setting the
location of such instructions the ones for the calling
convention.
Change-Id: I4730ad58732813dcb9c238f44f55dfc0baa18799
|
|
|
|
|
|
| |
Add support for basic instructions to implement these tests.
Change-Id: I3870bf9301599043b3511522bb49dc6364c9b4c0
|
|
|
|
|
|
|
| |
- Fix stack layout to mimic Quick's.
- Implement some sub operations.
Change-Id: I8cf75a4d29b662381a64f02c0bc61d859482fc4e
|
|
|
|
| |
Change-Id: Ia11dc3cc520a1a5c7bd017013e5699af9570ce91
|
|
|
|
| |
Change-Id: I2daed646904f7711972a7da15d88be7573426932
|
|
|
|
|
|
|
|
|
| |
- Stop using the frame pointer for accessing locals.
- Stop emulating a stack when doing code generation. Instead,
rely on dex register model, where instructions only reference
registers.
Change-Id: Id51bd7d33ac430cb87a53c9f4b0c864eeb1006f9
|
|
|
|
| |
Change-Id: I5524e193cd07f2692a57c6b4f8069904471b2928
|
|
|
|
|
|
|
| |
Support is limited to calls without parameters and returning
void. For simplicity, we currently follow the Quick ABI.
Change-Id: I54805161141b7eac5959f1cae0dc138dd0b2e8a5
|
|
|
|
|
|
| |
Also rename accessors to ART's conventions.
Change-Id: I344807055b98aa4b27215704ec362191464acecc
|
|
|
|
|
|
|
|
|
| |
- Add HReturn instruction
- Generate code for locals/if/return
- Setup infrastructure for register allocation. Currently
emulate a stack.
Change-Id: Ib28c2dba80f6c526177ed9a7b09c0689ac8122fb
|
|
|
|
|
|
| |
Also make if take an input and build the use list for instructions.
Change-Id: I1938cee7dce5bd4c66b259fa2b431d2c79b3cf82
|
|
Change-Id: I9aae76908ff1d6e64fb71a6718fc1426b67a5c28
|