hotspot/src/cpu/x86/vm/x86_32.ad
changeset 35540 e001ad24dcdb
parent 35146 9ebfec283f56
child 35549 3415401a6b6e
equal deleted inserted replaced
35539:9a687b686976 35540:e001ad24dcdb
  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