Commit Graph

397 Commits (7296e27e2355bdb15d45d2d128377eedea6cd565)

Author SHA1 Message Date
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 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 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 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 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
Slava Pestov af47e5e8d8 Compiled code size optimizations for x86-64 resulting in development image size reduction of about 350kb
- RIP-relative LEA is now used to load program counter in prolog and tail calls; saves 3 bytes of code and 4 bytes of relocation information over an immediate MOV
- VM field accesses no longer involve a redundant addition
2010-02-03 23:11:35 +13:00
Slava Pestov 83a2de6565 Fix ffi-test library to work with Windows SDK. Turns out MINGW has a different ABI for struct returns than MS's compiler; make the MS ABI the default for cdecl on Windows, and add mingw ABI for libraries that use the MINGW ABI 2010-02-02 04:01:12 -06:00
Slava Pestov 0e0b750e7d Update Win64 support 2010-01-25 15:39:34 +13:00
Slava Pestov 59f0e7a197 alien.c-types: ensure that long and ulong types are defined with define-primitive-type and not typedef 2010-01-23 00:15:08 +13:00
Slava Pestov 88004434ec vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym() 2010-01-19 20:00:33 +13:00
Slava Pestov 0165daf56c Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types 2010-01-18 20:54:00 +13:00
Slava Pestov fe11d9f60a unwind-stack-frames didn't load VM pointer into the VM register on PowerPC and x86-64, and so if C code had clobbered this register it would crash 2010-01-12 16:31:10 +13:00
Slava Pestov 80e64b8379 Store VM object in a register on x86-64 2010-01-11 01:20:32 +13:00
Slava Pestov 5cdf5a72e1 cpu.x86: c-to-factor needs to deal with the fact that vm-reg might have been clobbered 2010-01-09 19:09:48 +13:00
Slava Pestov 85432e99c3 Fix set-callstack primitive on Windows 2010-01-07 19:31:15 +13:00
Slava Pestov 98b296a021 cpu.x86: sse_version was renamed to (sse-version) 2010-01-07 18:30:01 +13:00
Slava Pestov bbd8f17fad cpu.x86: add some alien-assembly unit tests 2010-01-07 17:59:17 +13:00
Slava Pestov 1e2c0327ee Add alien-assembly form for inline assembler, works like alien-invoke except calls a user-supplied quotation instead of generating a subroutine call. Replaces FPU status control, SSE detection and read timestamp routines in vm/cpu-x86.*S 2010-01-07 17:39:22 +13:00
Slava Pestov 927953dad0 cpu.x86: don't have to pass VM pointer to quotations anymore 2010-01-06 23:42:00 +13:00
Slava Pestov a9f90026df Update x86-32 for assembly entry point changes 2010-01-06 17:55:20 +13:00
Slava Pestov d2baa6dde5 vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64 2010-01-06 15:47:36 +13:00
Slava Pestov 9399a68786 Change how non-volatile register preservation is done in alien callbacks, with the aim of fixing callbacks on PowerPC, and to eventually eliminate assembly code from VM
- Simplify calculation of offset in relocation table
- Open-code %alien-callback
- Remove magic_frame hack from context objects
- Move magical return instruction from optimizing compiler backend into callback entry stub
2010-01-03 01:11:51 +13:00
Slava Pestov d5489b3ecd Updating x86-64 port for global register variable removal 2009-12-27 01:17:42 +13:00
Slava Pestov 8b913f5fc6 Fix bug in c_to_factor 2009-12-26 15:24:46 +13:00
Slava Pestov 1453154376 vm: remove VM_ASM_API 2009-12-24 01:37:24 +13:00
Slava Pestov 8f449f1a82 Get optimizing compiler working without global register variables in VM 2009-12-22 15:42:49 +13:00
Slava Pestov a942e2c34d vm: eliminating register variables work in progress. Works on x86-32 with non-optimizing compiler 2009-12-19 10:59:56 +13:00
Slava Pestov 6d9c17eea3 Fix PowerPC compiler backend for recent changes 2009-12-15 09:51:20 -05:00
Slava Pestov 31a260b74c vm: big overhaul of non-optimizing compiler
- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups
2009-12-15 07:20:09 -05:00
Joe Groff 1ad9dc14b4 fix simd tests 2009-12-05 17:17:16 -08:00
Joe Groff 1fbbe91e73 implement %scalar>integer for longlong reps on x86.64 2009-12-05 15:38:43 -08:00
Joe Groff d674ff8191 simd intrinsic implementation for v*high, v*hs+, vavg, and vsad 2009-12-05 14:52:18 -08:00
Joe Groff 4116e2aa4e don't use intrinsics for simd vector element operations when the component size doesn't fit in a fixnum 2009-12-03 12:46:56 -08:00
Slava Pestov 3dee027879 Merge branch 'simd-cleanup' of git://factorcode.org/git/factor into simd-cleanup 2009-12-02 19:09:56 -05:00
Slava Pestov 912b1265fc Split literal table into literal and parameter tables, literal table is discarded after code block initialization 2009-12-02 04:28:15 -06:00
Joe Groff ebcaaa0d64 Merge branch 'master' into simd-cleanup 2009-11-26 16:14:46 -08:00
Joe Groff 8095704010 change name of 'unsign-rep' to more sensible 'signed-rep' 2009-11-24 22:44:12 -08:00
Slava Pestov 08b6ebc7fa Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Joe Groff 48d6a86455 fill in longlong cases for %scalar>integer (won't work on 32bit yet!) 2009-11-19 12:15:24 -08:00
Slava Pestov 9dc3985ccc cpu.86.64.winnt: silence notice 2009-11-16 00:32:19 -06:00
Doug Coleman 3323072613 Merge branch 'master' into startup
Conflicts:
	core/bootstrap/primitives.factor
	vm/run.hpp
2009-11-15 02:52:50 -06:00
Joe Groff 993631e44c Merge branch 'master' of git://factorcode.org/git/factor into simd-cleanup
Conflicts:
	basis/math/vectors/simd/functor/functor.factor
2009-11-14 21:02:39 -06:00
Slava Pestov 4168ffbcee New identity-hashcode primitive 2009-11-10 21:18:54 -06:00
Joe Groff b09b0f0686 Merge branch 'master' into simd-cleanup 2009-11-07 22:26:09 -06:00