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