mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-25 22:04:51 +02:00
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
This commit is contained in:
parent
eb4a860bc3
commit
b305cf722e
26 changed files with 783 additions and 279 deletions
|
@ -2949,6 +2949,8 @@ GraphBuilder::GraphBuilder(Compilation* compilation, IRScope* scope)
|
|||
case vmIntrinsics::_dtan : // fall through
|
||||
case vmIntrinsics::_dlog : // fall through
|
||||
case vmIntrinsics::_dlog10 : // fall through
|
||||
case vmIntrinsics::_dexp : // fall through
|
||||
case vmIntrinsics::_dpow : // fall through
|
||||
{
|
||||
// Compiles where the root method is an intrinsic need a special
|
||||
// compilation environment because the bytecodes for the method
|
||||
|
@ -2969,6 +2971,9 @@ GraphBuilder::GraphBuilder(Compilation* compilation, IRScope* scope)
|
|||
_state = start_block->state()->copy_for_parsing();
|
||||
_last = start_block;
|
||||
load_local(doubleType, 0);
|
||||
if (scope->method()->intrinsic_id() == vmIntrinsics::_dpow) {
|
||||
load_local(doubleType, 2);
|
||||
}
|
||||
|
||||
// Emit the intrinsic node.
|
||||
bool result = try_inline_intrinsics(scope->method());
|
||||
|
@ -3182,6 +3187,8 @@ bool GraphBuilder::try_inline_intrinsics(ciMethod* callee) {
|
|||
case vmIntrinsics::_dtan : // fall through
|
||||
case vmIntrinsics::_dlog : // fall through
|
||||
case vmIntrinsics::_dlog10 : // fall through
|
||||
case vmIntrinsics::_dexp : // fall through
|
||||
case vmIntrinsics::_dpow : // fall through
|
||||
if (!InlineMathNatives) return false;
|
||||
cantrap = false;
|
||||
preserves_state = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue