67 Commits

Author SHA1 Message Date
Christian Thalinger
fc31a8e0b9 7079626: x64 emits unnecessary REX prefix
Reviewed-by: kvn, iveresov, never
2011-08-17 05:14:43 -07:00
Vladimir Kozlov
90651b2666 7079329: Adjust allocation prefetching for T4
On T4 2 BIS instructions should be issued to prefetch 64 bytes

Reviewed-by: iveresov, phh, twisti
2011-08-16 16:59:46 -07:00
Vladimir Kozlov
ac99f413d7 7063629: use cbcond in C2 generated code on T4
Use new short branch instruction in C2 generated code.

Reviewed-by: never
2011-08-11 12:08:11 -07:00
Tom Rodriguez
7c1d16f7d3 7056380: VM crashes with SIGSEGV in compiled code
Code was using andq reg, imm instead of addq addr, imm

Reviewed-by: kvn, jrose, twisti
2011-06-21 09:04:55 -07:00
John R Rose
bb3a527f9a 7047697: MethodHandle.invokeExact call for wrong method causes VM failure if run with -Xcomp
Reviewed-by: never, twisti
2011-06-08 17:04:06 -07:00
Tom Rodriguez
a664e486bd 7045514: SPARC assembly code for JSR 292 ricochet frames
Reviewed-by: kvn, jrose
2011-06-03 22:31:43 -07:00
Tom Rodriguez
33f0e50994 7009361: JSR 292 Invalid value on stack on solaris-sparc with -Xcomp
Reviewed-by: kvn, twisti
2011-05-02 18:53:37 -07:00
Jon Masamitsu
8328bb291e Merge 2011-04-20 20:32:45 -07:00
John Cuthbertson
7c844aba67 Merge 2011-04-14 13:45:41 -07:00
Tom Deneau
899faa3fec 7035713: 3DNow Prefetch Instruction Support
The upcoming processors from AMD are the first that support 3dnow prefetch without supporting the 3dnow instruction set.

Reviewed-by: kvn
2011-04-11 15:30:31 -07:00
Igor Veresov
e8447846ee 7034967: C1: assert(false) failed: error (assembler_sparc.cpp:2043)
Fix -XX:+VerifyOops

Reviewed-by: kvn, never
2011-04-08 17:03:31 -07:00
Jon Masamitsu
b6e631d446 Merge 2011-04-08 14:19:50 -07:00
John Cuthbertson
a08e1ce906 7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error
A referent object that is only weakly reachable at the start of concurrent marking but is re-attached to the strongly reachable object graph during marking may not be marked as live. This can cause the reference object to be processed prematurely and leave dangling pointers to the referent object. Implement a read barrier for the java.lang.ref.Reference::referent field by intrinsifying the Reference.get() method, and intercepting accesses though JNI, reflection, and Unsafe, so that when a non-null referent object is read it is also logged in an SATB buffer.

Reviewed-by: kvn, iveresov, never, tonyp, dholmes
2011-04-07 09:53:20 -07:00
Christian Thalinger
79c814c616 7032388: guarantee(VM_Version::supports_cmov()) failed: illegal instruction on i586 after 6919934
6919934 added some unguarded cmov instructions which hit a guarantee on older hardware.

Reviewed-by: never, iveresov, kvn, phh
2011-03-31 00:27:08 -07:00
Igor Veresov
36303f61b6 6964776: c2 should ensure the polling page is reachable on 64 bit
Materialize the pointer to the polling page in a register instead of using rip-relative addressing when the distance from the code cache is larger than disp32.

Reviewed-by: never, kvn
2011-03-27 13:17:37 -07:00
John R Rose
f6344076f2 7012648: move JSR 292 to package java.lang.invoke and adjust names
Package and class renaming only; delete unused methods and classes

Reviewed-by: twisti
2011-03-11 22:34:57 -08:00
Vladimir Kozlov
a74bc73598 6942326: x86 code in string_indexof() could read beyond reserved heap space
Copy small (<8) strings on stack if str+16 crosses a page boundary and load from stack into XMM. Back up pointer when loading string's tail.

Reviewed-by: never
2011-02-26 12:10:54 -08:00
Tom Rodriguez
4b3ada699d 7016474: string compare intrinsic improvements
Reviewed-by: kvn
2011-02-09 15:02:23 -08:00
Christian Thalinger
c2b37037c6 7018378: JSR 292: _bound_int_mh produces wrong result on 64-bit SPARC
Reviewed-by: kvn
2011-02-14 03:21:18 -08:00
Paul Hohensee
7b0134a7cb 7003271: Hotspot should track cumulative Java heap bytes allocated on a per-thread basis
Track allocated bytes in Thread's, update on TLAB retirement and direct allocation in Eden and tenured, add JNI methods for ThreadMXBean.

Reviewed-by: coleenp, kvn, dholmes, ysr
2011-01-07 10:42:32 -05:00
Igor Veresov
a9bee9ec34 Merge 2010-12-08 17:50:49 -08:00
Christian Thalinger
ffaadcecea 6961690: load oops from constant table on SPARC
Oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.

Reviewed-by: never, kvn
2010-12-03 01:34:31 -08:00
Coleen Phillimore
a1d3c19596 6780143: hs203t003 hits SIGSEGV/EXCEPTION_ACCESS_VIOLATION with -XX:+UseCompressedOops
Using r12 as temporary register around call_VM trashes heapbase becausecall_VM doesn't always return immediately to following code (eg forward_exception, popframe and early return support).

Reviewed-by: never, kvn
2010-11-29 15:43:36 -05:00
Stefan Karlsson
8006fe8f75 6989984: Use standard include model for Hospot
Replaced MakeDeps and the includeDB files with more standardized solutions.

Reviewed-by: coleenp, kvn, kamg
2010-11-23 13:22:55 -08:00
Vladimir Kozlov
ce2df719c6 6997311: SIGFPE in new long division asm code
Use unsigned DIV instruction

Reviewed-by: never
2010-11-06 18:52:07 -07:00
Vladimir Kozlov
249b1f6c4f 6987135: Performance regression on Intel platform with 32-bits edition between 6u13 and 6u14
Use hardware DIV instruction for long division by constant when it is faster than code with multiply.

Reviewed-by: never
2010-11-02 09:00:37 -07:00
Christian Thalinger
0e4ed251b8 6829194: JSR 292 needs to support compressed oops
Reviewed-by: kvn, jrose
2010-10-11 04:18:58 -07:00
John R Rose
52e3d262a1 6939224: MethodHandle.invokeGeneric needs to perform the correct set of conversions
Reviewed-by: never
2010-09-13 23:24:30 -07:00
Tom Rodriguez
08d9e03b81 4809552: Optimize Arrays.fill(...)
Reviewed-by: kvn
2010-08-27 17:33:49 -07:00
Tom Rodriguez
dc37d152e7 6975027: use of movptr to set length of array
Reviewed-by: kvn, iveresov
2010-08-10 12:15:10 -07:00
Vladimir Kozlov
f0b6dc4e4f 6973308: Missing zero length check before repne scas in check_klass_subtype_slow_path()
Set Z = 0 (not equal) before repne_scan() to indicate that class was not found when RCX == 0.

Reviewed-by: never, phh
2010-07-30 10:21:15 -07:00
Vladimir Kozlov
36f8c82970 6958254: -XX:+VerifyOops is broken on x86
Save and restore r10 in verify_oop().

Reviewed-by: never
2010-06-03 14:20:27 -07:00
John R Rose
d6a9b93b5a Merge 2010-06-02 22:45:42 -07:00
Erik Trimble
ba7c173659 6941466: Oracle rebranding changes for Hotspot repositories
Change all the Sun copyrights to Oracle copyright

Reviewed-by: ohair
2010-05-27 19:08:38 -07:00
Vladimir Kozlov
cc18a50e59 6916623: Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
Added new product ObjectAlignmentInBytes flag to control object alignment.

Reviewed-by: twisti, ysr, iveresov
2010-05-27 18:01:56 -07:00
John R Rose
71599d89d4 Merge 2010-05-11 15:19:19 -07:00
Christian Thalinger
0211f9703a 6943304: remove tagged stack interpreter
Reviewed-by: coleenp, never, gbenson
2010-04-30 08:37:24 -07:00
Christian Thalinger
6d2a896bcd 6829193: JSR 292 needs to support SPARC
There are unimplemented portions of the hotspot code for method handles and invokedynamic specific to SPARC.

Reviewed-by: kvn, never, jrose
2010-04-29 06:30:25 -07:00
Igor Veresov
fc76d07b40 6942223: c1 64 bit fixes
This fixes lir_cmp_l2i on x64 and sparc 64bit, and the debug info generation.

Reviewed-by: never
2010-04-08 12:13:07 -07:00
Vladimir Kozlov
72a7a6ffcf 6935535: String.indexOf() returns incorrect result on x86 with SSE4.2
Added missing counter decrement when substring search restarted.

Reviewed-by: twisti
2010-03-17 10:47:03 -07:00
Christian Thalinger
fae9c37803 6829192: JSR 292 needs to support 64-bit x86
Changes for method handles and invokedynamic

Reviewed-by: kvn
2009-12-16 12:48:04 +01:00
Changpeng Fang
2c40841f3f Merge 2009-11-10 17:00:18 -08:00
Roland Westrelin
7eea7dcfe4 6769124: various 64-bit fixes for c1
Reviewed-by: never
2009-11-02 11:17:55 +01:00
John Cuthbertson
bf0f699b33 6889740: G1: OpenDS fails with "unhandled exception in compiled code"
Incorrect code was being generated for the store operation in the null case of the aastore bytecode template. The bad code was generated by the store_heap_oop routine which takes a Register as its second argument. Passing NULL_WORD (0) as the second argument causes the value to be converted to Register(0), which is rax. Thus the generated store was "mov (dst), $rax" instead of "mov (dst), $0x0". Changed calls to store_heap_oop that pass NULL_WORD as the second argument to a new routine store_heap_oop_null.

Reviewed-by: kvn, twisti
2009-10-29 09:42:26 -07:00
Vladimir Kozlov
34324e30c0 6890984: Comparison of 2 arrays could cause VM crash
Restore original null checks.

Reviewed-by: never, cfang
2009-10-14 15:03:32 -07:00
John Coomes
7e76feaf42 6888953: some calls to function-like macros are missing semicolons
Reviewed-by: pbk, kvn
2009-10-11 16:19:25 -07:00
Vladimir Kozlov
243514d483 6827605: new String intrinsics may prevent EA scalar replacement
6875866: Intrinsic for String.indexOf() is broken on x86 with SSE4.2

Modify String intrinsic methods to pass char[] pointers instead of string oops.

Reviewed-by: never
2009-09-14 12:14:20 -07:00
Vladimir Kozlov
9f97cf13e8 6864914: SPECjvm2008 produces invalid result with zero based Compressed Oops
Always use "lea" instruction for narrow oop decoding instead of "shift".

Reviewed-by: never
2009-07-30 16:05:56 -07:00
Y. Srinivas Ramakrishna
075c1335cb 6700789: G1: Enable use of compressed oops with G1 heaps
Modifications to G1 so as to allow the use of compressed oops.

Reviewed-by: apetrusenko, coleenp, jmasa, kvn, never, phh, tonyp
2009-07-14 15:40:39 -07:00
Christian Thalinger
6a270f9f19 6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
These methods can be instrinsified by using bit scan, bit test, and population count instructions.

Reviewed-by: kvn, never
2009-05-06 00:27:52 -07:00