8ac6fb9d75
fix x86_64 build
2009-03-09 15:29:37 +00:00
89a2739165
sync instruction cache after compiling a method
2009-03-09 08:26:23 -06:00
4347228585
fix thinko in addC for zero constant case
2009-03-08 20:55:54 -06:00
68ed5e6cb5
fix addC for case where bit 15 of constant is set
2009-03-08 20:09:06 -06:00
8b0f7d790f
don't assume sizeof(bool) == 8
2009-03-07 18:23:28 -07:00
e1395f300a
fix warnings for optimized build
2009-03-07 17:52:18 -07:00
14c6deb710
do two passes in MyCompiler::initLocalsFromLogicalIp in order to properly link multiword values together
2009-03-07 17:39:55 -07:00
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