Commit Graph

1641 Commits

Author SHA1 Message Date
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