Commit Graph

78 Commits

Author SHA1 Message Date
Joel Dice
f698c24ea6 delay resolving method call offsets until all methods have been compiled when creating a boot image 2008-11-27 13:59:40 -07:00
Joel Dice
20cf42c5e4 more work on boot image creation 2008-11-23 16:58:01 -07:00
Joel Dice
6f1d02dae7 remove the libstdc++ dependency once and for all
The trick is to make all destructors non-virtual.  This is safe because
we never use the delete operator, which is the only case where virtual
destructors are relevant.  This is a better solution than implementing
our own delete operator, because we want libraries loaded at runtime to
use the libstdc++ version, not ours.
2008-10-28 15:40:50 -06:00
Joel Dice
6ee2b0280e implement compareAM 2008-07-31 07:53:43 -06:00
Joel Dice
107ac01304 fix addCR and subtractCR for cases of 64-bit constants on amd64 2008-07-02 08:52:35 -06:00
Joel Dice
9bea21dec7 add copyright header to files which don't already have them 2008-06-25 14:53:48 -06:00
Joel Dice
3d84f31c13 fix longCompareCR on 64-bit systems 2008-06-17 09:32:46 -06:00
Joel Dice
b683d836c3 implement longCompareRR 2008-06-12 11:23:20 -06:00
Joel Dice
6f5cc9f45f fix unused parameter warning 2008-06-12 11:09:53 -06:00
Joel Dice
eabb37e6eb add lcmp instruction to Compiler and corresponding LongCompare instruction to Assembler, since that's the only efficient way to implement the lcmp bytecode on x86 2008-06-12 10:56:48 -06:00
Joel Dice
357acbdb0f implement move4To8CR, which just defers to moveCR 2008-06-11 08:59:05 -06:00
Joel Dice
5b2065e76c only elide constant multiply if constant is one, not zero (duh) 2008-06-10 18:14:15 -06:00
Joel Dice
3b0e05b739 fix unused parameter warning 2008-06-02 08:13:20 -06:00
Joel Dice
ecfb853f17 use relative branches where possible on amd64 2008-06-02 07:49:09 -06:00
Joel Dice
65830a76c5 improve efficiency of array bounds checks and generate a thunk table for native functions called indirectly 2008-05-31 16:14:27 -06:00
Joel Dice
51256f3cc2 fix moveCM for 64-bit constants on 64-bit machines 2008-05-22 18:16:44 -06:00
Joel Dice
3326aafdac various 32-bit fixes 2008-05-22 11:15:18 -06:00
Joel Dice
651c4559db implement compareAR 2008-05-19 10:39:05 -06:00
Joel Dice
ad6153612b disallow memory,constant comparisons on x86 2008-05-19 07:43:37 -06:00
Joel Dice
b52cefa86e disallow memory operands in 32-bit comparisons on amd64 2008-05-19 07:27:05 -06:00
Joel Dice
56d8851764 constrain temporary register in moveMM according to moveMR's requirements 2008-05-18 22:28:47 -06:00
Joel Dice
4858972dbc support 64-bit subtracts on 32-bit systems; allow constant shift counts in MyAssembler::plan 2008-05-18 09:43:31 -06:00
Joel Dice
392132cb0e Merge branch 'compiler' of la.merseine.nu:p/avian-compiler into compiler 2008-05-17 21:34:46 -06:00
Joel Dice
b6b84af123 various bugfixes 2008-05-17 21:32:14 -06:00
Joel Dice
15c2eb13f2 don't generate code for a move from a register to itself 2008-05-17 18:13:27 -06:00
Joel Dice
790e2fee42 respect constraints specified by Assembler::plan in MoveEvent::compile 2008-05-16 10:01:24 -06:00
Joel Dice
d7fc4aa438 fix offset computation in compareCR and compareCM 2008-05-15 18:34:48 -06:00
Joel Dice
bbd1ee5540 various register marshalling bugfixes 2008-05-15 14:00:57 -06:00
Joel Dice
8434abaa0e implement swapRR 2008-05-14 17:33:55 -06:00
Joel Dice
73b8cc5595 fix unused variable warnings 2008-05-14 17:19:41 -06:00
Joel Dice
13d6ab023f implement addCM 2008-05-13 11:28:19 -06:00
Joel Dice
f1809897bd fix build 2008-05-06 15:13:02 -06:00
Joel Dice
2e108861da remove operand marshalling from the assembler in favor of doing it in the compiler 2008-05-04 13:09:12 -06:00
Joel Dice
7b809efd3f fix shift bugs 2008-04-30 12:44:27 -06:00
Joel Dice
918193fa60 fix 32-bit right unsigned shifts on amd64 2008-04-30 11:15:21 -06:00
Joel Dice
844841937f fix use of wrong constant in x86.cpp 2008-04-30 10:46:46 -06:00
Joel Dice
e2b24263a2 various bugfixes 2008-04-30 09:44:17 -06:00
Joel Dice
7640590153 implement orCR and compareRC 2008-04-29 17:16:53 -06:00
Joel Dice
59f92b6208 support 64-bit multiplies on 32-bit systems 2008-04-29 16:11:17 -06:00
Joel Dice
4c2d44099b support more 64-bit operations on 32-bit systems 2008-04-29 14:24:52 -06:00
Joel Dice
4652b7aea0 enable 64-bit various operations on 32-bit systems 2008-04-29 10:56:29 -06:00
Joel Dice
7791b1df80 support 64-bit operands on 32-bit systems in compareCR 2008-04-29 08:57:24 -06:00
Joel Dice
a07a189ddb fix various register marshalling bugs 2008-04-28 18:58:02 -06:00
Joel Dice
8738bddcb9 bugfixes, mainly concerning 32-bit machines 2008-04-28 16:08:31 -06:00
Joel Dice
90ae9a70ee fix encoding reg-to-reg moves of one and two byte sizes 2008-04-28 10:52:54 -06:00
Joel Dice
1b5f14d847 re-enable tests in Misc and get them working 2008-04-28 09:53:48 -06:00
Joel Dice
5e45475f36 fix unused parameter warnings 2008-04-27 16:43:15 -06:00
Joel Dice
505e0bd7db treat 4-byte reg-to-reg moves as 8-byte moves on amd64 since the intention is to copy integer values verbatim; all tests now pass on amd64 2008-04-27 16:25:17 -06:00
Joel Dice
cc64668657 add support for more instructions to assembler 2008-04-27 14:42:57 -06:00
Joel Dice
5b7372a3bb various bugfixes; majority of tests now pass 2008-04-27 14:15:18 -06:00