103 Commits

Author SHA1 Message Date
Vladimir Kozlov
9e0c61f822 6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
Use SSE4.2 and AVX2 instructions for encodeArray intrinsic.

Reviewed-by: roland
2013-01-22 15:34:16 -08:00
Vladimir Kozlov
38c81fb411 8005419: Improve intrinsics code performance on x86 by using AVX2
Use 256bit vpxor,vptest instructions in String.compareTo() and equals() intrinsics.

Reviewed-by: twisti
2013-01-08 11:30:51 -08:00
Morris Meyer
b3fe91a803 8004537: replace AbstractAssembler emit_long with emit_int32
Reviewed-by: jrose, kvn, twisti
2013-01-07 14:08:28 -08:00
Vladimir Kozlov
7b9133b99c 8005544: Use 256bit YMM registers in arraycopy stubs on x86
Use YMM registers in arraycopy and array_fill stubs.

Reviewed-by: roland, twisti
2013-01-03 16:30:47 -08:00
Vladimir Kozlov
cfcd28fd9d 8005522: use fast-string instructions on x86 for zeroing
Use 'rep stosb' instead of 'rep stosq' when fast-string operations are available.

Reviewed-by: twisti, roland
2013-01-03 15:09:55 -08:00
Morris Meyer
113e9ab39d 8004250: replace AbstractAssembler a_byte/a_long with emit_int8/emit_int32
Reviewed-by: jrose, kvn, twisti
2012-12-20 18:53:44 -08:00
Vladimir Kozlov
960d969ade 8004835: Improve AES intrinsics on x86
Enable AES intrinsics on non-AVX cpus, group together aes instructions in crypto stubs.

Reviewed-by: roland, twisti
2012-12-19 15:40:35 -08:00
Morris Meyer
52da261983 8004536: replace AbstractAssembler emit_word with emit_int16
Reviewed-by: jrose, kvn, twisti
2012-12-18 10:47:23 -08:00
Christian Thalinger
2c2c007448 8003240: x86: move MacroAssembler into separate file
Reviewed-by: kvn
2012-11-30 15:23:16 -08:00
Bharadwaj Yadavalli
a533392684 8003195: AbstractAssembler should not store code pointers but use the CodeSection directly
Reviewed-by: twisti, kvn
2012-11-30 11:44:05 -08:00
Tom Deneau
6d94ef1ee7 7184394: add intrinsics to use AES instructions
Use new x86 AES instructions for AESCrypt.

Reviewed-by: twisti, kvn, roland
2012-10-24 14:33:22 -07: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
Harold Seigel
284879b3fc 6884973: java -XX:Atomics=2 crashes
Remove buggy experimental option

Reviewed-by: acorn, coleenp
2012-10-04 08:43:14 -04: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
Vladimir Kozlov
811c047ec1 7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect
Save whole XMM/YMM registers in safepoint interrupt handler.

Reviewed-by: roland, twisti
2012-09-17 19:39:07 -07: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
Vladimir Kozlov
e3c3c8527e 6340864: Implement vectorization optimizations in hotspot-server
Added asm encoding and mach nodes for vector arithmetic instructions on x86.

Reviewed-by: roland
2012-08-20 09:07:21 -07: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
Vladimir Kozlov
15f4203b0f 7181494: cleanup avx and vectors code
Renamed mach nodes which use scalar AVX instructions, added integer vectors shuffling instructions

Reviewed-by: twisti
2012-07-16 17:10:22 -07:00
Vladimir Kozlov
d1191bb4f4 7119644: Increase superword's vector size up to 256 bits
Increase vector size up to 256-bits for YMM AVX registers on x86.

Reviewed-by: never, twisti, roland
2012-06-15 01:25:19 -07:00
Roland Westrelin
bd09c5ac38 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86
Increase precision on x86 for the steps of the computation of exp and pow.

Reviewed-by: kvn
2012-06-12 10:02:36 +02:00
Roland Westrelin
e975779565 7169934: pow(x,y) or x64 computes incorrect result when x<0 and y is an odd integer
Bad test for parity of y in pow(x,y) (c1, interpreter)

Reviewed-by: kvn, twisti
2012-05-21 09:46:02 +02: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
Tom Rodriguez
8fc6b2ef2a 7157141: crash in 64 bit with corrupted oops
Reviewed-by: kvn, iveresov
2012-04-02 16:05:56 -07:00
Vladimir Kozlov
539616f85a 7125136: SIGILL on linux amd64 in gc/ArrayJuggle/Juggle29
For C2 moved saving EBP after ESP adjustment. For C1 generated 5 byte nop instruction first if needed.

Reviewed-by: never, twisti, azeemj
2012-02-15 21:37:49 -08:00
Igor Veresov
72f3f7db44 7119294: Two command line options cause JVM to crash
Setup thread register in MacroAssembler::incr_allocated_bytes() on x64

Reviewed-by: kvn
2012-01-05 17:25:58 -08:00
Vladimir Kozlov
b6828ac542 Merge 2011-12-29 11:37:50 -08:00
Vladimir Kozlov
6c38bc48ca 7110832: ctw/.../org_apache_avalon_composition_util_StringHelper crashes the VM
Distance is too large for one short branch in string_indexofC8().

Reviewed-by: iveresov
2011-12-23 15:24:36 -08:00
Volker Simonis
f49894d78c 7122939: TraceBytecodes broken with UseCompressedOops
Disable verify_heapbase on sparc if TraceBytecodes because the latter uses r12 as a temp register

Reviewed-by: coleenp, phh
2011-12-19 15:34:09 -05: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
Vladimir Kozlov
dc542c9909 7121648: Use 3-operands SIMD instructions on x86 with AVX
Use 3-operands SIMD instructions in C2 generated code for machines with AVX.

Reviewed-by: never
2011-12-20 00:55:02 -08:00
Vladimir Kozlov
b7f5d60a7e 7116452: Add support for AVX instructions
Added support for AVX extension to the x86 instruction set.

Reviewed-by: never
2011-12-14 14:54:38 -08:00
Tom Rodriguez
4511ca18de 7110489: C1: 64-bit tiered with ForceUnreachable: assert(reachable(src)) failed: Address should be reachable
Reviewed-by: kvn, iveresov, twisti
2011-11-18 10:29:27 -08:00
Tom Rodriguez
e39ba1a5fe 7086585: make Java field injection more flexible
Reviewed-by: jrose, twisti, kvn, coleenp
2011-09-10 17:29:02 -07:00
Vladimir Kozlov
85b4875e2e 7081926: assert(VM_Version::supports_sse2()) failed: must support
Fix assert, prefetchnta is supported since SSE not SSE2.

Reviewed-by: never
2011-08-22 11:00:39 -07:00
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