History log of /openjdk10/hotspot/src/cpu/x86/vm/assembler_x86.cpp
Revision Date Author Comments
# 13152:78408191085a 07-Jun-2017 vdeshpande

8181616: FMA Vectorization on x86
Reviewed-by: kvn


# 13149:df318ded5778 29-May-2017 roland

8176506: C2: loop unswitching and unsafe accesses cause crash
Reviewed-by: vlivanov, mcberg, kvn, simonis


# 13064:c1995208a14f 05-May-2017 vdeshpande

8178811: Minimize the AVX <-> SSE transition penalty through generation of vzeroupper instruction on x86
Reviewed-by: kvn


# 12733:28e7bb59323e 06-Apr-2017 thartmann

8178033: C1 crashes with -XX:UseAVX = 3: "not a mov [reg+offs], reg instruction"
Summary: Skip the EVEX prefix such that the instruction address points to the prefixed opcode.
Reviewed-by: kvn, mcberg


# 12310:48542f67f082 09-Nov-2016 kvn

8167067: Fix x86 SHA instructions to be non Vex encoded
Reviewed-by: kvn
Contributed-by: razvan.a.lupusoru@intel.com


# 12230:138e5abe35a9 21-Oct-2016 kvn

8165381: Update for x86 SHA512 using AVX2
Summary: Add intrinsics for x86 AVX2 architecture with no SHA instructions.
Reviewed-by: kvn
Contributed-by: smita.kamath@intel.com


# 12205:d5c67c13e5f9 18-Oct-2016 mcberg

8167987: change merge context to clear for mask register usage model
Reviewed-by: kvn


# 12076:ca56c5db7157 26-Aug-2016 vdeshpande

8154122: Intrinsify fused mac operations
Summary: added FMA intrinsics on x86
Reviewed-by: kvn, aph, darcy


# 11515:aa5cd232c161 15-Jun-2016 shade

8157726: VarHandles/Unsafe should support sub-word atomic ops
Reviewed-by: psandoz, vlivanov, lagergren


# 11185:4a39ee246f70 05-May-2016 kvn

8154974: AVX-512 equipped inflate, has_negatives & compress intrinsics
Reviewed-by: kvn
Contributed-by: tomasz.wojtowicz@intel.com


# 11084:4fd1504a0237 27-Apr-2016 vdeshpande

8154975: Update for vectorizedMismatch with AVX512
Reviewed-by: kvn


# 11081:6a17c49de974 26-Apr-2016 jcivlin

8154495: SHA256 AVX2 intrinsic (when no supports_sha() available)
Reviewed-by: kvn


# 11080:9a2e10539d44 26-Apr-2016 mcberg

8154896: xml.transform fails intermittently on SKX
Summary: Replace some short branches (jccb) to avoid problem when EVEX is used.
Reviewed-by: twisti, kvn


# 10995:ccfc68592c92 18-Apr-2016 mcberg

8153998: Masked vector post loops
Summary: Masked vectorization for post loops to execute in a single iteration in place of fixup scalar loops which used to take many iterations to complete work for user loops.
Reviewed-by: twisti, kvn


# 10964:33f10a35ce20 06-Apr-2016 vdeshpande

8152907: Update for x86 tan and log10 in the math lib
Summary: Optimize Math.tan() and log10() for 64 and 32 bit X86 architecture using Intel LIBM implementation.
Reviewed-by: kvn, twisti
Contributed-by: shravya.rukmannagari@intel.com


# 10807:55f9239df8d7 05-Apr-2016 mcberg

8151003: Remove nds->is_valid() checks from assembler_x86.cpp
Reviewed-by: kvn


# 10537:450bb8cbf13e 29-Mar-2016 mcberg

8152496: Blended code generation
Reviewed-by: kvn, shade


# 10435:0edd74a48586 07-Mar-2016 mikael

8151002: Make Assembler methods vextract and vinsert match actual instructions
Reviewed-by: kvn, vlivanov, mcberg


# 10429:59829cb7ae2e 03-Mar-2016 vdeshpande

8150767: Enables SHA Extensions on x86
Summary: Add x86 intrinsics for SHA-1 and SHA-256.
Reviewed-by: kvn, twisti
Contributed-by: vivek.r.deshpande@intel.com, shravya.rukmannagari@intel.com


# 10228:5fefcbeda616 12-Feb-2016 mcberg

8149421: Vectorized Post Loops
Summary: add vectorised post loop for counted loops with vectors.
Reviewed-by: kvn


# 9995:13b04370e8e9 08-Jan-2016 vdeshpande

8143353: update for x86 sin and cos in the math lib
Summary: Optimize Math.sin() and cos() for 64 and 32 bit X86 architecture using Intel LIBM implementation.
Reviewed-by: kvn


# 9820:72f54de44772 29-Dec-2015 kvn

8143925: Enhancing CounterMode.crypt() for AES
Summary: Add intrinsic for CounterMode.crypt() to leverage the parallel nature of AES in Counter(CTR) Mode.
Reviewed-by: kvn, ascarpino
Contributed-by: kishor.kharbas@intel.com


# 9812:94849fb8ce93 23-Dec-2015 kvn

8145688: Update for x86 pow in the math lib
Summary: Optimizes Math.pow() for 64 and 32 bit X86 architecture using Intel LIBM implementation.
Reviewed-by: kvn
Contributed-by: vivek.r.deshpande@intel.com


# 9779:5b1e593803b5 14-Dec-2015 kvn

8144771: Use AVX3 instructions for string compare
Reviewed-by: kvn, thartmann
Contributed-by: jan.civlin@intel.com, michael.c.berg@intel.com


# 9491:42fc18486e9c 19-Nov-2015 mcberg

8142980: SKX SpecJvm2008 - Derby
Summary: Fix EVEX and AVX512 problems found by testing on 64-bit SKX and KNL EVEX enabled platforms.
Reviewed-by: iveresov, kvn, vlivanov


# 9450:b57d415bdaa9 09-Nov-2015 iveresov

8140779: Code generation fixes for avx512
Summary: Assembler refactoring. Abstract away instruction attributes.
Reviewed-by: kvn, roland, iveresov
Contributed-by: michael.c.berg@intel.com


# 9283:f31349f1215e 03-Nov-2015 thartmann

8141132: JEP 254: Compact Strings
Summary: Adopt a more space-efficient internal representation for strings.
Reviewed-by: alanb, bdelsart, coleenp, iklam, jiangli, jrose, kevinw, naoto, pliden, roland, smarks, twisti
Contributed-by: Brent Christian <brent.christian@oracle.com>, Vivek Deshpande <vivek.r.deshpande@intel.com>, Tobias Hartmann <tobias.hartmann@oracle.com>, Charlie Hunt <charlie.hunt@oracle.com>, Vladimir Kozlov <vladimir.kozlov@oracle.com>, Roger Riggs <roger.riggs@oracle.com>, Xueming Shen <xueming.shen@oracle.com>, Aleksey Shipilev <aleksey.shipilev@oracle.com>, Sandhya Viswanathan <sandhya.viswanathan@intel.com>


# 9209:ae64ff428e18 26-Oct-2015 iveresov

8139340: SuperWord enhancement to support vector conditional move (CMovVD) on Intel AVX cpu
Summary: Emit vector conditional moves
Reviewed-by: kvn
Contributed-by: jan.civlin@intel.com


# 9205:4b46d2b42fcb 22-Oct-2015 iveresov

8139575: Update for x86 log in the math lib
Summary: Add new java.lang.Math() intrinsics from x86
Reviewed-by: kvn, iveresov
Contributed-by: vivek.r.deshpande@intel.com


# 9149:a8a8604f890f 17-Oct-2015 dlong

Merge


# 9120:1f0d9d89003a 12-Oct-2015 iveresov

8139454: java/lang/Math/WorstCaseTests.java crashes on Linux-amd64
Summary: Emit the form of pextrw that works with sse2
Reviewed-by: iveresov, twisti
Contributed-by: vivek.r.deshpande@intel.com


# 9111:a41fe5ffa839 08-Oct-2015 twisti

8136421: JEP 243: Java-Level JVM Compiler Interface
Reviewed-by: ihse, alanb, roland, coleenp, iveresov, kvn, kbarrett


# 9106:53c5cb9d3fed 15-Oct-2015 jwilhelm

Merge


# 9080:00e5743fd189 06-Oct-2015 jwilhelm

Merge


# 9056:dc9930a04ab0 29-Sep-2015 david

8080775: Better argument formatting for assert() and friends
Reviewed-by: kbarrett, pliden


# 9040:324ea1a2419a 05-Oct-2015 iveresov

8132207: update for x86 exp in the math lib
Summary: Add new java.lang.Math() intrinsics from x86
Reviewed-by: kvn, iveresov
Contributed-by: vivek.r.deshpande@intel.com


# 9017:a60e232aa8f2 16-Sep-2015 kvn

8134553: CRC32C implementations for x86/x64 targets
Reviewed-by: kvn
Contributed-by: tomasz.wojtowicz@intel.com


# 8965:41b6cb9246fe 11-Sep-2015 mcberg

8132160: support for AVX 512 call frames and stack management
Summary: simplify save/restore frame on x86 systems which support EVEX.
Reviewed-by: kvn, iveresov


# 8961:a589f73b79f4 09-Sep-2015 mcberg

8135028: support for vectorizing double precision sqrt
Reviewed-by: kvn, twisti


# 8879:3d49f9466425 19-Aug-2015 zmajo

8076373: In 32-bit VM interpreter and compiled code process NaN values differently
Summary: Change interpreter to use XMM registers on x86_32 if they are available. Add stubs for methods transforming from/to int/long float/double.
Reviewed-by: kvn, mcberg


# 8608:a7dfe3d73bf9 23-Jun-2015 mcberg

8081247: AVX 512 extended support
Summary: add more support for EVEX encoding
Reviewed-by: kvn, neliasso


# 8602:ce0c612ea443 17-Jun-2015 ascarpino

8073108: Use x86 and SPARC CPU instructions for GHASH acceleration
Reviewed-by: kvn, jrose


# 8504:578f086f3435 03-Jun-2015 kvn

8081778: Use Intel x64 CPU instructions for RSA acceleration
Summary: Add intrinsics for BigInteger squareToLen and mulAdd methods.
Reviewed-by: kvn, jrose


# 8417:38506b2c64ad 18-May-2015 jwilhelm

Merge


# 8413:92457dfb91bd 13-May-2015 pliden

8079792: GC directory structure cleanup
Reviewed-by: brutisso, stefank, david


# 8379:bd72804c91d6 08-May-2015 kvn

8076276: Add support for AVX512
Reviewed-by: kvn, roland
Contributed-by: michael.c.berg@intel.com


# 8196:6fff5df5f3d2 01-Apr-2015 kvn

8074981: Integer/FP scalar reduction optimization
Summary: Add scalar reduction optimization to C2 to take advantage of vector instructions in modern x86 CPUs.
Reviewed-by: kvn, twisti
Contributed-by: michael.c.berg@intel.com


# 7432:5398ffa1a419 21-Oct-2014 jwilhelm

8058255: Native jbyte Atomic::cmpxchg for supported x86 platforms
Summary: Use the native cmpxchgb instruction on x86.
Reviewed-by: dholmes, kbarrett, phh
Contributed-by: erik.osterlund@lnu.se


# 6997:427de14928ab 02-Sep-2014 kvn

8055494: Add C2 x86 intrinsic for BigInteger::multiplyToLen() method
Summary: Add new C2 intrinsic for BigInteger::multiplyToLen() on x86 in 64-bit VM.
Reviewed-by: roland


# 6839:76913ad3cd41 05-Aug-2014 kvn

8052081: Optimize generated by C2 code for Intel's Atom processor
Summary: Allow to execute vectorization and crc32 optimization on Atom. Enable UseFPUForSpilling by default on x86.
Reviewed-by: roland


# 6412:53a41e7cbe05 09-May-2014 drchase

8037816: Fix for 8036122 breaks build with Xcode5/clang
Summary: Repaired or selectively disabled offending formats; future-proofed with additional checking
Reviewed-by: kvn, jrose, stefank


# 6376:9883c95f17f6 29-Apr-2014 kvn

8041957: -XX:UseAVX=0 cause assert(UseAVX) failed
Summary: temporary set UseAVX=1 and UseSSE=2 in generate_get_cpu_info()
Reviewed-by: twisti


# 6188:a0ca9846a4a0 25-Mar-2014 iveresov

8038222: Assembler::bsrl fails on assert when -UseCountLeadingZerosInstruction is used on CPU with LZCNT support
Summary: Remove the overly strict assert
Reviewed-by: kvn, twisti


# 6182:2f459c5235f9 20-Mar-2014 kvn

8031320: Use Intel RTM instructions for locks
Summary: Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed


# 6117:9e9af3aa4278 12-Mar-2014 iveresov

8031321: Support Intel bit manipulation instructions
Summary: Add support for BMI1 instructions
Reviewed-by: kvn, roland


# 5562:59e8ad757e19 18-Oct-2013 rbackman

8026844: Various Math functions needs intrinsification
Reviewed-by: kvn, twisti


# 5362:f2512d89ad0c 28-Sep-2013 twisti

8025613: clang: remove -Wno-unused-value
Reviewed-by: iveresov


# 4918:b800986664f4 02-Jul-2013 drchase

7088419: Use x86 Hardware CRC32 Instruction with java.util.zip.CRC32
Summary: add intrinsics using new instruction to interpreter, C1, C2, for suitable x86; add test
Reviewed-by: kvn, twisti


# 4454:cc32ccaaf47f 04-Apr-2013 mikael

8003310: Enable -Wunused-function when compiling with gcc
Summary: Add the -Wunused-function flag and remove a number of unused functions.
Reviewed-by: dholmes, coleenp, kvn


# 4148:91a23b11d8dc 08-Feb-2013 kvn

8007708: compiler/6855215 assert(VM_Version::supports_sse4_2())
Summary: Added missing UseSSE42 check. Also added missing avx2 assert for vpermq instruction.
Reviewed-by: roland, twisti


# 4108:8391fdd36e1f 27-Jan-2013 dlong

Merge


# 4107:db9981fd3124 23-Jan-2013 jprovino

8005915: Unify SERIALGC and INCLUDE_ALTERNATE_GCS
Summary: Rename INCLUDE_ALTERNATE_GCS to INCLUDE_ALL_GCS and replace SERIALGC with INCLUDE_ALL_GCS.
Reviewed-by: coleenp, stefank


# 4044:b30b3c2a0cf2 22-Jan-2013 kvn

6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
Summary: Use SSE4.2 and AVX2 instructions for encodeArray intrinsic.
Reviewed-by: roland


# 3978:038dd2875b94 08-Jan-2013 kvn

8005419: Improve intrinsics code performance on x86 by using AVX2
Summary: use 256bit vpxor,vptest instructions in String.compareTo() and equals() intrinsics.
Reviewed-by: twisti


# 3977:ffa87474d7a4 07-Jan-2013 twisti

8004537: replace AbstractAssembler emit_long with emit_int32
Reviewed-by: jrose, kvn, twisti
Contributed-by: Morris Meyer <morris.meyer@oracle.com>


# 3976:e2e6bf86682c 03-Jan-2013 kvn

8005544: Use 256bit YMM registers in arraycopy stubs on x86
Summary: Use YMM registers in arraycopy and array_fill stubs.
Reviewed-by: roland, twisti


# 3975:00af3a3a8df4 03-Jan-2013 kvn

8005522: use fast-string instructions on x86 for zeroing
Summary: use 'rep stosb' instead of 'rep stosq' when fast-string operations are available.
Reviewed-by: twisti, roland


# 3931:d02120b7a34f 20-Dec-2012 twisti

8004250: replace AbstractAssembler a_byte/a_long with emit_int8/emit_int32
Reviewed-by: jrose, kvn, twisti
Contributed-by: Morris Meyer <morris.meyer@oracle.com>


# 3928:2c7f594145dc 19-Dec-2012 kvn

8004835: Improve AES intrinsics on x86
Summary: Enable AES intrinsics on non-AVX cpus, group together aes instructions in crypto stubs.
Reviewed-by: roland, twisti


# 3925:c4bd2eccea46 18-Dec-2012 twisti

8004536: replace AbstractAssembler emit_word with emit_int16
Reviewed-by: jrose, kvn, twisti
Contributed-by: Morris Meyer <morris.meyer@oracle.com>


# 3883:cd3d6a6b95d9 30-Nov-2012 twisti

8003240: x86: move MacroAssembler into separate file
Reviewed-by: kvn


# 3882:6ab62ad83507 30-Nov-2012 twisti

8003195: AbstractAssembler should not store code pointers but use the CodeSection directly
Reviewed-by: twisti, kvn
Contributed-by: Bharadwaj Yadavalli <bharadwaj.yadavalli@oracle.com>


# 3770:a3ecd773a7b9 24-Oct-2012 kvn

7184394: add intrinsics to use AES instructions
Summary: Use new x86 AES instructions for AESCrypt.
Reviewed-by: twisti, kvn, roland
Contributed-by: tom.deneau@amd.com


# 3729:d804e148cff8 12-Oct-2012 kvn

Merge


# 3724:8e47bac5643a 09-Oct-2012 roland

7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by: kvn, twisti


# 3710:bacdc1d5c21c 04-Oct-2012 coleenp

6884973: java -XX:Atomics=2 crashes
Summary: Remove buggy experimental option
Reviewed-by: acorn, coleenp
Contributed-by: harold.seigel@oracle.com


# 3707:d8ce2825b193 29-Sep-2012 coleenp

8000213: NPG: Should have renamed arrayKlass and typeArrayKlass
Summary: Capitalize these metadata types (and objArrayKlass)
Reviewed-by: stefank, twisti, kvn


# 3668:137868b7aa6f 17-Sep-2012 kvn

7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect
Summary: Save whole XMM/YMM registers in safepoint interrupt handler.
Reviewed-by: roland, twisti


# 3602:da91efe96a93 01-Sep-2012 coleenp

6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>


# 3566:006050192a5a 20-Aug-2012 kvn

6340864: Implement vectorization optimizations in hotspot-server
Summary: Added asm encoding and mach nodes for vector arithmetic instructions on x86.
Reviewed-by: roland


# 3534:1d7922586cf6 24-Jul-2012 twisti

7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI
Summary: remove assembly code for JDK 7 chained method handles
Reviewed-by: jrose, twisti, kvn, mhaupt
Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>


# 3494:2c368ea3e844 16-Jul-2012 kvn

7181494: cleanup avx and vectors code
Summary: renamed mach nodes which use scalar AVX instructions, added integer vectors shuffling instructions
Reviewed-by: twisti


# 3447:8c92982cbbc4 15-Jun-2012 kvn

7119644: Increase superword's vector size up to 256 bits
Summary: Increase vector size up to 256-bits for YMM AVX registers on x86.
Reviewed-by: never, twisti, roland


# 3409:e7715c222897 12-Jun-2012 roland

7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86
Summary: increase precision on x86 for the steps of the computation of exp and pow.
Reviewed-by: kvn


# 3355:e2961d14584b 21-May-2012 roland

7169934: pow(x,y) or x64 computes incorrect result when x<0 and y is an odd integer
Summary: bad test for parity of y in pow(x,y) (c1, interpreter)
Reviewed-by: kvn, twisti


# 3352:6759698e3140 15-May-2012 roland

7133857: exp() and pow() should use the x87 ISA on x86
Summary: use x87 instructions to implement exp() and pow() in interpreter/c1/c2.
Reviewed-by: kvn, never, twisti


# 3252:fd09f2d8283e 02-Apr-2012 never

7157141: crash in 64 bit with corrupted oops
Reviewed-by: kvn, iveresov


# 3139:fd8114661503 15-Feb-2012 kvn

7125136: SIGILL on linux amd64 in gc/ArrayJuggle/Juggle29
Summary: For C2 moved saving EBP after ESP adjustment. For C1 generated 5 byte nop instruction first if needed.
Reviewed-by: never, twisti, azeemj


# 2964:1cb50d7a9d95 05-Jan-2012 iveresov

7119294: Two command line options cause JVM to crash
Summary: Setup thread register in MacroAssembler::incr_allocated_bytes() on x64
Reviewed-by: kvn


# 2962:8940fd98d540 29-Dec-2011 kvn

Merge


# 2960:40c2484c09e1 23-Dec-2011 kvn

7110832: ctw/.../org_apache_avalon_composition_util_StringHelper crashes the VM
Summary: Distance is too large for one short branch in string_indexofC8().
Reviewed-by: iveresov


# 2956:069ab3f976d3 07-Dec-2011 stefank

7118863: Move sizeof(klassOopDesc) into the *Klass::*_offset_in_bytes() functions
Summary: Moved sizeof(klassOopDesc), changed the return type to ByteSize and removed the _in_bytes suffix.
Reviewed-by: never, bdelsart, coleenp, jrose


# 2955:65149e74c706 20-Dec-2011 kvn

7121648: Use 3-operands SIMD instructions on x86 with AVX
Summary: Use 3-operands SIMD instructions in C2 generated code for machines with AVX.
Reviewed-by: never


# 2953:127b3692c168 14-Dec-2011 kvn

7116452: Add support for AVX instructions
Summary: Added support for AVX extension to the x86 instruction set.
Reviewed-by: never


# 2906:96ce4c27112f 19-Dec-2011 coleenp

7122939: TraceBytecodes broken with UseCompressedOops
Summary: Disable verify_heapbase on sparc if TraceBytecodes because the latter uses r12 as a temp register
Reviewed-by: coleenp, phh
Contributed-by: Volker Simonis <volker.simonis@gmail.com>


# 2879:59bc0d4d9ea3 18-Nov-2011 never

7110489: C1: 64-bit tiered with ForceUnreachable: assert(reachable(src)) failed: Address should be reachable
Reviewed-by: kvn, iveresov, twisti


# 2702:e6b1331a51d2 10-Sep-2011 never

7086585: make Java field injection more flexible
Reviewed-by: jrose, twisti, kvn, coleenp


# 2636:a594deb1d6dc 22-Aug-2011 kvn

7081926: assert(VM_Version::supports_sse2()) failed: must support
Summary: fix assert, prefetchnta is supported since SSE not SSE2.
Reviewed-by: never


# 2618:381bf869f784 17-Aug-2011 twisti

7079626: x64 emits unnecessary REX prefix
Reviewed-by: kvn, iveresov, never


# 2617:1af104d6cf99 16-Aug-2011 kvn

7079329: Adjust allocation prefetching for T4
Summary: on T4 2 BIS instructions should be issued to prefetch 64 bytes
Reviewed-by: iveresov, phh, twisti


# 2614:95134e034042 11-Aug-2011 kvn

7063629: use cbcond in C2 generated code on T4
Summary: Use new short branch instruction in C2 generated code.
Reviewed-by: never


# 2545:de6a837d75cf 21-Jun-2011 never

7056380: VM crashes with SIGSEGV in compiled code
Summary: code was using andq reg, imm instead of addq addr, imm
Reviewed-by: kvn, jrose, twisti


# 2517:5cf771a79037 08-Jun-2011 jrose

7047697: MethodHandle.invokeExact call for wrong method causes VM failure if run with -Xcomp
Reviewed-by: never, twisti


# 2515:cba7b5c2d53f 03-Jun-2011 never

7045514: SPARC assembly code for JSR 292 ricochet frames
Reviewed-by: kvn, jrose


# 2433:2e038ad0c1d0 02-May-2011 never

7009361: JSR 292 Invalid value on stack on solaris-sparc with -Xcomp
Reviewed-by: kvn, twisti


# 2358:732454aaf5cb 20-Apr-2011 jmasa

Merge


# 2352:5d046bf49ce7 14-Apr-2011 johnc

Merge


# 2349:92add02409c9 08-Apr-2011 jmasa

Merge


# 2346:e1162778c1c8 07-Apr-2011 johnc

7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error
Summary: 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


# 2326:15c9a0e16269 11-Apr-2011 kvn

7035713: 3DNow Prefetch Instruction Support
Summary: The upcoming processors from AMD are the first that support 3dnow prefetch without supporting the 3dnow instruction set.
Reviewed-by: kvn
Contributed-by: tom.deneau@amd.com


# 2311:d86923d96dca 08-Apr-2011 iveresov

7034967: C1: assert(false) failed: error (assembler_sparc.cpp:2043)
Summary: Fix -XX:+VerifyOops
Reviewed-by: kvn, never


# 2262:09f96c3ff1ad 31-Mar-2011 twisti

7032388: guarantee(VM_Version::supports_cmov()) failed: illegal instruction on i586 after 6919934
Summary: 6919934 added some unguarded cmov instructions which hit a guarantee on older hardware.
Reviewed-by: never, iveresov, kvn, phh


# 2251:b40d4fa697bf 27-Mar-2011 iveresov

6964776: c2 should ensure the polling page is reachable on 64 bit
Summary: 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


# 2204:8033953d67ff 11-Mar-2011 jrose

7012648: move JSR 292 to package java.lang.invoke and adjust names
Summary: package and class renaming only; delete unused methods and classes
Reviewed-by: twisti


# 2167:41d4973cf100 26-Feb-2011 kvn

6942326: x86 code in string_indexof() could read beyond reserved heap space
Summary: 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


# 2134:6bbaedb03534 09-Feb-2011 never

7016474: string compare intrinsic improvements
Reviewed-by: kvn


# 2130:28bf941f445e 14-Feb-2011 twisti

7018378: JSR 292: _bound_int_mh produces wrong result on 64-bit SPARC
Reviewed-by: kvn


# 1988:b1a2afa37ec4 07-Jan-2011 phh

7003271: Hotspot should track cumulative Java heap bytes allocated on a per-thread basis
Summary: 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


# 1921:4de5f4101cfd 08-Dec-2010 iveresov

Merge


# 1915:2f644f85485d 03-Dec-2010 twisti

6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by: never, kvn


# 1883:0fc262af204f 29-Nov-2010 coleenp

6780143: hs203t003 hits SIGSEGV/EXCEPTION_ACCESS_VIOLATION with -XX:+UseCompressedOops
Summary: 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


# 1879:f95d63e2154a 23-Nov-2010 stefank

6989984: Use standard include model for Hospot
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions.
Reviewed-by: coleenp, kvn, kamg


# 1840:2fe998383789 06-Nov-2010 kvn

6997311: SIGFPE in new long division asm code
Summary: use unsigned DIV instruction
Reviewed-by: never


# 1834:ae065c367d93 02-Nov-2010 kvn

6987135: Performance regression on Intel platform with 32-bits edition between 6u13 and 6u14.
Summary: Use hardware DIV instruction for long division by constant when it is faster than code with multiply.
Reviewed-by: never


# 1766:d55217dc206f 11-Oct-2010 twisti

6829194: JSR 292 needs to support compressed oops
Reviewed-by: kvn, jrose


# 1713:d257356e35f0 14-Sep-2010 jrose

6939224: MethodHandle.invokeGeneric needs to perform the correct set of conversions
Reviewed-by: never


# 1683:d6f45b55c972 27-Aug-2010 never

4809552: Optimize Arrays.fill(...)
Reviewed-by: kvn


# 1610:36519c19beeb 10-Aug-2010 never

6975027: use of movptr to set length of array
Reviewed-by: kvn, iveresov


# 1604:66c5dadb4d61 30-Jul-2010 kvn

6973308: Missing zero length check before repne scas in check_klass_subtype_slow_path()
Summary: set Z = 0 (not equal) before repne_scan() to indicate that class was not found when RCX == 0.
Reviewed-by: never, phh


# 1503:02e771df338e 03-Jun-2010 kvn

6958254: -XX:+VerifyOops is broken on x86
Summary: save and restore r10 in verify_oop().
Reviewed-by: never


# 1499:e9ff18c4ace7 02-Jun-2010 jrose

Merge


# 1491:2d127394260e 27-May-2010 kvn

6916623: Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
Summary: Added new product ObjectAlignmentInBytes flag to control object alignment.
Reviewed-by: twisti, ysr, iveresov


# 1472:c18cbe5936b8 27-May-2010 trims

6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair


# 1433:df736661d0c8 11-May-2010 jrose

Merge


# 1426:2338d41fbd81 30-Apr-2010 twisti

6943304: remove tagged stack interpreter
Reviewed-by: coleenp, never, gbenson


# 1423:c640000b7cc1 29-Apr-2010 twisti

6829193: JSR 292 needs to support SPARC
Summary: There are unimplemented portions of the hotspot code for method handles and invokedynamic specific to SPARC.
Reviewed-by: kvn, never, jrose


# 1409:cff162798819 11-Oct-2009 jcoomes

6888953: some calls to function-like macros are missing semicolons
Reviewed-by: pbk, kvn


# 1369:0a43776437b6 08-Apr-2010 iveresov

6942223: c1 64 bit fixes
Summary: This fixes lir_cmp_l2i on x64 and sparc 64bit, and the debug info generation.
Reviewed-by: never


# 1302:2484f4d6a54e 17-Mar-2010 kvn

6935535: String.indexOf() returns incorrect result on x86 with SSE4.2
Summary: Added missing counter decrement when substring search restarted.
Reviewed-by: twisti


# 1108:85f13cdfbc1d 15-Dec-2009 twisti

6829192: JSR 292 needs to support 64-bit x86
Summary: changes for method handles and invokedynamic
Reviewed-by: kvn


# 1063:2f1ec89b9995 10-Nov-2009 cfang

Merge


# 1060:323bd24c6520 02-Nov-2009 roland

6769124: various 64-bit fixes for c1
Reviewed-by: never


# 1047:beb8f45ee9f0 29-Oct-2009 johnc

6889740: G1: OpenDS fails with "unhandled exception in compiled code"
Summary: 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


# 1016:d40f03b57795 14-Oct-2009 kvn

6890984: Comparison of 2 arrays could cause VM crash
Summary: Restore original null checks.
Reviewed-by: never, cfang


# 986:62001a362ce9 14-Sep-2009 kvn

6827605: new String intrinsics may prevent EA scalar replacement
6875866: Intrinsic for String.indexOf() is broken on x86 with SSE4.2
Summary: Modify String intrinsic methods to pass char[] pointers instead of string oops.
Reviewed-by: never


# 898:60fea60a6db5 30-Jul-2009 kvn

6864914: SPECjvm2008 produces invalid result with zero based Compressed Oops
Summary: Always use "lea" instruction for narrow oop decoding instead of "shift".
Reviewed-by: never


# 845:df6caf649ff7 14-Jul-2009 ysr

6700789: G1: Enable use of compressed oops with G1 heaps
Summary: Modifications to G1 so as to allow the use of compressed oops.
Reviewed-by: apetrusenko, coleenp, jmasa, kvn, never, phh, tonyp


# 775:93c14e5562c4 06-May-2009 twisti

6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
Summary: These methods can be instrinsified by using bit scan, bit test, and population count instructions.
Reviewed-by: kvn, never


# 710:e5b0439ef4ae 08-Apr-2009 jrose

6655638: dynamic languages need method handles
Summary: initial implementation, with known omissions (x86/64, sparc, compiler optim., c-oops, C++ interp.)
Reviewed-by: kvn, twisti, never


# 681:fbde8ec322d0 31-Mar-2009 cfang

6761600: Use sse 4.2 in intrinsics
Summary: Use SSE 4.2 in intrinsics for String.{compareTo/equals/indexOf} and Arrays.equals.
Reviewed-by: kvn, never, jrose


# 671:d0994e5bebce 26-Mar-2009 never

6822204: volatile fences should prefer lock:addl to actual mfence instructions
Reviewed-by: kvn, phh


# 665:c89f86385056 21-Mar-2009 jrose

6814659: separable cleanups and subroutines for 6655638
Summary: preparatory but separable changes for method handles
Reviewed-by: kvn, never


# 647:bd441136a5ce 19-Mar-2009 kvn

Merge


# 644:c517646eef23 13-Mar-2009 jrose

6813212: factor duplicated assembly code for general subclass check (for 6655638)
Summary: Code in interp_masm, stubGenerator, c1_LIRAssembler, and AD files moved into MacroAssembler.
Reviewed-by: kvn


# 643:c771b7f43bbf 13-Mar-2009 twisti

6378821: bitCount() should use POPC on SPARC processors and AMD+10h
Summary: bitCount() should use POPC on SPARC processors where POPC is implemented directly in hardware.
Reviewed-by: kvn, never


# 642:660978a2a31a 12-Mar-2009 kvn

6791178: Specialize for zero as the compressed oop vm heap base
Summary: Use zero based compressed oops if java heap is below 32gb and unscaled compressed oops if java heap is below 4gb.
Reviewed-by: never, twisti, jcoomes, coleenp


# 628:7bb995fbd3c0 12-Mar-2009 trims

Merge


# 624:337400e7a5dd 09-Mar-2009 twisti

6797305: Add LoadUB and LoadUI opcode class
Summary: Add a LoadUB (unsigned byte) and LoadUI (unsigned int) opcode class so we have these load optimizations in the first place and do not need to handle them in the matcher.
Reviewed-by: never, kvn


# 623:9adddb8c0fc8 06-Mar-2009 jrose

6812831: factor duplicated assembly code for megamorphic invokeinterface (for 6655638)
Summary: Code in vtableStubs and templateTable moved into MacroAssembler.
Reviewed-by: kvn


# 622:56aae7be60d4 04-Mar-2009 jrose

6812678: macro assembler needs delayed binding of a few constants (for 6655638)
Summary: minor assembler enhancements preparing for method handles
Reviewed-by: kvn


# 606:19962e74284f 01-Mar-2009 never

6811384: MacroAssembler::serialize_memory may touch next page on amd64
Reviewed-by: kvn, phh, twisti


# 579:0fbdb4381b99 09-Mar-2009 xdono

6814575: Update copyright year
Summary: Update copyright for files that have been modified in 2009, up to 03/09
Reviewed-by: katleman, tbell, ohair


# 520:52a431267315 13-Jan-2009 coleenp

6791168: Fix invalid code in bytecodeInterpreter that can cause gcc ICE
Summary: Fix compilation errors from latest gcc in CC_INTERP including offending missing void* cast.
Reviewed-by: xlu


# 512:db4caa99ef11 24-Dec-2008 xlu

6787106: Hotspot 32 bit build fails on platforms having different definitions for intptr_t & int32_t
Summary: Avoid casting between int32_t and intptr_t specifically for MasmAssembler::movptr in 32 bit platforms.
Reviewed-by: jrose, kvn


# 420:a1980da045cc 07-Nov-2008 kvn

6462850: generate biased locking code in C2 ideal graph
Summary: Inline biased locking code in C2 ideal graph during macro nodes expansion
Reviewed-by: never


# 405:2649e5276dd7 14-Oct-2008 kvn

6532536: Optimize arraycopy stubs for Intel cpus
Summary: Use SSE2 movdqu in arraycopy stubs on newest Intel's cpus
Reviewed-by: rasbold


# 362:f8199438385b 17-Sep-2008 apetrusenko

Merge


# 304:dc7f315e41f7 27-Aug-2008 never

5108146: Merge i486 and amd64 cpu directories
6459804: Want client (c1) compiler for x86_64 (amd64) for faster start-up
Reviewed-by: kvn