Mike Pall
8fc9bc1724
Make sure to flush/sync the D/I-cache for all generated code.
2011-10-24 16:16:14 +02:00
Mike Pall
a0d7827554
Generalize handling of stack checks indicated by highest exit + 1.
2011-10-24 16:11:38 +02:00
Mike Pall
c01aaad890
Fix register hints for arithmetic helper functions.
2011-10-22 02:00:15 +02:00
Mike Pall
c805a49d30
Separate/rename NUM/FLOAT <-> I64/U64 conversion functions.
2011-10-22 01:59:10 +02:00
Mike Pall
ff7f7a7180
Cleanup various endianess issues in assembler backend.
2011-10-22 01:35:57 +02:00
Mike Pall
1b949dc60a
Use some register allocator helpers for multiple architectures.
2011-09-05 20:23:20 +02:00
Mike Pall
eb92daad0a
ARM: Don't evict ASMREF_L in ra_evictk().
2011-07-12 15:59:07 +02:00
Mike Pall
deeb8196c4
Reorganize trace linking and track link types.
2011-06-28 23:23:34 +02:00
Mike Pall
db22ce2ba8
Fix iOS build.
2011-06-27 01:33:50 +02:00
Mike Pall
513bd6e952
x86/x64: Don't evict BASE in ra_evictk().
2011-06-22 21:07:02 +02:00
Mike Pall
5d82cfd091
ARM: Add ARM-specific assembler backend.
2011-06-02 03:18:26 +02:00
Mike Pall
a770bf3741
Many soft-float-related fixes to SPLIT pass and assembler backend.
2011-06-02 01:24:36 +02:00
Mike Pall
2d0b32500e
ARM: Tune rematerialization scheduler.
2011-05-31 21:50:14 +02:00
Mike Pall
7bad42a3ba
Fix compiler warning.
2011-05-27 02:01:36 +02:00
Mike Pall
840a067d4e
ARM: Fix rematerialization scheduler.
2011-05-26 18:05:19 +02:00
Mike Pall
8d4400331d
ARM: Flush instruction cache in assembler backend.
2011-05-26 18:04:01 +02:00
Mike Pall
afad72af25
ARM: Add ARM-specific tuning to generic assembler backend.
2011-05-22 17:54:28 +02:00
Mike Pall
aaba681056
ARM: Add rematerialization scheduler for constants to backend.
2011-05-22 17:50:36 +02:00
Mike Pall
138f54352a
Split up FP IR instructions with SPLIT pass for soft-float targets.
2011-05-22 17:44:58 +02:00
Mike Pall
d0115c65f5
More portability cleanups for assembler backend.
2011-05-22 17:13:16 +02:00
Mike Pall
effdfda673
Move IR_CALL* definitions to lj_ircall.h.
2011-05-22 16:28:43 +02:00
Mike Pall
3a942d6cea
Portability cleanups for assembler backend.
2011-05-17 21:26:00 +02:00
Mike Pall
fb46370e56
Cleanup of target dependencies.
2011-05-16 19:32:47 +02:00
Mike Pall
dab4bcafba
Add target-specific macro for stack alignment in assembler backend.
2011-05-16 02:43:14 +02:00
Mike Pall
58f38c254b
Move x86/x64 parts of JIT assembler backend to extra files.
2011-05-12 01:35:09 +02:00
Mike Pall
800349387a
Disentangle target-specific parts of JIT assembler backend.
2011-05-12 01:27:20 +02:00
Mike Pall
c77ca54564
FFI: Compile C function calls with 64 bit args/results in 32 bit mode.
2011-04-29 19:40:50 +02:00
Mike Pall
eb7b452d53
x86: Pop unused FP result from x87 stack.
2011-04-29 19:35:25 +02:00
Mike Pall
31e0774a9e
FFI: Fix cdata finalization.
2011-04-13 21:37:54 +02:00
Mike Pall
3b6f37dd2c
FFI: Add ctype metamethods and ffi.metatype().
2011-04-12 19:16:39 +02:00
Mike Pall
66a1006175
Fuse XLOAD/XSTORE operands more aggressively.
2011-04-05 16:32:27 +02:00
Mike Pall
48438b9e13
Fix code generation for PHIs with type IRT_FLOAT.
2011-04-05 16:29:40 +02:00
Mike Pall
7fb1075903
DUALNUM: Add integer variant of MIN/MAX.
2011-03-11 23:28:46 +01:00
Mike Pall
bfce3c1127
DUALNUM: Handle integer type in JIT compiler.
2011-03-10 01:57:24 +01:00
Mike Pall
1c9981ae4c
x86/x64: Fix code generation for fused IR_MUL/IR_MULOV.
2011-03-10 01:09:18 +01:00
Mike Pall
a127eaf8d2
FFI: Fix x86 code generation for ffi.string().
2011-03-10 00:57:02 +01:00
Mike Pall
449cee405c
Fix code generation for bit.bnot().
2011-03-07 22:11:01 +01:00
Mike Pall
54978e481b
DUALNUM: Make overflow guards weak. Add IR_USE and IR_MULOV.
2011-03-07 20:21:38 +01:00
Mike Pall
1cb58fb7bb
Fix code generation for Intel Atom in x64 mode.
2011-03-03 00:49:45 +01:00
Mike Pall
e1aa8d0d97
FFI: Fix compiled ffi.string() semantics.
2011-02-28 19:47:51 +01:00
Mike Pall
97d0874ff5
Add IR_XBAR, a barrier against XLOAD/XSTORE optimizations.
2011-02-07 21:59:25 +01:00
Mike Pall
26fadcd25b
FFI: Record simple C function calls.
...
Only handles cdecl and fixarg C functions.
Doesn't handle pass-by-value aggregates.
Doesn't handle 64 bit args/returns on 32 bit CPUs.
2011-02-05 21:50:15 +01:00
Mike Pall
df65b8b419
FFI: Rename IR_CNEWP to IR_CNEWI and use it to box 64 bit integers.
...
Generates smaller IR and DCE eliminates many intermediate boxes.
Needs allocation sinking to eliminate the boxes kept alive by PHIs.
2011-02-03 04:22:27 +01:00
Mike Pall
1027018b21
Rename IR_POWI to IR_POW.
2011-02-02 21:33:11 +01:00
Mike Pall
a1e0f991d8
FFI: Record 64 bit integer divide and modulo.
2011-02-02 21:24:55 +01:00
Mike Pall
b613216efc
Add SPLIT pass to split 64 bit IR instructions for 32 bit CPUs.
...
Add generic HIOP instruction for extra backend functionality.
Add support for HIOP to x86 backend.
Use POWI for 64 bit integer x^k, too.
POWI is lowered to a call by SPLIT or the x64 backend.
2011-02-02 02:29:37 +01:00
Mike Pall
d20e53c322
Combine i8/u8 XLOAD with BAND+comparison into test byte mrm, imm8.
2011-01-19 02:05:26 +01:00
Mike Pall
925050fe3f
Differentiate between IR_KPTR and IR_KKPTR.
...
IR_KPTR holds a const pointer to possibly non-const content.
IR_KKPTR holds a const pointer to definitely const content.
Note that only content known by the VM to be const qualifies.
Content tagged as const by users (e.g. const char *) doesn't.
2011-01-19 00:40:03 +01:00
Mike Pall
f385af7084
FFI: Record 64 bit integer comparisons and pointer comparisons.
2011-01-17 01:23:04 +01:00
Mike Pall
06f99fc3df
Bump copyright date to 2011.
2011-01-09 17:12:53 +01:00