Commit Graph

1387 Commits

Author SHA1 Message Date
Joel Dice
a0d763d871 use cmpxchgq for 64-bit operands in atomicCompareAndSwap 2009-11-20 15:17:35 -07:00
Joel Dice
2276eece0e support atomicCompareAndSwap on powerpc for GCC versions prior to 4.1 2009-11-20 15:14:27 -07:00
Joel Dice
b83314e884 fix powerpc build 2009-11-20 10:42:02 -07:00
Joel Dice
15eada93ed implement atomicCompareAndSwap on x86_32 for GCC versions prior to 4.1 and for MSVC 2009-11-20 10:40:01 -07:00
Joel Dice
e91157a390 avoid acquiring a mutex recursively in markDirty 2009-11-19 19:41:49 -07:00
Joel Dice
5f5cc57d12 only use atomic operations if the compiler supports them 2009-11-19 19:32:54 -07:00
Joel Dice
fdde34694c use atomic operations in MyHeap::mark to avoid need for mutex 2009-11-19 18:13:00 -07:00
Joel Dice
c711ac5701 return null from NewString[UTF] if the char* parameter is null 2009-11-18 11:01:47 -07:00
Joel Dice
5b8a7ca566 temporarily disable use of SSE on 32-bit systems until a bug involving memory<->SSE-register moves is fixed 2009-11-04 15:16:06 +00:00
Joel Dice
fb5796b740 don't use SSE for long-to-double conversion on 32-bit systems 2009-11-04 00:02:38 +00:00
Joel Dice
82d2be8e71 implement JavaVM::AttachCurrentThreadAsDaemon 2009-11-03 14:52:14 -07:00
Joel Dice
4566e7a7dd avoid infinite loop in deadWord 2009-11-03 14:14:27 -07:00
Joel Dice
ed4206b06d fix order-of-operations bug in compile loop
The code was capturing branch snapshots too early - before the call to
populateSources which might perform further moves.
2009-11-02 21:11:39 -07:00
Joel Dice
e825da60aa update continuation constants to reflect new field offsets 2009-10-30 00:45:46 +00:00
jet
d901653979 Merge branch 'master' into wip
Conflicts:

	src/compile.cpp
2009-10-29 14:23:20 -06:00
jet
d3d228e69b moduloInt + arm work 2009-10-29 14:14:44 -06:00
jet
e00fc5d91a ARM port work 2009-10-29 10:12:30 -06:00
Joel Dice
3c893b2ee3 Merge commit 'origin/master' into wip 2009-10-27 10:36:19 -06:00
Joel Dice
1fd00dd55d revert all __attribute__ ((externally_visible)) changes because it's not clear yet how to detect whether it's supported 2009-10-27 10:35:26 -06:00
Joel Dice
e3b21e80ba Merge commit 'origin/master' into wip 2009-10-27 09:41:20 -06:00
Joel Dice
f57d80f1b7 ammend recent commit to avoid using __attribute__ ((externally_visible)) when it is not available (second try) 2009-10-27 09:41:00 -06:00
Joel Dice
8bf3487ff1 Merge commit 'origin/master' into wip 2009-10-27 09:35:13 -06:00
Joel Dice
51fcf1ef74 ammend recent commit to avoid using __attribute__ ((externally_visible)) when it is not available 2009-10-27 09:34:46 -06:00
Joel Dice
2efff818ea Merge commit 'origin/master' into wip 2009-10-27 09:17:54 -06:00
Joel Dice
4570b86da0 add __attribute__ ((externally_visible)) to EXPORT macros to facilitate whole-program optimization using GCC 4.5 2009-10-27 09:16:08 -06:00
Joel Dice
c8d5c1faed visit all frame locations in resolveOriginalSites
Previously, we only visited frame locations containing values, but
this invited the possibility of reusing the same site for two
locations in some cases.
2009-10-26 17:59:20 -06:00
Joel Dice
3b4be3decd defer to helper thunk for frem and drem 2009-10-24 19:29:20 -06:00
Joel Dice
95c3f37bfb fix various bugs involving doubles on 32-bit systems 2009-10-24 17:18:56 -06:00
Joel Dice
064ad572bc use truncation, not rounding in float2Int instructions 2009-10-20 15:43:24 -06:00
Joel Dice
f27ecaa199 fix memcpy argument order in Avian_avian_Singleton_getLong 2009-10-20 13:38:05 -06:00
Joel Dice
e06f0407cb fix powerpc bootimage build (second try) 2009-10-20 09:06:52 -06:00
Joel Dice
c044781807 fix powerpc bootimage build 2009-10-20 08:20:49 -06:00
Joel Dice
984f3106fd fix powerpc build 2009-10-19 10:31:34 -06:00
Joel Dice
1a63b72b41 clean up float-vs.-int tracking in constant pools 2009-10-17 20:11:03 -06:00
Joel Dice
15020d77a6 refactor intrinsic support
This ensures that the low-level, architecture specific code need not
be aware of the semantics and names of Java methods.
2009-10-17 19:26:14 -06:00
Joel Dice
f702795178 fix integer truncation bug 2009-10-17 18:35:19 -06:00
Joel Dice
cec6444911 fix bootimage build for case where the JIT code area is too far from the AOT code area to do immediate-offset jumps between them 2009-10-17 18:18:03 -06:00
Joel Dice
963bfb3e3f avoid array bounds warnings from GCC 4.3
These warnings are due to GCC being smart enough to do interprocedural
constant propagation but not smart enough to avoid false positives in
all cases when looking for array bounds errors.
2009-10-17 18:09:54 -06:00
Joel Dice
7b0378c180 support darwin/x86_64 2009-10-14 10:01:37 -06:00
Joel Dice
ef4a8430ad add binaryToObject utility
We use this utility instead of objcopy to embed data into object files
because it offers more control over e.g. section alignment, which is
important for bootimage builds.
2009-10-13 19:00:16 -06:00
Joel Dice
87950e86b8 add missing parameter to native SystemClassLoader methods 2009-10-13 18:42:49 -06:00
Joel Dice
9fcdfaf7ff implement binaryToElf utility and use it instead of objcopy on Linux
This is necessary because objcopy does not currently allow us to
specify the alignment requirement for the .boot section used to store
the boot image for AOT builds.  This may be a problem for Windows as
well, in which case we'll need to add a binaryToPE utility.
2009-10-11 16:09:23 -06:00
Joel Dice
c65b106112 whitespace tweak in binaryToMacho.cpp 2009-10-11 16:06:09 -06:00
Joel Dice
b878b84d32 set DebugCompile to false in compile.cpp 2009-10-11 16:05:37 -06:00
Joel Dice
b4c1c6badf fix process=interpret build 2009-10-10 18:23:14 -06:00
Joel Dice
44a6620aa1 disable use of SSE when compiling ahead-of-time 2009-10-10 17:46:43 -06:00
Joel Dice
38bf29300f enable SSE<->GPR moves when size matches word size 2009-10-10 22:27:35 +00:00
Joel Dice
78d9e51b7e replace hasMoreThanOneSite with uniqueSite; rename Value fields
uniqueSite also checks, if applicable, to see if the second word of a
value shares the specified site with the first value as its sole site.

Also renamed a couple of fields in Value for clarity.
2009-10-10 16:07:30 -06:00
Joel Dice
622b3d1c4e replace compare and branch instructions with combined versions
This allows the assembler to see the operand types of the comparison
and the condition for jumping in the same operation, which is
essential for generating efficient code in cases such as
multiple-precision compare-and-branch.
2009-10-10 15:03:23 -06:00
Joel Dice
609a1a9633 snapshot 2009-10-07 00:50:32 +00:00