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