Commit Graph

1246 Commits

Author SHA1 Message Date
661b49ea92 Merge branch 'master' into powerpc 2009-03-07 16:41:17 -07:00
abe6ada0c2 Merge branch 'master' of oss.readytalk.com:/var/local/git/avian 2009-03-07 16:40:56 -07:00
ea4764c924 Merge branch 'master' into powerpc 2009-03-07 16:40:23 -07:00
7add34944b protect source site from being used as a temporary for move operations 2009-03-07 16:32:05 -07:00
376941ab35 fix single-precision float marshalling in dynamicCall 2009-03-07 14:32:08 -07:00
0aaee96479 allocate executable memory area all at once to ensure it is contiguous, since immediate relative jumps on PowerPC can only cross 2^26 bytes of memory 2009-03-07 12:03:27 -07:00
fd7bef7db3 only accept sites conforming to specified SiteMask in getTarget 2009-03-06 17:37:54 -07:00
9b9ae62541 defer to moveCR when adding or subtracting zero 2009-03-06 17:11:51 -07:00
33ba8d084d avoid unecessary subtraction in tableswitch 2009-03-06 17:11:14 -07:00
b5f76d96dc handle exception case in makeCodeImage 2009-03-06 17:10:31 -07:00
e61d05f00b undo temporary big endian offset correction before leaving maybeMove 2009-03-06 12:14:37 -07:00
7388da6282 fix endianness issues when loading values smaller than BytesPerWord from the stack 2009-03-06 10:56:11 -07:00
ca0d4b44c1 defer moveZCR to moveCR 2009-03-06 10:54:43 -07:00
762df17aa7 use Architecture::plan in BranchEvent ctor to determine acceptable types for address 2009-03-05 20:27:59 -07:00
a0e503ad0a optimize moveRR and fix andC 2009-03-05 20:21:15 -07:00
75e28e81c9 fix operand ordering in remainderR 2009-03-05 19:35:49 -07:00
ec610a5521 handle shift counts greater than 31 properly 2009-03-05 19:05:39 -07:00
16e81bcc07 fix orC 2009-03-05 18:33:00 -07:00
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
3e495b8ca5 use mulhwu and eliminate temporary in 64-bit multiplyRR 2009-03-04 19:50:03 -07:00
77195713b8 fix xorR regression introduced in last commit 2009-03-04 19:22:47 -07:00
cca3e72318 fix 64-bit xorC 2009-03-04 19:20:15 -07:00
acfa1ee2ff fix 64-bit negateRR 2009-03-04 18:59:04 -07:00
d48e5377fe add missing instruction to multiplyR 2009-03-04 18:43:53 -07:00
a8da9ecb05 fix use of displacement parameter in instruction format B; use correct opcode in slw instruction 2009-03-04 18:20:54 -07:00
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
8cc1f6def8 remove dead code from MyCompiler::call 2009-03-04 17:52:55 -07:00
JET
dbcd42e70c added 64-bit shifts and mul/div 2009-03-04 10:11:42 -07:00
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
8410e1d683 ensure reads and writes of volatile 64-bit fields are atomic 2009-03-03 18:02:11 -07:00
2ca8132d97 implement support for volatile fields 2009-03-02 20:18:15 -07:00
8c9d625f8f add memory barriers where appropriate in compile.cpp 2009-03-02 18:40:06 -07:00
5f0b40e531 restore call to Client::releaseTemporary in moveCM 2009-03-01 23:07:28 +00:00
6eacf7b804 fix bounds checks in MyCompiler::initLocalsFromLogicalIp 2009-03-01 22:47:07 +00:00
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
1192ef939e fix stack offset calculation for multianewarray on x86 2009-03-01 15:39:52 -07:00
7a2bf9b855 fix x86.cpp build 2009-03-01 15:14:51 -07:00
28d4409b0a implement negateRR 2009-03-01 12:57:07 -07:00
36196910ed implement xorR and xorC 2009-03-01 12:40:49 -07:00
97e698d806 fix MyCompiler::peak for big-endian architectures 2009-03-01 12:36:30 -07:00
696282631a fix endianness issues with 64-bit locals 2009-03-01 12:28:17 -07:00
412348d938 fix stack offset calulation for multianewarray 2009-03-01 10:49:37 -07:00
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
93ebb571b3 only add site to result if result is live in CombineEvent::compile and TranslateEvent::compile 2009-02-28 19:08:14 -07:00
5adcfa3341 fix 32-bit indexed loads 2009-02-28 17:31:09 -07:00
750f4d51da fix extsb/extsh operand order in moveRR 2009-02-28 17:17:12 -07:00
f01a78699f fix opcode for lbzx 2009-02-28 16:58:54 -07:00
b0422b32e6 implement orR and orC; add shift operations to ternary operation table 2009-02-28 16:28:10 -07:00
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
10c75f4783 add longCompareC to ternary operation table 2009-02-28 15:04:04 -07:00