Andy Wingo
04d89a7ce2
Implement reloc shortening, and remove unused functionality
2019-04-26 12:40:44 +02:00
Andy Wingo
796f263ed8
Remove unused jit_epilog definition
2019-04-26 11:40:06 +02:00
Andy Wingo
a3e044c808
Move jit_move_operands etc to common lightening.c file
2019-04-26 09:09:50 +02:00
Andy Wingo
2602f17fb4
Simplify register representation again
...
There's only one flag, "callee-save". Also the regno range is limited
to 0-63 inclusive, to allow for cheap register sets as uint64_t values.
2019-04-25 19:12:55 +02:00
Andy Wingo
af4e0422ae
Align stack on 64-bit targets for calls
2019-04-25 18:12:23 +02:00
Andy Wingo
ddd66a2f34
Simplify register representation
...
Instead of JIT_R0 being a wrapped index into a table which then gives
the regno and class, just have JIT_R0 be the wrapped regno and class.
2019-04-25 17:03:46 +02:00
Andy Wingo
b34e230413
Fix apply_addend bug
...
* lightening/x86.c (jit_move_operands): Fix bug when calling
apply_addend.
2019-04-24 22:56:48 +02:00
Andy Wingo
4db777e12e
Add support for operand addends
...
This can allow for better register allocation around calls for field
locations.
2019-04-24 15:52:07 +02:00
Andy Wingo
d07dac40ad
Add proper parallel-moves solver
...
Add parallel assignment serializer from Guile, originating in the Caml
paper by Rideau et al.
2019-04-24 15:08:35 +02:00
Andy Wingo
0be4f7a2a1
Simplify API for loading call arguments
2019-04-22 09:15:03 +02:00
Andy Wingo
4e1876f294
Support spilling args to stack
2019-04-04 17:06:57 +02:00
Andy Wingo
ede10b101b
Support immediate arguments
2019-04-04 12:09:41 +02:00
Andy Wingo
f348b8ed6d
Change headers and files to be named "lightening" instead of "jit"
...
This improves integration with other projects. Like for example Guile
already has files named jit.c and jit.h; it's easier to manage if
lightening uses its own file names.
2019-04-03 13:57:48 +02:00