162 Commits

Author SHA1 Message Date
John R Rose
4eb75c2df3 6939134: JSR 292 adjustments to method handle invocation
Split MethodHandle.invoke into invokeExact and invokeGeneric; also clean up JVM-to-Java interfaces

Reviewed-by: twisti
2010-05-01 02:42:18 -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
cb911cf098 6946892: c1 shouldn't sign-extend to upper 32bits on x64
C1 does sign-extension when it loads ints and shorts from memory to 64-bit registers. This causes problems for c2 because it relies on the fact the int passed in a 64-bit register is zero-extended.

Reviewed-by: never
2010-04-27 11:19:12 -07:00
Hiroshi Yamauchi
cd48f31efe 6946040: add intrinsic for short and char reverseBytes
Reviewed-by: never, twisti
2010-04-26 11:27:21 -07:00
Tom Rodriguez
98ee92e724 6939930: exception unwind changes in 6919934 hurts compilation speed
Reviewed-by: twisti
2010-04-15 18:14:49 -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
Christian Thalinger
4d0664b427 6941529: SharedRuntime::raw_exception_handler_for_return_address must reset thread MethodHandle flag
During testing a bug was hit when an exception returned to the interpreter and the SP was wrong.

Reviewed-by: kvn, never
2010-04-08 10:55:40 +02:00
Vladimir Kozlov
5f8098a402 6940701: Don't align loops in stubs for Niagara sparc
Don't align loops in stubs for Niagara sparc since NOPs are expensive.

Reviewed-by: twisti, never
2010-04-07 09:37:47 -07:00
Karen Kinnear
7aaaad73cf Merge 2010-03-26 11:10:26 -04:00
Christian Thalinger
1270c6c005 6932091: JSR 292 x86 code cleanup
Some code cleanups found during the JSR 292 SPARC port.

Reviewed-by: kvn, never
2010-03-18 09:56:51 +01: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
ebc298d208 6934966: JSR 292 add C1 logic for saved SP over MethodHandle calls
The logic for x86 C1 to save the SP over MH calls is pretty straight forward but SPARC handles that differently.

Reviewed-by: never, jrose
2010-03-17 10:22:41 +01:00
Christian Thalinger
82e9e2b4af 6934494: JSR 292 MethodHandles adapters should be generated into their own CodeBlob
Passing a null pointer to an InvokeDynamic function call should lead to a NullPointerException.

Reviewed-by: kvn, never
2010-03-16 11:52:17 +01:00
Roland Westrelin
7dcf59914e 6932496: c1: deoptimization of jsr subroutine fails on sparcv9
Store jsr ret bci as intptr constant in c1 debug info

Reviewed-by: never
2010-03-05 13:58:34 +01:00
Christian Thalinger
ffec4c00c4 6919934: JSR 292 needs to support x86 C1
This implements JSR 292 support for C1 x86.

Reviewed-by: never, jrose, kvn
2010-03-09 20:16:19 +01:00
Christian Thalinger
94a808f51d 6932536: JSR 292 modified JDK MethodHandlesTest fails on x86_64
A modified MethodHandlesTest revealed two bugs on x86_64.

Reviewed-by: never, jrose
2010-03-08 04:46:30 -08:00
Christian Thalinger
d1a6f819e6 6928839: JSR 292 typo in x86 _adapter_check_cast
There is a small typo in methodHandles_x86.cpp.

Reviewed-by: kvn
2010-02-23 17:46:29 +01:00
Vladimir Kozlov
fa2d360cd5 6910664: C2: java/util/Arrays/Sorting.java fails with DeoptimizeALot flag
Matcher::float_in_double should be true only when FPU is used for floats.

Reviewed-by: never, twisti
2010-02-19 10:04:16 -08:00
Vladimir Kozlov
9110d86267 Merge 2010-02-12 15:27:36 -08:00
Vladimir Kozlov
d4437819bd 6925249: assert(last_sp < (intptr_t*) interpreter_frame_monitor_begin(),"bad tos")
Fix assert since top deoptimized frame has last_sp == interpreter_frame_monitor_begin if there are no expressions.

Reviewed-by: twisti
2010-02-12 08:54:13 -08:00
Neo Jia
7d7887d46c 6587322: dtrace probe object__alloc doesn't fire in some situations on amd64
Fix misplaced probe point

Reviewed-by: rasbold, phh
2010-02-08 13:49:03 -05:00
Vladimir Kozlov
2fd8d35905 6923002: assert(false,"this call site should not be polymorphic")
Clear the total count when a receiver information is cleared.

Reviewed-by: never, jrose
2010-02-07 12:15:06 -08:00
Andrei Pangin
134e70e53b Merge 2010-02-04 15:50:59 -08:00
Christian Thalinger
82ce2c602b Merge 2010-02-04 03:34:05 -08:00
Hiroshi Yamauchi
688398edef 6921969: optimize 64 long multiply for case with high bits zero
Reviewed-by: never, twisti, kvn, rasbold
2010-02-03 15:56:37 -08:00
Vladimir Kozlov
0c27c5537e 6614597: Performance variability in jvm2008 xml.validation
Fix incorrect marking of methods as not compilable.

Reviewed-by: never
2010-02-01 16:49:49 -08:00
Tom Deneau
f23b68b367 6902182: 4/4 Starting with jdwp agent should not incur performance penalty
Rename can_post_exceptions support to can_post_on_exceptions. Add support for should_post_on_exceptions flag to permit per JavaThread optimizations.

Reviewed-by: never, kvn, dcubed
2010-02-01 17:35:05 -07:00
Christian Thalinger
918c7a2e33 6921352: JSR 292 needs its own deopt handler
We need to introduce a new MH deopt handler so we can easily determine if the deopt happened at a MH call site or not.

Reviewed-by: never, jrose
2010-02-01 19:29:46 +01:00
Christian Thalinger
9aa675b7e6 6921339: backout 6917766
Reviewed-by: mr
2010-01-29 08:33:24 -08:00
Christian Thalinger
fbc43afae6 6917766: JSR 292 needs its own deopt handler
We need to introduce a new MH deopt handler so we can easily determine if the deopt happened at a MH call site or not.

Reviewed-by: never, jrose
2010-01-29 12:13:05 +01:00
Y. Srinivas Ramakrishna
679f958f72 Merge 2010-01-27 22:38:37 -08:00
Andrey Petrusenko
35324b7e7d 6918006: G1: spill space must be reserved on the stack for barrier calls on Windows x64
Stub code generated to call G1 barriers does not allocate spill space on the stack as required by Windows x64 ABI. The fix is to use more ABI-friendly call_VM_leaf().

Reviewed-by: iveresov, never, kvn
2010-01-21 18:51:10 -08:00
Tom Rodriguez
bac125984c 6911204: generated adapters with large signatures can fill up the code cache
Reviewed-by: kvn, jrose
2010-01-20 22:10:33 -08:00
Tom Rodriguez
72d0f638c7 6849984: Value methods for platform dependent math functions constant fold incorrectly
Reviewed-by: kvn, twisti
2010-01-15 11:53:33 -08:00
Christian Thalinger
375527d84e 6829187: compiler optimizations required for JSR 292
C2 implementation for invokedynamic support.

Reviewed-by: kvn, never
2010-01-05 13:05:58 +01:00
Christian Thalinger
caf28727eb 6893081: method handle & invokedynamic code needs additional cleanup (post 6815692, 6858164)
During the work for 6829187 we have fixed a number of basic bugs which are logically grouped with 6815692 and 6858164 but which must be reviewed and pushed separately.

Reviewed-by: kvn, never
2010-01-04 18:38:08 +01:00
Christian Thalinger
3a896a1408 6894206: JVM needs a way to traverse method handle structures
We need a way to walk chained method handles in the JVM to call the right methods and to generate required bytecode adapters for the compilers.

Reviewed-by: kvn
2010-01-04 15:52:40 +01: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
Keith McGuigan
01b706e9f9 Merge 2009-11-11 09:13:12 -05: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
Xiaobin Lu
f5e722511a Merge 2009-10-30 17:24:14 -07:00
John R Rose
903247cf85 6858164: invokedynamic code needs some cleanup (post-6655638)
Fix several crashers, remove needless paths for boxed-style bootstrap method call, refactor & simplify APIs for rewriter constantPoolOop, remove sun.dyn.CallSiteImpl

Reviewed-by: kvn
2009-10-30 16:22:59 -07:00
Antonios Printezis
56b1d0c435 Merge 2009-10-30 13:31:11 -04: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
Paul Hohensee
2f7d60fa36 6887571: Increase default heap config sizes
Apply modification of existing server heap size ergo to all collectors except CMS.

Reviewed-by: jmasa, ysr, xlu
2009-10-28 16:25:51 -04:00
John R Rose
2134a92922 6815692: method handle code needs some cleanup (post-6655638)
Correctly raise exceptions, support safe bitwise "raw" conversions, fix bugs revealed by VerifyMethodHandles, remove dead code, improve debugging support

Reviewed-by: never, twisti
2009-10-17 19:51:05 -07:00
Changpeng Fang
35ca20c546 Merge 2009-10-16 14:08:44 -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