Commit Graph

440 Commits (121743230dcad58acf5575190ba1e99e5384df8d)

Author SHA1 Message Date
Slava Pestov c724550291 compiler.cfg: fuse ##load-integer/##load-reference into ##replace to form ##replace-imm 2010-05-03 17:34:28 -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 8849e370ca Register allocation now uses SSA properties to coalesce values with different representations 2010-05-03 17:34:20 -04:00
Slava Pestov fc7a1ad8b3 New GC checks work in progress 2010-05-03 17:34:16 -04:00
Slava Pestov 1bde985228 cpu.x86.assembler: small cleanups 2010-05-03 17:34:15 -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 80c8a7154d compiler.cfg: add ##load-memory and ##store-memory instructions implementing complex addressing modes, and associated value numbering optimizations 2010-05-03 17:34:07 -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 a5e4eb1948 cpu.x86.assembler: support all addressing modes 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 3c965afd10 compiler.cfg: remove ##set-string-nth-fast instruction since it can be expressed just as efficiently using other instructions 2010-05-03 17:34:04 -04:00
Slava Pestov 6fdcd9fb02 Untagged fixnums work in progress 2010-05-03 17:34:02 -04:00
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 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
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
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 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