Joel Dice
5adcfa3341
fix 32-bit indexed loads
2009-02-28 17:31:09 -07:00
Joel Dice
750f4d51da
fix extsb/extsh operand order in moveRR
2009-02-28 17:17:12 -07:00
Joel Dice
f01a78699f
fix opcode for lbzx
2009-02-28 16:58:54 -07:00
Joel Dice
b0422b32e6
implement orR and orC; add shift operations to ternary operation table
2009-02-28 16:28:10 -07:00
Joel Dice
d6bd2e7308
make Compiler::store take both a source size and a destination size to avoid endianness issues; change order of Compiler::load parameters to match
2009-02-28 16:17:24 -07:00
Joel Dice
10c75f4783
add longCompareC to ternary operation table
2009-02-28 15:04:04 -07:00
Joel Dice
5a8ffcd79b
implement moveZRR and moveZMR
2009-02-28 15:00:12 -07:00
Joel Dice
60c4bede39
fix undefined-order-of-operations bug in Frame::dupped
2009-02-28 14:41:05 -07:00
Joel Dice
3e6c30a4b5
always return an 8-byte value (or void) from native functions called from Java
...
This is important on the 32-bit OS X PowerPC ABI, since the location
of the low 32-bits of a return value change depending on whether the
entire value is 64-bits or not.
2009-02-28 14:20:43 -07:00
Joel Dice
c5dd97ffea
ensure that we release temporaries back to the compiler in powerpc.cpp; allow the first operand of a comparison to be a constant
2009-02-28 13:41:37 -07:00
Joel Dice
a2d2564d83
restore changes clobbered by commit 5a08062
2009-02-28 12:58:34 -07:00
Joel Dice
1249b11080
fix build breakage
2009-02-28 12:47:47 -07:00
Joel Dice
46a6744050
Merge commit 'origin/powerpc' into powerpc
2009-02-28 12:44:31 -07:00
Joel Dice
f8d7bea7e8
implement various compare and branch instructions
2009-02-28 12:36:02 -07:00
Joel Dice
f22ce3f996
fix parameter offset calculation in invokeNative2
2009-02-28 12:33:26 -07:00
JET
5a08062190
prelim 64-bit mult and shift support
2009-02-27 16:54:20 -07:00
Joel Dice
8ecd6a0394
fix and optimize andC
2009-02-26 18:56:57 -07:00
Joel Dice
4999c08e32
fix stack offset calculation for powerpc
...
This may break x86, in which case we'll iterate until they both work.
2009-02-26 18:54:25 -07:00
Joel Dice
73aa499371
clean up offsetToFrameIndex code
2009-02-26 18:53:35 -07:00
Joel Dice
d7d3dd5055
various bugfixes, especially concerning frame allocation and offset calculation
2009-02-25 20:49:42 -07:00
Joel Dice
6957492c7a
ignore base argument in powerpc version of vmJump and move thread argument into correct register
2009-02-25 20:47:38 -07:00
Joel Dice
b539d7b1e0
Merge commit 'origin/powerpc' into powerpc
...
Conflicts:
src/powerpc.cpp
2009-02-25 18:31:21 -07:00
Joel Dice
08af5deb36
implement andC and moveAR; fix MyArchitecture::nextFrame
2009-02-25 18:16:38 -07:00
Joel Dice
09c96a3063
simplify longCompare in x86.cpp such that the move function pointer parameter is eliminated and moveCR is called directly
2009-02-25 18:13:18 -07:00
Joel Dice
2554673dda
call c->arch->plan in CallEvent ctor to ensure the address operand is placed into the proper operand type for the call instruction
2009-02-25 18:11:41 -07:00
J. Treadwell
c148369d57
added multiply and divide instructions and intermediates
2009-02-25 09:37:44 -07:00
Joel Dice
0832c740fc
implement a few conditional and branch instructions
2009-02-24 18:29:04 -07:00
Joel Dice
571615a79f
fix stack space calculation in compile-powerpc.S
2009-02-24 18:28:05 -07:00
Joel Dice
299f8542b7
rename fooCRR and fooRRR to fooC and fooR, respectively; add entries to ternary operation table in populateTables
2009-02-24 09:13:11 -07:00
Joel Dice
b292cbb7f4
mask displacement in instruction format D; fix MyArchitecture::frameIp to look for return address at an 8-byte offset from the stack pointer
2009-02-24 08:04:55 -07:00
Joel Dice
eef5047a52
various bugfixes in powerpc.cpp
2009-02-23 21:25:15 -07:00
J. Treadwell
ee90d7bd2c
merged ppc changes
2009-02-23 20:57:25 -07:00
JET
2d09f57cbd
added instructions
2009-02-23 19:16:42 -07:00
Joel Dice
da8520754d
progress towards compiling and running simple methods on powerpc
2009-02-23 19:11:32 -07:00
Joel Dice
9a9b2c611a
sketch of new powerpc.cpp implementation
2009-02-21 12:30:25 -07:00
Joel Dice
a9e85e5de8
fix compare instruction syntax in compile-powerpc.S
2009-02-18 17:46:07 -07:00
Joel Dice
324caaf98b
add size parameter to Assembler::returnLow since the register used depends on the return value size on PowerPC
2009-02-17 18:19:31 -07:00
Joel Dice
c88e3fa230
ensure stack alignment in compile-x86.S and update vmInvoke to accept frame size parameter
2009-02-16 19:49:28 -07:00
Joel Dice
17b4c20435
fix windows build
2009-02-16 19:48:29 -07:00
Joel Dice
ba4e2a6582
rename compile.S to compile-x86.S and add compile-powerpc.S
2009-02-16 08:21:12 -07:00
Joel Dice
773e229112
fix powerpc native call bugs
2009-02-15 14:24:20 -07:00
Joel Dice
de6388a719
fix powerpc/interpret build
2009-02-15 12:51:39 -07:00
Joel Dice
cea5a9315d
fix block delimiting code in compile.cpp to avoid cycles and nested blocks
2009-02-15 11:11:00 -07:00
Joel Dice
7803663fc9
fix block delimiting code in compiler.cpp to minimize the number of blocks needed
...
This exposed bugs in x86.cpp concerning alignment padding which are now
fixed.
2009-02-14 17:52:44 -07:00
Joel Dice
4b2d74f656
fix merge conflict bug preventing the bootimage code from seeing, marking, and fixing jsr addresses
2009-02-14 14:23:23 -07:00
Joel Dice
f58f7b3bdf
fix bugs pertaining to tracking reads and and value sites across subroutines (jsr and ret instructions)
2009-02-14 13:26:39 -07:00
Joel Dice
71ccac1ef7
default to specified build mode when building the bootimage generator instead of hard-coding it to 'fast'
2009-02-14 13:25:07 -07:00
Joel Dice
93142bb952
support filtering based on class name, method name, and method spec in
...
bootimage.cpp
This is useful for debugging the compiler, since it allows you to
compile one method in particular if that's where a bug manifests itself.
2009-02-14 13:23:31 -07:00
Joel Dice
e3257134c9
fix merge-related regression affecting bootimage build
2009-02-09 19:00:53 -07:00
Joel Dice
9b0d6854ec
fix merge conflicts
2009-02-09 16:22:51 -07:00