9789 ins_cost(250); |
9789 ins_cost(250); |
9790 ins_encode( Push_ModD_encoding(src0, src1), emitModDPR(), Push_ResultD(dst), PopFPU); |
9790 ins_encode( Push_ModD_encoding(src0, src1), emitModDPR(), Push_ResultD(dst), PopFPU); |
9791 ins_pipe( pipe_slow ); |
9791 ins_pipe( pipe_slow ); |
9792 %} |
9792 %} |
9793 |
9793 |
9794 instruct sinDPR_reg(regDPR1 dst, regDPR1 src) %{ |
|
9795 predicate (UseSSE<=1); |
|
9796 match(Set dst (SinD src)); |
|
9797 ins_cost(1800); |
|
9798 format %{ "DSIN $dst" %} |
|
9799 opcode(0xD9, 0xFE); |
|
9800 ins_encode( OpcP, OpcS ); |
|
9801 ins_pipe( pipe_slow ); |
|
9802 %} |
|
9803 |
|
9804 instruct sinD_reg(regD dst, eFlagsReg cr) %{ |
|
9805 predicate (UseSSE>=2); |
|
9806 match(Set dst (SinD dst)); |
|
9807 effect(KILL cr); // Push_{Src|Result}D() uses "{SUB|ADD} ESP,8" |
|
9808 ins_cost(1800); |
|
9809 format %{ "DSIN $dst" %} |
|
9810 opcode(0xD9, 0xFE); |
|
9811 ins_encode( Push_SrcD(dst), OpcP, OpcS, Push_ResultD(dst) ); |
|
9812 ins_pipe( pipe_slow ); |
|
9813 %} |
|
9814 |
|
9815 instruct cosDPR_reg(regDPR1 dst, regDPR1 src) %{ |
|
9816 predicate (UseSSE<=1); |
|
9817 match(Set dst (CosD src)); |
|
9818 ins_cost(1800); |
|
9819 format %{ "DCOS $dst" %} |
|
9820 opcode(0xD9, 0xFF); |
|
9821 ins_encode( OpcP, OpcS ); |
|
9822 ins_pipe( pipe_slow ); |
|
9823 %} |
|
9824 |
|
9825 instruct cosD_reg(regD dst, eFlagsReg cr) %{ |
|
9826 predicate (UseSSE>=2); |
|
9827 match(Set dst (CosD dst)); |
|
9828 effect(KILL cr); // Push_{Src|Result}D() uses "{SUB|ADD} ESP,8" |
|
9829 ins_cost(1800); |
|
9830 format %{ "DCOS $dst" %} |
|
9831 opcode(0xD9, 0xFF); |
|
9832 ins_encode( Push_SrcD(dst), OpcP, OpcS, Push_ResultD(dst) ); |
|
9833 ins_pipe( pipe_slow ); |
|
9834 %} |
|
9835 |
|
9836 instruct tanDPR_reg(regDPR1 dst, regDPR1 src) %{ |
9794 instruct tanDPR_reg(regDPR1 dst, regDPR1 src) %{ |
9837 predicate (UseSSE<=1); |
9795 predicate (UseSSE<=1); |
9838 match(Set dst(TanD src)); |
9796 match(Set dst(TanD src)); |
9839 format %{ "DTAN $dst" %} |
9797 format %{ "DTAN $dst" %} |
9840 ins_encode( Opcode(0xD9), Opcode(0xF2), // fptan |
9798 ins_encode( Opcode(0xD9), Opcode(0xF2), // fptan |