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
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