Joel Dice
1192ef939e
fix stack offset calculation for multianewarray on x86
2009-03-01 15:39:52 -07:00
Joel Dice
7a2bf9b855
fix x86.cpp build
2009-03-01 15:14:51 -07:00
Joel Dice
28d4409b0a
implement negateRR
2009-03-01 12:57:07 -07:00
Joel Dice
36196910ed
implement xorR and xorC
2009-03-01 12:40:49 -07:00
Joel Dice
97e698d806
fix MyCompiler::peak for big-endian architectures
2009-03-01 12:36:30 -07:00
Joel Dice
696282631a
fix endianness issues with 64-bit locals
2009-03-01 12:28:17 -07:00
Joel Dice
412348d938
fix stack offset calulation for multianewarray
2009-03-01 10:49:37 -07:00
Joel Dice
117c89b9ee
change == to <= in moveCR2 since we only need to ensure dstSize is no more than the word size
2009-02-28 19:10:31 -07:00
Joel Dice
93ebb571b3
only add site to result if result is live in CombineEvent::compile and TranslateEvent::compile
2009-02-28 19:08:14 -07:00
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