Slava Pestov
19412e4ad1
compiler: Start using tagged-rep for stuff, and split up compiler.cfg.representations into several sub-vocabularies
2010-05-03 17:34:01 -04:00
Slava Pestov
1185ab0305
cpu.ppc: fix breakage caused by ##compare-imm change
2010-04-19 01:40:16 -05:00
Slava Pestov
1d7089dc04
compiler: combine ##load-constant followed by ##alien-double into a ##load-double on x86-32, saving an integer register
2010-04-18 21:42:45 -05:00
Slava Pestov
dbd7489894
compiler.cfg: fix some bugs introduced by the ##compare-imm fusion patch
2010-04-18 21:42:45 -05: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
3b92172115
Replace 'untested' tag with 'not loaded' and 'not tested' tags
2010-04-13 18:43:01 -07:00
Slava Pestov
df0f21c48d
compiler.codegen: need to do name decoration with fastcall as well
2010-04-12 18:10:25 -05:00
Slava Pestov
61e300f87e
cpu.x86.32: fastcall struct returns are different on Linux than everywhere else for some unknown reason
2010-04-12 18:44:02 -04:00
Slava Pestov
3a3b50327f
vm: add a new rc-absolute-1 relocation class to allow storing values in 8-bit operands, and optimized code sequences for inline caches using this
2010-04-12 14:22:41 -07:00
Slava Pestov
d7ff3faa0f
alien: now that fastcall works better it doesn't need to be private
2010-04-10 16:57:07 -07:00
Slava Pestov
4edf4f1519
cpu.x86.32: cleanups and fixes to make fastcall and thiscall callbacks work
2010-04-10 16:54:17 -07:00
Slava Pestov
0dc43a94bd
Merge remote branch 'origin/abi-symbols' into fastcall-madness
2010-04-10 00:10:33 -07:00
Slava Pestov
89f912fe74
Fiddle with register assignments in non-optimizing x86-32 backend
2010-04-10 00:10:05 -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
Slava Pestov
b4ee322ea3
Store stack bounds in TIB on win64 to make C++ exceptions work
2010-04-05 19:07:10 -04:00
Slava Pestov
639a1f7043
cpu.x86.assembler: add support for absolute addressing on x86-64; [RIP+] now behaves like [] did, and [] now does absolute addressing just like in 32-bit mode
2010-04-04 19:42:57 -04:00
Slava Pestov
44b3977c2b
cpu.x86.64: fix typo that caused bootstrap crash
2010-04-03 21:11:04 -04:00
Slava Pestov
cdc4fb3b62
Get green threads working on Windows
...
- store stack base and limit in TIB
- set up a frame-based structured exception handler in each context's callstack
- boot.x86.32.image has now been replaced by boot.winnt-x86.32.image and boot.unix-x86.32.image
2010-04-03 20:24:33 -04:00
Joe Groff
2d96bff203
cpu.x86.32: add load-return-regs methods for stack-params so callbacks can box the struct return pointer
2010-04-01 22:01:10 -07:00
Slava Pestov
47f86898d7
vm: pre-allocate context alien
2010-04-02 00:02:21 -04:00
Joe Groff
e23e035b66
flatten non-integral types to (stack-value) on x86.32
2010-04-01 20:56:43 -07:00
Slava Pestov
62eaecdac3
cpu.ppc: fix optimizing compiler backend
2010-04-01 21:41:13 -05:00
Slava Pestov
e330fcb0f9
cpu.ppc: stick old stack pointer in a register for use by callbacks
2010-04-01 22:39:46 -04: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
c3b7a04b50
update %load-param-reg, %save-param-reg, and %cleanup to take register args into account
2010-04-01 17:36:09 -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
ca9614e746
Merge branch 'master' into abi-symbols
2010-04-01 15:28:36 -07:00
Joe Groff
fbb555b3d3
update M\ int-regs param-regs for x86-32 to give input regs for thiscall/fastcall
2010-04-01 03:35:37 -07:00
Joe Groff
ba062c1e5f
cpu.architecture: alter param-regs to take abi as an (ignored for now) argument
2010-04-01 02:53:40 -07:00
Slava Pestov
cab0cadf4d
cpu.ppc: updating optimizing compiler backend for recent changes (untested)
2010-04-01 00:22:10 -04:00
Slava Pestov
9acd33d547
cpu.ppc: non-optimizing compiler backend fixes
2010-04-01 00:21:41 -04:00
Joe Groff
a0b4e09f60
remove redundant «stdcall?» word from cpu.x86.32
2010-03-31 19:57:29 -07:00
Joe Groff
1d06be5021
"stdcall" -> stdcall
2010-03-31 19:29:04 -07:00
Joe Groff
8655654395
"mingw" -> mingw
2010-03-31 19:28:11 -07:00
Joe Groff
d951be1832
"cdecl" -> cdecl
2010-03-31 19:20:35 -07:00
Slava Pestov
a8eeff7c48
cpu.x86.assembler: add segment override prefixes
2010-03-31 20:47:13 -04:00
Slava Pestov
eb8432061c
cpu.x86.64: eliminate useless instruction from primitive call sequence for a marginal to non-existent gain
2010-03-31 19:32:36 -04:00
Slava Pestov
2aada86da7
cpu.ppc: updating non-optimizing compiler backend for green threads (untested)
2010-03-31 15:19:14 -04:00
Slava Pestov
22c7654e78
cpu.x86: remove useless crap from c-to-factor sub-primitive
2010-03-31 15:19:00 -04:00
Slava Pestov
de0c2801d2
threads: delete old contexts immediately instead of handing them off to a 'context recycler' thread
2010-03-30 21:47:48 -04:00
Slava Pestov
2e63c730b6
cpu.x86.bootstrap: fix jit-profiling regression
2010-03-28 08:29:55 -04:00
Slava Pestov
a04d53c3da
set-context and start-context primitives can now pass parameters around
2010-03-27 08:13:57 -04:00
Slava Pestov
f8134b18cd
Implement start-context and set-context primitives
2010-03-27 02:56:11 -04:00
Slava Pestov
adeb6fb68f
vm: actually use context callstacks when running code
2010-03-26 22:44:43 -04:00
Slava Pestov
63a18b0e6f
cpu.ppc: fix string c-type usage
2010-02-22 13:18:45 +13:00
Slava Pestov
0aad3e6e12
vocabs.metadata: replace unportable tag with a platforms.txt file for more fine-grained control. Rename unportable tag to untested for remaining cases
2010-02-20 13:30:49 +13:00
Slava Pestov
45ff20f132
cpu.architecture: rep-length now works in deployed images
2010-02-11 18:11:47 +13:00
Slava Pestov
bd13a8d42d
cpu.x86.64: inline cache miss blocks have a prolog generated in the middle of a procedure; undo a recent change to non-optimizing backend to fix random crashes
2010-02-06 18:45:27 +13:00
Slava Pestov
ba7f1c4b2c
cpu.ppc: needs same fix for jit-profiling as on x86-64
2010-02-06 18:45:26 +13:00
Slava Pestov
b0f09faebf
cpu.x86: fix crashes when using certain features (threads, errors, etc) with profiling enabled on x86-64. The profiling stub was clobbering an argument for the unwind_native_frames() entry point
2010-02-05 20:52:19 +13:00