Joel Dice
7978102cb6
use register for indexing if constant offset is too large (or too small)
...
Immediate indexes on ARM must be no more than 12 bits, so we must use
a temporary register for values which don't fit.
2010-11-09 11:36:38 -07:00
Joel Dice
5d5dbd860b
fix ARM tails=true build
...
This requires adding LinkRegister to the list of reserved registers,
since it must be preserved in the thunk code generated by
compileDirectInvoke. An alternative would be to explicitly preserve
it in that special case, but that would complicate the code quite a
bit.
2010-11-08 00:41:44 +00:00
jet
a1f5456451
All tests passing for ARM port in JIT mode.
2010-09-03 12:52:11 -06:00
Joel Dice
dd0a696932
handle logical AND with a constant in a single instruction where possible
2010-09-03 18:32:22 +01:00
Joel Dice
bd01784249
save return address in arm.cpp's MyAssembler::saveFrame
...
This is necessary to allow safe stack unwinding (e.g. for exception
handling and garbage collection) from native code.
2010-09-03 00:18:19 +01:00
jet
a20d7e028b
Longs.java test now progresses further before failure.
2010-09-02 16:09:01 -06:00
jet
b26dd4abf1
All but 6 tests are now passing in JIT mode on ARM.
2010-08-31 18:35:55 -06:00
jet
b6a839950f
Nine tests (including float and integer calculations) are now passing.
2010-08-30 16:13:10 -06:00
Joel Dice
56b59cef5c
use r6 instead of r0 in popFrameAndUpdateStackAndReturn
...
This avoids clobbering the return value.
2010-08-30 16:16:02 +01:00
jet
f740570ff6
Further debugging of ARM "Hello World!" JIT functionality.
2010-08-27 18:52:33 -06:00
jet
5c00cfac6f
Incomplete debugging of "Hello World!" on ARM.
2010-08-24 17:59:01 -06:00
jet
d9aac52b3d
First version; interpreted mode works and JIT mode compiles.
2010-07-12 14:18:36 -06:00
jet
d3d228e69b
moduloInt + arm work
2009-10-29 14:14:44 -06:00
jet
e00fc5d91a
ARM port work
2009-10-29 10:12:30 -06:00
jet
1ffe46a545
added ARM interpreted mode supported
2009-08-06 11:52:36 -06:00