hotspot/src/cpu/x86/vm/x86_64.ad
changeset 33089 f4e956ed8b43
parent 33082 c3e302e8e429
child 33160 c59f1676d27e
equal deleted inserted replaced
33088:34fe49ecee13 33089:f4e956ed8b43
  9896     __ addptr(rsp, 8);
  9896     __ addptr(rsp, 8);
  9897   %}
  9897   %}
  9898   ins_pipe( pipe_slow );
  9898   ins_pipe( pipe_slow );
  9899 %}
  9899 %}
  9900 
  9900 
  9901 instruct expD_reg(regD dst, regD src, rax_RegI rax, rdx_RegI rdx, rcx_RegI rcx, rFlagsReg cr) %{
       
  9902   match(Set dst (ExpD src));
       
  9903   effect(KILL rax, KILL rcx, KILL rdx, KILL cr);
       
  9904   format %{ "fast_exp $dst -> $src  // KILL $rax, $rcx, $rdx" %}
       
  9905   ins_encode %{
       
  9906     __ subptr(rsp, 8);
       
  9907     __ movdbl(Address(rsp, 0), $src$$XMMRegister);
       
  9908     __ fld_d(Address(rsp, 0));
       
  9909     __ fast_exp();
       
  9910     __ fstp_d(Address(rsp, 0));
       
  9911     __ movdbl($dst$$XMMRegister, Address(rsp, 0));
       
  9912     __ addptr(rsp, 8);
       
  9913   %}
       
  9914   ins_pipe( pipe_slow );
       
  9915 %}
       
  9916 
       
  9917 //----------Arithmetic Conversion Instructions---------------------------------
  9901 //----------Arithmetic Conversion Instructions---------------------------------
  9918 
  9902 
  9919 instruct roundFloat_nop(regF dst)
  9903 instruct roundFloat_nop(regF dst)
  9920 %{
  9904 %{
  9921   match(Set dst (RoundFloat dst));
  9905   match(Set dst (RoundFloat dst));