Doug Coleman
78a67420a3
Merge branch 'master' of github.com:erg/factor
2010-06-17 11:12:25 -05:00
Slava Pestov
a8e2017020
vm: fix another compile warning on 32-bit Windows
2010-06-17 01:04:03 -05:00
Slava Pestov
59db2efac8
vm: fix compile warnings on Windows and add /WX to Nmakefile to report warnings as errors so that mason can catch these in the future
2010-06-17 01:48:39 -04:00
Doug Coleman
97c3450427
Remove system_micros from vm, implement gmt hook on windows
2010-06-16 23:39:16 -05:00
Doug Coleman
9d235bb6c7
Use nano_count instead of system_micros
2010-06-16 23:20:00 -05:00
Slava Pestov
c81610f7f3
vm: improved fingering technique
2010-06-16 19:08:58 -04:00
Slava Pestov
fb4de47abf
Add GC maps to ##box, ##box-long-long, ##alien-invoke, ##alien-indirect and ##call-gc; remove ##gc-map instruction
2010-06-14 19:39:46 -04:00
Slava Pestov
5e39764ccd
vm: have to be extra careful when messing with return addresses
2010-06-13 18:12:57 -04:00
Slava Pestov
d91524b98d
vm: context switching needs to scrub the return address
2010-06-12 19:54:31 -04:00
Slava Pestov
7e2d888767
vm: fix RT_HERE fixup on image load
2010-06-11 21:54:47 -04:00
Slava Pestov
9d0dbdebab
vm: fix typo
2010-06-11 20:08:52 -04:00
Slava Pestov
a08295d9b7
GC maps for more compact inline GC checks
2010-06-11 20:06:00 -04:00
Slava Pestov
bcf7a5e15e
Use ##local-allot to simplify longlong unboxing
2010-05-19 01:07:22 -04:00
Slava Pestov
35bd2bca06
FFI rewrite part 5: return value boxing and callback parameter boxing now uses vregs; simplify return value unboxing
2010-05-16 03:43:23 -04:00
Slava Pestov
fc166bce0a
vm: fix longlong accessors
2010-05-11 23:24:48 -04:00
Slava Pestov
b40cd01828
vm: fix compile error
2010-05-11 19:29:50 -04:00
Slava Pestov
5054bb4b25
FFI rewrite part 4: parameter and return value unboxing redesign
2010-05-11 19:11:44 -04:00
Slava Pestov
5d7287b71d
compiler: simplify ##unbox-small/large-struct by emitting an ##unbox-any-c-ptr first
2010-05-10 01:38:34 -04:00
Joe Groff
a4b913c790
silence more msvc warnings
2010-05-05 22:32:45 -07:00
Joe Groff
6c881acbbd
quiet some data conversions warnings raised by msvc
2010-05-05 22:22:13 -07:00
Slava Pestov
7e8add87fe
More FFI cleanups
2010-05-05 01:13:45 -04:00
Slava Pestov
46864a2c92
vm: tweak inline_gc() for PowerPC
2010-05-04 06:52:30 -04:00
Slava Pestov
7f0469efef
compiler: new "binary literal area" at the end of a word's machine code stores constant floats and SIMD vectors; this allows ##load-reference/##load-memory fusion to be performed on x86-64, with a RIP-relative address reaching the data; also simplifies VM since custom relocation types used by the previous 32-bit-only optimization are no longer needed
2010-05-03 17:34:35 -04:00
Slava Pestov
90b945eaa0
compiler: add ##load-vector instruction to avoid wasting a temporary register on x86-32
2010-05-03 17:34:28 -04:00
Slava Pestov
be95003594
cpu.x86: use available type info to generate more efficient %box-displaced-alien where possible
2010-05-03 17:34:27 -04:00
Slava Pestov
03bd160f08
Code cleanups
2010-05-03 17:34:17 -04:00
Slava Pestov
fc7a1ad8b3
New GC checks work in progress
2010-05-03 17:34:16 -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
Doug Coleman
c78628fbe9
Add callstack-bounds primitive to vm/ for use with javascriptcore library
2010-04-19 20:08:15 -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
b621d1cd7c
vm: small cleanup
2010-04-13 21:24:42 -07:00
Slava Pestov
775dbefdbc
math.parser: expose a format-float primitive for use by formatting vocabulary
2010-04-13 21:21:28 -07:00
Slava Pestov
352e5c149a
vm: fix compiler warnings raised by CL
2010-04-12 18:12:55 -05: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
a80372cda6
vm: speed up nano-count primitive on Windows
2010-04-11 22:27:49 -05:00
Slava Pestov
650accf172
vm: speed up nano-count primitive on Mac OS X
2010-04-11 20:26:11 -07:00
Slava Pestov
73d020bb3c
vm: try a smaller call stack size on OpenBSD again, now that x86-32 stack frames are smaller
2010-04-10 17:26:56 -07:00
Slava Pestov
0dc43a94bd
Merge remote branch 'origin/abi-symbols' into fastcall-madness
2010-04-10 00:10:33 -07:00
Slava Pestov
1f2f72de5e
vm: implement frame-based SEH for 64-bit Windows
2010-04-08 10:32:14 -07:00
Slava Pestov
57f75e93ca
vm: fix compile error under Cygwin
2010-04-06 16:30:41 -05: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
e3b8f3661d
vm: dllexport exception_handler for great justice
2010-04-05 15:48:09 -05:00
Slava Pestov
3b0bc02e11
Safe SEH is better than abstinence
2010-04-05 15:02:32 -05:00
Slava Pestov
a30740ef64
vm: fix callback heap code on 64-bit Windows
2010-04-04 17:46:36 -04:00
Slava Pestov
e70a5a8cfc
vm: fix compile error
2010-04-04 13:53:17 -05: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
Slava Pestov
4e058a0f33
vm: re-organize context structure
2010-04-02 15:42:29 -04:00
Slava Pestov
5509f1f71d
vm: use C++ exceptions instead of longjmp(), to make Windows crash more
2010-04-02 14:10:55 -04:00
Slava Pestov
5e61c327d6
vm: larger default callstack on PowerPC
2010-04-02 14:09:58 -04:00
Joe Groff
22bba39a75
add tests for struct returns from fastcall
2010-04-01 23:52:56 -07:00