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 |
|
Joel Dice
|
d5137a7cdf
|
use stack instead of registers to save data across jumps and branches; bugfixes
|
2008-04-26 14:56:03 -06:00 |
|
Joel Dice
|
571bffde09
|
fix some issues with 64-bit moves on 32-bit machines
|
2008-04-20 20:50:46 -06:00 |
|
Joel Dice
|
a259beccdc
|
implement xorRR, remove unused Assembler::stackSyncRegister
|
2008-04-20 16:19:11 -06:00 |
|
Joel Dice
|
9976c1132c
|
fix instruction callR
|
2008-04-20 14:43:28 -06:00 |
|
Joel Dice
|
d6c3b2327f
|
bugfixes; enums test now succeeds
|
2008-04-20 13:35:36 -06:00 |
|
Joel Dice
|
ddada5551d
|
fix argument order bug in moveZRR
|
2008-04-19 20:04:15 -06:00 |
|
Joel Dice
|
8baa2bbd87
|
insert stack sync events before each instruction with more than one predecessor
|
2008-04-19 18:43:12 -06:00 |
|
Joel Dice
|
ab7314e526
|
more bugfixes
|
2008-04-18 18:19:45 -06:00 |
|
Joel Dice
|
a7134a2cd7
|
fix build
|
2008-04-17 16:07:32 -06:00 |
|
Joel Dice
|
525f733171
|
Merge branch 'master' into compiler
Conflicts:
src/compile.cpp
src/compiler.cpp
src/compiler.h
|
2008-04-13 13:48:20 -06:00 |
|
Joel Dice
|
a51c4cef39
|
bugfixes
|
2008-03-16 13:38:43 -06:00 |
|
Joel Dice
|
684b402e82
|
bugfixes and new instructions
|
2008-03-15 17:54:20 -06:00 |
|
Joel Dice
|
420a054fd8
|
support 1- and 2-byte moves to memory
|
2008-03-15 15:02:19 -06:00 |
|
Joel Dice
|
6bf0ca5bd9
|
various bugfixes and new instructions
|
2008-03-15 14:24:04 -06:00 |
|
Joel Dice
|
6a9fbc0c17
|
allow assembler to acquire and release temporary registers; new machine instruction implementations; bugfixes
|
2008-03-13 17:43:11 -06:00 |
|
Joel Dice
|
406f173982
|
handle constant array lengths and indexes properly; various bugfixes
|
2008-03-13 14:50:56 -06:00 |
|
Joel Dice
|
9e2e614a15
|
various fixes to get invokevirtual working
|
2008-03-10 16:37:21 -06:00 |
|
Joel Dice
|
888836f8cd
|
use push and pop for stack operations instead of mov
|
2008-03-09 15:27:51 -06:00 |
|
Joel Dice
|
2f1bdfeb27
|
remove x86.cpp
|
2008-02-19 19:10:18 -07:00 |
|
Joel Dice
|
2edaa82801
|
prepend copyright notice and license to all source files; add license.txt and readme.txt
|
2008-02-19 11:06:52 -07:00 |
|
Joel Dice
|
e8ed2a4749
|
various bugfixes in new compiler
|
2008-02-17 15:29:04 -07:00 |
|
Joel Dice
|
d654c943f3
|
various bugfixes and tweaks in new compiler, primarily related to duplicating stack operands
|
2008-02-17 13:57:40 -07:00 |
|
Joel Dice
|
6271f878e8
|
include function prologue and epilogue when compiling
|
2008-02-12 08:21:51 -07:00 |
|
Joel Dice
|
fa513beb2f
|
rework compiler interface to explicitly accept a size parameter for each operation where relevant
|
2008-02-11 19:06:12 -07:00 |
|
Joel Dice
|
b9fa7179d9
|
more work on new compiler; addition now works
|
2008-02-11 17:20:32 -07:00 |
|
Joel Dice
|
5b2f351f01
|
adapt compile.cpp to new compiler
|
2008-02-11 10:21:41 -07:00 |
|
Joel Dice
|
713ff23881
|
clean up sketch of new compiler
|
2008-02-09 13:11:37 -07:00 |
|
Joel Dice
|
dc04c63491
|
more work on new compiler
|
2008-02-08 16:18:57 -07:00 |
|