Commit graph

90 commits

Author SHA1 Message Date
Erik Osterlund
c2a4574760 7143664: Clean up OrderAccess implementations and usage
Clarify and correct the abstract model for memory barriers provided by the orderAccess class. Refactor the implementations using template specialization to allow the bulk of the code to be shared, with platform specific customizations applied as needed.

Reviewed-by: acorn, dcubed, dholmes, dlong, goetz, kbarrett, sgehwolf
2015-03-03 19:20:26 -05:00
Paul Sandoz
c002e71565 8068977: Remove unused sun.misc.Unsafe prefetch intrinsic support
Reviewed-by: kvn, vlivanov
2015-02-10 21:32:05 +01:00
Goetz Lindenmaier
0aa09022fa 8062370: Various minor code improvements
A lot of fixes useful to improve the code quality.

Reviewed-by: coleenp, dholmes
2014-10-29 10:13:24 +01:00
Igor Veresov
7ae9df8697 8046684: sharedRuntime.cpp...assert(((nmethod*)cb)->is_at_poll_or_poll_return(pc)) failed: safepoint polling: type must be poll
Emit a poll relocation for the testl in is_polling_page_far() on x86

Reviewed-by: vlivanov, roland
2014-06-18 10:54:32 -07:00
Roland Westrelin
f5adc57f94 8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9
Make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points.

Reviewed-by: twisti, kvn
2014-04-01 09:36:49 +02:00
Igor Veresov
6428c0a397 8039043: Implicit null check is in the wrong place in C1 -UseCompressedOops
Null check is placed in a wrong place when storing a null to an object field on x64 with compressed oops off

Reviewed-by: roland, vlivanov, kvn
2014-04-02 11:24:51 -07:00
Christian Thalinger
315e4838e9 8031203: remove SafepointPollOffset
Reviewed-by: kvn, roland
2014-03-19 11:37:58 -07:00
Mikael Gerdin
927369db43 8028764: dtrace/hotspot_jni/ALL/ALL001 crashes the vm on Solaris-amd64, SIGSEGV in MarkSweep::follow_stack()+0x8a
C1 generates code to encode compressed oop into tmp register before runtime call for patching where GC may happen

Reviewed-by: iveresov, twisti, kvn
2014-01-14 09:44:45 +01:00
Igor Veresov
1c047b640d 8026495: JVM Crashes when started with -XX:+DTraceMethodProbes on Solaris x86_64
Fix wrong calling convention in LIR_Assembler::emit_unwind_handler(), T_METADATA support in calling convention generator, C1 register allocator

Reviewed-by: twisti, jrose
2013-10-23 11:15:24 -07:00
Morris Meyer
801b3e680e 8008242: VerifyOops is broken on SPARC
Fixed displacement issues in SPARC macroassembler and ensure that getClass intrinsic temporary result is T_METADATA

Reviewed-by: kvn, twisti
2013-10-18 12:15:32 -07:00
Roland Westrelin
cbd0e9bf96 8023657: New type profiling points: arguments to call
X86 interpreter and c1 type profiling for arguments at calls

Reviewed-by: kvn, twisti
2013-10-09 16:32:21 +02:00
Niclas Adlertz
afef481831 Merge 2013-09-19 18:01:39 +02:00
Igor Veresov
f99391ee6f 8023542: Test java/io/File/CheckPermission.java fails due to unfinished recursion (java.lang.StackOverflowError) when JIT'ed code (-client,-server) is running
Move null check before klass reference materialization in checkcast

Reviewed-by: kvn, roland
2013-09-18 14:10:21 -07:00
Roland Westrelin
f188c2bf70 7199175: JSR 292: C1 needs patching when invokedynamic/invokehandle call site is not linked
Do patching rather bailing out for unlinked call with appendix

Reviewed-by: twisti, kvn
2013-08-21 13:34:45 +02:00
Erik Helin
30f059b5fc 8015107: NPG: Use consistent naming for metaspace concepts
Reviewed-by: coleenp, mgerdin, hseigel
2013-08-12 17:37:02 +02:00
David Chase
9a359984c2 7088419: Use x86 Hardware CRC32 Instruction with java.util.zip.CRC32
Add intrinsics using new instruction to interpreter, C1, C2, for suitable x86; add test

Reviewed-by: kvn, twisti
2013-07-02 20:42:12 -04:00
Thomas Wuerthinger
06ef4cddf7 7153771: array bound check elimination for c1
When possible optimize out array bound checks, inserting predicates when needed.

Reviewed-by: never, kvn, twisti
2013-03-21 09:27:54 +01:00
Christian Thalinger
2c2c007448 8003240: x86: move MacroAssembler into separate file
Reviewed-by: kvn
2012-11-30 15:23:16 -08:00
Vladimir Kozlov
5f132a5ec3 Merge 2012-10-12 09:22:52 -07:00
Roland Westrelin
61eb5a0549 7054512: Compress class pointers after perm gen removal
Support of compress class pointers in the compilers.

Reviewed-by: kvn, twisti
2012-10-09 10:11:38 +02:00
Coleen Phillimore
28047d6a0f 8000213: NPG: Should have renamed arrayKlass and typeArrayKlass
Capitalize these metadata types (and objArrayKlass)

Reviewed-by: stefank, twisti, kvn
2012-09-29 06:40:00 -04:00
Roland Westrelin
302540691b 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Use shorter instruction sequences for atomic add and atomic exchange when possible.

Reviewed-by: kvn, jrose
2012-09-20 16:49:17 +02:00
Roland Westrelin
08757b8a99 7195816: NPG: Crash in c1_ValueType - ShouldNotReachHere
C1 needs knowledge of T_METADATA at the LIR level.

Reviewed-by: kvn, coleenp
2012-09-11 16:20:57 +02:00
Jon Masamitsu
5c58d27aac 6964458: Reimplement class meta-data storage to use native memory
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
2012-09-01 13:25:18 -04:00
Christian Thalinger
12901d0e5b 7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI

Remove assembly code for JDK 7 chained method handles

Co-authored-by: John Rose <john.r.rose@oracle.com>
Co-authored-by: Michael Haupt <michael.haupt@oracle.com>
Reviewed-by: jrose, twisti, kvn, mhaupt
2012-07-24 10:51:00 -07:00
Christian Thalinger
301e9f9548 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely
Reviewed-by: kvn
2012-06-13 11:36:03 -07:00
Roland Westrelin
b305cf722e 7133857: exp() and pow() should use the x87 ISA on x86
Use x87 instructions to implement exp() and pow() in interpreter/c1/c2.

Reviewed-by: kvn, never, twisti
2012-05-15 10:10:23 +02:00
Vladimir Kozlov
eb4a860bc3 6924259: Remove String.count/String.offset
Allow a version of String class that doesn't have count and offset fields.

Reviewed-by: never, coleenp
2012-05-14 09:36:00 -07:00
Igor Veresov
d16ab3b53e 7160539: JDeveloper crashes on 64-bit Windows
X64 C1 needs to zero upper 32bits when doing l2i conversion

Reviewed-by: never, kvn
2012-04-11 19:15:46 -07:00
Jiangli Zhou
3e904497b1 7120481: storeStore barrier in constructor with final field
Issue storestore barrier before constructor return if the constructor write final field.

Reviewed-by: dholmes, jrose, roland, coleenp
2012-02-21 13:14:55 -05:00
Igor Veresov
c21cf7cf4b 7131288: COMPILE SKIPPED: deopt handler overflow (retry at different tier)
Fix exception handler stub size, enable guarantees to check for the correct deopt and exception stub sizes in the future

Reviewed-by: kvn, never, twisti
2012-01-19 10:56:51 -08:00
Vladimir Kozlov
b93ca70b9b Merge 2012-01-06 20:09:20 -08:00
Stefan Karlsson
e057d60ca1 7118863: Move sizeof(klassOopDesc) into the *Klass::*_offset_in_bytes() functions
Moved sizeof(klassOopDesc), changed the return type to ByteSize and removed the _in_bytes suffix.

Reviewed-by: never, bdelsart, coleenp, jrose
2011-12-07 11:35:03 +01:00
Jiangli Zhou
f9f4ba0203 7117052: instanceKlass::_init_state can be u1 type
Change instanceKlass::_init_state field to u1 type.

Reviewed-by: bdelsart, coleenp, dholmes, phh, never
2011-12-06 18:28:51 -05:00
Kurt Miller
95c56a472b 7089790: integrate bsd-port changes
Co-authored-by: Greg Lewis <glewis@eyesbeyond.com>
Co-authored-by: Jung-uk Kim <jkim@freebsd.org>
Co-authored-by: Christos Zoulas <christos@zoulas.com>
Co-authored-by: Landon Fuller <landonf@plausible.coop>
Co-authored-by: The FreeBSD Foundation <board@freebsdfoundation.org>
Co-authored-by: Michael Franz <mvfranz@gmail.com>
Co-authored-by: Roger Hoover <rhoover@apple.com>
Co-authored-by: Alexander Strange <astrange@apple.com>
Reviewed-by: kvn, twisti, jrose
2011-09-25 16:03:29 -07:00
Tom Rodriguez
fa7c124af1 7083786: dead various dead chunks of code
Reviewed-by: iveresov, kvn
2011-08-31 16:46:11 -07:00
Igor Veresov
193c0ac698 7047491: C1: registers saved incorrectly when calling checkcast_arraycopy stub
Save and restore the argument registers around the call to checkcast_arraycopy

Reviewed-by: never, roland
2011-05-26 13:15:01 -07:00
Thomas Salter
da271b804e 7046893: LP64 problem with double_quadword in c1_LIRAssembler_x86.cpp
Fixed invalid casts in address computation

Reviewed-by: kvn, never
2011-05-24 15:30:05 -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
Roland Westrelin
f94d7776ca 7033154: Improve C1 arraycopy performance
Better static analysis. Take advantage of array copy stubs.

Reviewed-by: never
2011-04-03 12:00:54 +02: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
Christian Thalinger
cd6c0b147e 7012914: JSR 292 MethodHandlesTest C1: frame::verify_return_pc(return_address) failed: must be a return pc
Reviewed-by: never, bdelsart
2011-02-28 06:07:12 -08:00
Igor Veresov
c6f34365c2 7010618: C1: array length should be treated at int on 64bit during array allocation
Sign-extend the length argument during array allocation

Reviewed-by: never, kvn
2011-01-06 16:03:20 -08:00
Igor Veresov
43280aa63e 7009231: C1: Incorrect CAS code for longs on SPARC 32bit
Fix CAS of longs on SPARC 32bit and cmove on SPARC 64bit.

Reviewed-by: kvn
2010-12-27 21:51:31 -08:00
Igor Veresov
eafb22164b 7005241: C1: SEGV in java.util.concurrent.LinkedTransferQueue.xfer() with compressed oops
Implementation of the CAS primitive for x64 compressed oops was incorrect. It kills rscratch2 register (r11), which is allocatable in C1. Also, we don't need to restore cmpval as it's never used after that, so we need only one temporary register, which can be scratch1.

Reviewed-by: kvn, never
2010-12-08 02:36:36 -08:00
Igor Veresov
ab725dba1d 7003554: (tiered) assert(is_null_object() || handle() != NULL) failed: cannot embed null pointer
C1 with profiling doesn't check whether the MDO has been really allocated, which can silently fail if the perm gen is full. The solution is to check if the allocation failed and bailout out of inlining or compilation.

Reviewed-by: kvn, never
2010-12-02 17:21:12 -08:00
Igor Veresov
d59d7ffc4a 6985015: C1 needs to support compressed oops
This change implements compressed oops for C1 for x64 and sparc. The changes are mostly on the codegen level, with a few exceptions when we do access things outside of the heap that are uncompressed from the IR. Compressed oops are now also enabled with tiered.

Reviewed-by: twisti, kvn, never, phh
2010-11-30 23:23:40 -08: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
Igor Veresov
28a13e88e7 6991512: G1 barriers fail with 64bit C1
Fix compare-and-swap intrinsic problem with G1 post-barriers and issue with branch ranges in G1 stubs on sparc

Reviewed-by: never, kvn
2010-10-12 23:51:20 -07:00