hotspot/src/cpu/x86/vm/macroAssembler_x86.hpp
changeset 35146 9ebfec283f56
parent 35135 dd2ce9021031
child 35232 76aed99c0ddd
child 35540 e001ad24dcdb
equal deleted inserted replaced
35145:a4ffa2fa7f4d 35146:9ebfec283f56
   916                 Register rax, Register rcx, Register rdx, Register tmp);
   916                 Register rax, Register rcx, Register rdx, Register tmp);
   917 
   917 
   918   void fast_log(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
   918   void fast_log(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
   919                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
   919                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
   920                 Register rax, Register rcx, Register rdx, Register tmp1 LP64_ONLY(COMMA Register tmp2));
   920                 Register rax, Register rcx, Register rdx, Register tmp1 LP64_ONLY(COMMA Register tmp2));
       
   921   void fast_pow(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4,
       
   922                 XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register rax, Register rcx,
       
   923                 Register rdx NOT_LP64(COMMA  Register tmp) LP64_ONLY(COMMA  Register tmp1)
       
   924                 LP64_ONLY(COMMA  Register tmp2) LP64_ONLY(COMMA  Register tmp3) LP64_ONLY(COMMA  Register tmp4));
   921 
   925 
   922   void increase_precision();
   926   void increase_precision();
   923   void restore_precision();
   927   void restore_precision();
   924 
   928 
   925   // computes pow(x,y). Fallback to runtime call included.
       
   926   void pow_with_fallback(int num_fpu_regs_in_use) { pow_or_exp(num_fpu_regs_in_use); }
       
   927 
       
   928 private:
   929 private:
   929 
   930 
   930   // call runtime as a fallback for trig functions and pow/exp.
   931   // call runtime as a fallback for trig functions and pow/exp.
   931   void fp_runtime_fallback(address runtime_entry, int nb_args, int num_fpu_regs_in_use);
   932   void fp_runtime_fallback(address runtime_entry, int nb_args, int num_fpu_regs_in_use);
   932 
       
   933   // computes 2^(Ylog2X); Ylog2X in ST(0)
       
   934   void pow_exp_core_encoding();
       
   935 
       
   936   // computes pow(x,y) or exp(x). Fallback to runtime call included.
       
   937   void pow_or_exp(int num_fpu_regs_in_use);
       
   938 
   933 
   939   // these are private because users should be doing movflt/movdbl
   934   // these are private because users should be doing movflt/movdbl
   940 
   935 
   941   void movss(Address dst, XMMRegister src)     { Assembler::movss(dst, src); }
   936   void movss(Address dst, XMMRegister src)     { Assembler::movss(dst, src); }
   942   void movss(XMMRegister dst, XMMRegister src) { Assembler::movss(dst, src); }
   937   void movss(XMMRegister dst, XMMRegister src) { Assembler::movss(dst, src); }