Slava Pestov
e65a1b301a
cpu.x86.64: callback prologue was clobbering 5th parameter register on x86-64
2010-05-23 03:00:53 -04:00
Slava Pestov
b8ec5c6176
Stack allocation improvements
...
- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas
2010-05-22 02:37:00 -04:00
Slava Pestov
0f935bfbde
compiler.cfg.builder.alien: use ##local-allot to fix value struct passing on Win64
2010-05-19 01:53:32 -04:00
Slava Pestov
84e7076474
alien.data: add with-scoped-allocation combinator for stack-allocating C data
2010-05-19 00:33:36 -04:00
Slava Pestov
fbc222a8dc
compiler.tests: fix test for generalizations change
2010-05-18 23:08:37 -04:00
Slava Pestov
f6430de98a
cpu.x86.x87: compares were clobbering ST0
2010-05-18 19:18:53 -04:00
Slava Pestov
50b43806e8
alien.libraries, stack-checker.alien: check user inputs more carefully to ensure that invalid ABI descriptors don't slip through and break random stuff (reported by prunedtree)
2010-05-18 18:46:31 -04:00
Slava Pestov
66e9bed2d8
cpu.x86: add x87 codegen for Model T enthusiasts
2010-05-17 11:35:47 -04:00
Slava Pestov
bd55712f82
compiler: fix bad unit test
2010-05-14 18:37:11 -04:00
Slava Pestov
db0f40e481
compiler: small fixes and cleanups
2010-05-13 02:48:20 -04:00
Slava Pestov
af4e851392
FFI rewrite part 2: use ##peek and ##replace instructions to access stack
2010-05-09 23:26:43 -04:00
Slava Pestov
3d66820344
FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions
2010-05-09 21:36:52 -04:00
Slava Pestov
0d14e85cb7
compiler: more tests
2010-05-04 05:46:45 -05:00
Slava Pestov
8c099dac43
cpu.x86: GC root offsets were computed wrong in words containing alien calls
2010-05-04 02:53:53 -04:00
Slava Pestov
d49032a402
compiler.tests: remove useless test from float tests; min and max are generic now, with methods on floats, so any potential inconsistency is gone
2010-05-04 00:07:53 -04:00
Slava Pestov
73c83333f2
compiler: remove flat machine representation and generate code directly from the CFG
2010-05-03 17:34:32 -04:00
Slava Pestov
bb0579ecf9
Updating tests for recent compiler changes
2010-05-03 17:34:30 -04:00
Slava Pestov
e70c09c690
compiler.cfg.linear-scan.assignment: spill slot representation logic was backwards, just like Factor
2010-05-03 17:34:29 -04:00
Slava Pestov
16566506f1
compiler.cfg: remove unused 'reps' slot from compiler.cfg, and re-organize things in preparation for SSA register allocation
2010-05-03 17:34:18 -04:00
Slava Pestov
fd84bb98bc
strings: move string-nth primitive out of the VM and into the library
2010-05-03 17:34:12 -04:00
Slava Pestov
59fe281799
compiler.cfg: more flexible addressing for ##slot and ##set-slot
2010-05-03 17:34:06 -04:00
Slava Pestov
becd957d29
compiler.cfg: merge all alien accessors into ##load-memory-imm and ##store-memory-imm
2010-05-03 17:34:06 -04:00
Slava Pestov
65e35b842f
compiler.tests.low-level-ir: update for recent changes
2010-05-03 17:34:04 -04:00
Slava Pestov
c4cf2a4085
compiler: change how 'f' is represented in low level IR to simplify some code, and fuse a ##load-constant of a word with a ##compare into a ##compare-imm on x86-32. This eliminates a spill from binary-search
2010-04-18 21:42:45 -05:00
Slava Pestov
05dba2ba81
sequences: remove stupid <flat-slice> word
2010-04-17 00:58:30 -05:00
Slava Pestov
98ff114e52
compiler.tests.redefine23: test wasn't testing anything
2010-04-13 00:56:48 -07:00
Slava Pestov
91e8635ccd
compiler.tests.alien: fix tests on Win64
2010-04-13 01:24:04 -05:00
Slava Pestov
00a5108b86
compiler.tests.alien: get it passing when VM is compiled with MINGW by disabling certain tests and using the MINGW ABI for others, and fix fastcall alien-indirect tests for name decoration
2010-04-12 18:14:18 -05:00
Slava Pestov
8e1afbd650
Fixing load errors
2010-04-10 17:24:44 -07:00
Slava Pestov
fa810bc3b4
compiler.tests.alien: fix typo
2010-04-10 00:41:20 -07:00
Joe Groff
3b4f8758b5
Merge branch 'master' of git://factorcode.org/git/factor into abi-symbols
...
Conflicts:
basis/compiler/tests/alien.factor
2010-04-06 12:30:15 -07:00
Joe Groff
e2e562ab05
add tests for fastcall callbacks
2010-04-02 00:23:39 -07:00
Joe Groff
8384a9de68
test fastcall indirect struct return
2010-04-02 00:00:34 -07:00
Joe Groff
abfaabea5d
remove fastcall struct param tests because GCC appears to behave differently from VC++ here and again, who cares
2010-04-01 23:54:08 -07:00
Joe Groff
22bba39a75
add tests for struct returns from fastcall
2010-04-01 23:52:56 -07:00
Joe Groff
6d9d5df8e1
test indirect fastcalls
2010-04-01 23:43:55 -07:00
Joe Groff
a1ea6729ae
compiler.tests.alien: add back fastcall float and struct tests
2010-04-01 22:47:16 -07:00
Joe Groff
5739dbd6bb
add a test that multiple stdcalls or fastcalls in the same word behave correctly
2010-04-01 18:48:12 -07:00
Joe Groff
d6ad21bcc6
make "fastcall" symbol private since it doesn't really work in all cases
2010-04-01 18:34:15 -07:00
Joe Groff
db1f454cf0
retire mixed int/float fastcall tests because who cares
2010-04-01 18:25:56 -07:00
Slava Pestov
4f585f991d
compiler: new set-special-object intrinsic; more efficient special-object intrinsic
2010-04-01 20:09:14 -04:00
Joe Groff
8c5b45694e
check gc after fastcall ffi tests like stdcall tests
2010-04-01 14:15:34 -07:00
Joe Groff
202b62add9
typos in ffi tests
2010-04-01 03:02:36 -07:00
Joe Groff
7296e27e23
add fastcall functions to ffi tests
2010-04-01 02:22:42 -07:00
Joe Groff
1d06be5021
"stdcall" -> stdcall
2010-03-31 19:29:04 -07:00
Joe Groff
d951be1832
"cdecl" -> cdecl
2010-03-31 19:20:35 -07:00
Slava Pestov
adeb6fb68f
vm: actually use context callstacks when running code
2010-03-26 22:44:43 -04:00
Slava Pestov
af573bd022
Add context-specific special object table, generalizing catchstack_save and current_callback_save fields of context struct
2010-03-18 22:06:00 +13:00
Joe Groff
13cf49c45c
fix stack effects in compiler tests
2010-03-08 23:46:20 -08:00
Joe Groff
96ab4492d2
rename current string-mangling "char*" to "c-string". char* is now just a boring old pointer to char
2010-02-23 11:42:02 -08:00