< prev index next >
src/cpu/x86/vm/x86_32.ad
Print this page
*** 9905,9943 ****
__ addptr(rsp, 8);
%}
ins_pipe( pipe_slow );
%}
-
- instruct expDPR_reg(regDPR1 dpr1, eAXRegI rax, eDXRegI rdx, eCXRegI rcx, eFlagsReg cr) %{
- predicate (UseSSE<=1);
- match(Set dpr1 (ExpD dpr1));
- effect(KILL rax, KILL rcx, KILL rdx, KILL cr);
- format %{ "fast_exp $dpr1 -> $dpr1 // KILL $rax, $rcx, $rdx" %}
- ins_encode %{
- __ fast_exp();
- %}
- ins_pipe( pipe_slow );
- %}
-
- instruct expD_reg(regD dst, regD src, eAXRegI rax, eDXRegI rdx, eCXRegI rcx, eFlagsReg cr) %{
- predicate (UseSSE>=2);
- match(Set dst (ExpD src));
- effect(KILL rax, KILL rcx, KILL rdx, KILL cr);
- format %{ "fast_exp $dst -> $src // KILL $rax, $rcx, $rdx" %}
- ins_encode %{
- __ subptr(rsp, 8);
- __ movdbl(Address(rsp, 0), $src$$XMMRegister);
- __ fld_d(Address(rsp, 0));
- __ fast_exp();
- __ fstp_d(Address(rsp, 0));
- __ movdbl($dst$$XMMRegister, Address(rsp, 0));
- __ addptr(rsp, 8);
- %}
- ins_pipe( pipe_slow );
- %}
-
instruct log10DPR_reg(regDPR1 dst, regDPR1 src) %{
predicate (UseSSE<=1);
// The source Double operand on FPU stack
match(Set dst (Log10D src));
// fldlg2 ; push log_10(2) on the FPU stack; full 80-bit number
--- 9905,9914 ----
< prev index next >