Joel Dice
a0e503ad0a
optimize moveRR and fix andC
2009-03-05 20:21:15 -07:00
Joel Dice
75e28e81c9
fix operand ordering in remainderR
2009-03-05 19:35:49 -07:00
Joel Dice
ec610a5521
handle shift counts greater than 31 properly
2009-03-05 19:05:39 -07:00
Joel Dice
16e81bcc07
fix orC
2009-03-05 18:33:00 -07:00
Joel Dice
7d48547f0e
fix compareUnsignedCR, which relied on sign extension in cmplwi, which actually does zero extension; fix use of li argument to instruction format I
2009-03-05 18:02:03 -07:00
Joel Dice
3e495b8ca5
use mulhwu and eliminate temporary in 64-bit multiplyRR
2009-03-04 19:50:03 -07:00
Joel Dice
77195713b8
fix xorR regression introduced in last commit
2009-03-04 19:22:47 -07:00
Joel Dice
cca3e72318
fix 64-bit xorC
2009-03-04 19:20:15 -07:00
Joel Dice
acfa1ee2ff
fix 64-bit negateRR
2009-03-04 18:59:04 -07:00
Joel Dice
d48e5377fe
add missing instruction to multiplyR
2009-03-04 18:43:53 -07:00
Joel Dice
a8da9ecb05
fix use of displacement parameter in instruction format B; use correct opcode in slw instruction
2009-03-04 18:20:54 -07:00
Joel Dice
296c93a04c
fix backwards logic in longCompare; correct unsupported use of JumpIfLessOrEqualC in shiftRightR; add multiply, divide, and remainder operations to table
2009-03-04 17:54:47 -07:00
Joel Dice
8cc1f6def8
remove dead code from MyCompiler::call
2009-03-04 17:52:55 -07:00
Joel Dice
ed9e54bca1
add a few more tests to Floats.java
2009-03-04 17:52:06 -07:00
JET
dbcd42e70c
added 64-bit shifts and mul/div
2009-03-04 10:11:42 -07:00
Joel Dice
1d04fed6de
implement Collections.shuffle
2009-03-04 08:18:18 -07:00
Joel Dice
6e6035505c
zero heap space ahead of time when allocating raw storage and garbage collecting, not when allocating individual objects
...
This helps us support the Java Memory Model without adding a memory
barrier to every object allocation. It's also potentially more
efficient, since we zero out each heap segment all at once instead of
bit-by-bit with each object allocation.
2009-03-03 20:05:48 -07:00
Joel Dice
8410e1d683
ensure reads and writes of volatile 64-bit fields are atomic
2009-03-03 18:02:11 -07:00
Joel Dice
2ca8132d97
implement support for volatile fields
2009-03-02 20:18:15 -07:00
Joel Dice
8c9d625f8f
add memory barriers where appropriate in compile.cpp
2009-03-02 18:40:06 -07:00
Joel Dice
8659c709b7
avoid passing null arguments to native methods in SocketChannel
2009-03-02 15:22:17 -07:00
Joel Dice
5f0b40e531
restore call to Client::releaseTemporary in moveCM
2009-03-01 23:07:28 +00:00
Joel Dice
6eacf7b804
fix bounds checks in MyCompiler::initLocalsFromLogicalIp
2009-03-01 22:47:07 +00:00
Joel Dice
97961ecdde
pick a temporary register which is valid as both a destination and a source for the required moves in maybeMove
2009-03-01 15:41:03 -07:00
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