Joel Dice
71295e54c7
handle constants larger than 8 bits in subtractBorrowCR
2012-03-11 04:59:42 -06:00
Joel Dice
be01e5b687
fix handling of 64-bit arguments to Method.invoke on 32-bit architectures
...
The previous code failed to account for alignment padding in the
Double and Long classes.
2011-09-12 20:26:32 -06:00
Joel Dice
7bea2b6b7d
fix putstatic/putfield for 64-bit volatiles
...
We must call acquireMonitorForObject before popping the
putstatic/pushfield operands off the stack to avoid clobbering said
operands.
2011-05-23 12:38:12 -06:00
Joel Dice
857dcd13e7
fix 64-bit constant comparisons on 32-bit platforms
2010-12-20 18:08:52 -07:00
Joel Dice
1d9489a76e
fix a couple of 64-bit-op-on-32-bit-system bugs
...
We weren't properly handling the case where a 64-bit value is
multipled with itself in multiplyRR, leading to wrong code. Also,
addCarryCR didn't know how to handle constants more than 8-bits wide.
2010-11-30 16:58:51 -07:00
Joel Dice
19dca18cd0
disable Math.abs(long) intrinsic on 32-bit x86
...
It never worked and caused the compiler to crash instead due to an
impossible-to-fulfill constraint.
2010-11-30 11:36:18 -07:00
Joel Dice
ddc90ef76e
fix 64-bit left shifts with constant shifts greater than or equal to 32
...
The shiftLeftC function in powerpc.cpp was miscompiling such shifts,
leading to crashes due to illegal instructions and other weirdness due
to instructions that meant something completely different. This
commit fixes that and adds a test to Longs.java to make sure it stays
fixed.
2010-07-23 10:52:58 -06:00
Joel Dice
935329d7cf
fix 32-bit shift case in unsignedShiftRightC
2009-08-11 12:36:25 -06:00
Joel Dice
012d548bbb
fix sign extension from int to long on x86_64
2009-08-07 14:48:30 -06:00
Joel Dice
a0e503ad0a
optimize moveRR and fix andC
2009-03-05 20:21:15 -07:00
Joel Dice
6297c8a906
add tests to Arrays.java and Longs.java
2009-02-02 19:12:07 -07:00
Joel Dice
cae5202be0
split Misc.java into four separate files
2008-11-10 17:07:15 -07:00