Commit Graph

1070 Commits (04f172d3556f679e583546d7b8cfd771907f3b40)

Author SHA1 Message Date
Doug Coleman e6491d11ca Allow setting errno instead of just clearing it 2010-02-03 17:20:24 -06:00
Doug Coleman eb468d89aa fix typo in os-windows.cpp 2010-02-03 16:03:22 -06:00
Doug Coleman f6002e6c78 Change the MOVE_FILE macro to a function named move_file 2010-02-03 15:12:13 -06: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 dd0f2102ea vm: always check call sites when installing PICs, not just when FACTOR_DEBUG is on, since the check is cheap and saves debugging time when compiler is changed 2010-02-03 23:11:34 +13:00
Slava Pestov 310399995e Add code heap introspection primitive to VM, and make a code-blocks word in tools.memory that wraps a useful interface around this. Add a lookup-return-address word and use this in tools.disassembler.utils 2010-02-03 23:11:32 +13:00
Slava Pestov d19709c188 vm: modify-code-heap primitive now takes a pair of parameters, update-existing? and reset-pics?. If no generic words were changed, PICs do not need to be reset. If no existing words were redefined, the code heap doesn't have to be traced at all. Speeds up compilation of PEGs since those create lots of compilation units 2010-02-03 23:11:28 +13:00
Slava Pestov 7fa61addcd words: undefined error now contains the word in question 2010-02-03 23:11:23 +13:00
Slava Pestov ef61bcad77 vm: fix ffi_test.h 2010-02-02 05:15:42 -05: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
erikc 4506512a16 Merge up 2010-01-30 20:39:43 -08:00
Slava Pestov 6889b0b7f9 vm: 'become' primitive needs to update literal references in code blocks 2010-01-27 18:42:31 +13:00
Slava Pestov 0e0b750e7d Update Win64 support 2010-01-25 15:39:34 +13:00
Doug Coleman 6bc071bfc1 unix-system-call io-error -> unix-system-call drop
make unix.ffi, unix.ffi.linux unportable
fix spacing in io.cpp before refactoring
2010-01-23 09:07:35 -06:00
Doug Coleman 5bb6cc9471 Fix image save on Windows 2010-01-22 12:59:36 -06:00
Doug Coleman 9502f6f091 Save images to a temporary file first, then call MOVE_FILE to avoid writing incomplete and truncated images. 2010-01-22 12:59:20 -06:00
Doug Coleman cf25ef8432 Tighten up libc file io code to avoid EINTR problems 2010-01-22 12:59:14 -06:00
Slava Pestov 952a0784a7 vm: remove vm-ptr primitive 2010-01-20 17:06:49 +13:00
Slava Pestov 711d78f511 vm: don't recompile lazy-jit-compile more than once 2010-01-20 02:48:31 +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 0c8dc1f00b Use ParseCommandLineArgvw() on Windows again, instead of hand-rolled parser. Update Nmakefile to link in shell32.dll, where this function is defined 2010-01-18 06:12:04 -06: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 a3c7f1001d vm: fix command line parsing on Windows 2010-01-17 00:05:52 -06:00
Doug Coleman 3f124ad6a6 Work around gcc bug on openbsd 2010-01-16 23:59:16 -06:00
Slava Pestov 402b096f5a Remove generated file factor.res added by mistake 2010-01-17 18:00:26 +13:00
Slava Pestov bdaccd75c6 Nmakefile: build factor.dll and link in resource file 2010-01-16 22:41:17 -06:00
Slava Pestov edb1346239 vm: Tweak Factor VM to compile with Microsoft Visual Studio on Windows, in addition to Mingw. Add an Nmakefile which can be used for this purpose. Rename Makefile to GNUmakefile. 2010-01-17 03:43:22 +13:00
Slava Pestov 7290d8cc1c vm: fix compilation on 64-bit platforms 2010-01-14 02:18:49 +13:00
Slava Pestov 9f6f9966e8 vm: rework platform.hpp so that it is no longer necessary to pass -DFACTOR_64 and -DWINDOWS when compiling VM 2010-01-13 23:06:45 +13:00
Slava Pestov cfadb5994a PowerPC optimizing compiler backend fixes 2010-01-12 08:02:10 -06:00
Slava Pestov 80e64b8379 Store VM object in a register on x86-64 2010-01-11 01:20:32 +13:00
Slava Pestov b7f4447723 Starting to update PowerPC backend for recent VM changes (untested) 2010-01-08 19:46:27 +13:00
Slava Pestov 7977905fa6 vm: remove some unused #defines 2010-01-07 21:33:19 +13:00
Slava Pestov d7a8016776 Merge branch 'master' of git://factorcode.org/git/factor 2010-01-07 01:40:39 -05:00
Slava Pestov f038f8eef8 vm: add VM_C_API declaration for factor_memcpy function 2010-01-07 01:40:20 -05:00
Slava Pestov 85432e99c3 Fix set-callstack primitive on Windows 2010-01-07 19:31:15 +13:00
Slava Pestov e1125485fc Remove .S support from Makefile 2010-01-07 18:12:33 +13:00
Slava Pestov 37643eb084 vm: remove asm.h 2010-01-07 18:05:31 +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 caca156c31 vm: Remove some dead code 2010-01-07 13:54:22 +13:00
Slava Pestov ded9a1eca9 vm: remove unnecessary call to compile_all_words() from primitive_become() 2010-01-07 13:49:29 +13:00
Slava Pestov 72311506d2 vm: ensure that non-optimized calls to generic words which have not yet been compiled can still work 2010-01-06 23:49:14 +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 8a6c487a48 Merge branch 'master' of git://factorcode.org/git/factor 2010-01-03 23:21:31 +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
Doug Coleman 1329e0dcb3 remove warning 2009-12-28 10:02:36 -06:00
Doug Coleman 9c192fe170 Merge branch 'master' of git://factorcode.org/git/factor 2009-12-28 09:58:19 -06:00
Doug Coleman 667e871291 avoid integer division in nano_count on windows 2009-12-28 09:56:10 -06:00
Slava Pestov d0c1c6b766 PowerPC: fix set-callstack primitive and start updating optimizing compiler backend for recent changes 2009-12-28 08:08:15 -06:00