mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +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
|
@ -2136,11 +2136,23 @@ class StubGenerator: public StubCodeGenerator {
|
|||
__ trigfunc('t');
|
||||
__ ret(0);
|
||||
}
|
||||
{
|
||||
StubCodeMark mark(this, "StubRoutines", "exp");
|
||||
StubRoutines::_intrinsic_exp = (double (*)(double)) __ pc();
|
||||
|
||||
// The intrinsic version of these seem to return the same value as
|
||||
// the strict version.
|
||||
StubRoutines::_intrinsic_exp = SharedRuntime::dexp;
|
||||
StubRoutines::_intrinsic_pow = SharedRuntime::dpow;
|
||||
__ fld_d(Address(rsp, 4));
|
||||
__ exp_with_fallback(0);
|
||||
__ ret(0);
|
||||
}
|
||||
{
|
||||
StubCodeMark mark(this, "StubRoutines", "pow");
|
||||
StubRoutines::_intrinsic_pow = (double (*)(double,double)) __ pc();
|
||||
|
||||
__ fld_d(Address(rsp, 12));
|
||||
__ fld_d(Address(rsp, 4));
|
||||
__ pow_with_fallback(0);
|
||||
__ ret(0);
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue