< prev index next >

src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page

        

*** 905,933 **** // compute pow(x,y) and exp(x) with x86 instructions. Don't cover // all corner cases and may result in NaN and require fallback to a // runtime call. void fast_pow(); ! void fast_exp(); void increase_precision(); void restore_precision(); - // computes exp(x). Fallback to runtime call included. - void exp_with_fallback(int num_fpu_regs_in_use) { pow_or_exp(true, num_fpu_regs_in_use); } // computes pow(x,y). Fallback to runtime call included. ! void pow_with_fallback(int num_fpu_regs_in_use) { pow_or_exp(false, num_fpu_regs_in_use); } private: // call runtime as a fallback for trig functions and pow/exp. void fp_runtime_fallback(address runtime_entry, int nb_args, int num_fpu_regs_in_use); // computes 2^(Ylog2X); Ylog2X in ST(0) void pow_exp_core_encoding(); // computes pow(x,y) or exp(x). Fallback to runtime call included. ! void pow_or_exp(bool is_exp, int num_fpu_regs_in_use); // these are private because users should be doing movflt/movdbl void movss(Address dst, XMMRegister src) { Assembler::movss(dst, src); } void movss(XMMRegister dst, XMMRegister src) { Assembler::movss(dst, src); } --- 905,933 ---- // compute pow(x,y) and exp(x) with x86 instructions. Don't cover // all corner cases and may result in NaN and require fallback to a // runtime call. void fast_pow(); ! void fast_exp(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, ! XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, ! Register rax, Register rcx, Register rdx, Register tmp); void increase_precision(); void restore_precision(); // computes pow(x,y). Fallback to runtime call included. ! void pow_with_fallback(int num_fpu_regs_in_use) { pow_or_exp(num_fpu_regs_in_use); } private: // call runtime as a fallback for trig functions and pow/exp. void fp_runtime_fallback(address runtime_entry, int nb_args, int num_fpu_regs_in_use); // computes 2^(Ylog2X); Ylog2X in ST(0) void pow_exp_core_encoding(); // computes pow(x,y) or exp(x). Fallback to runtime call included. ! void pow_or_exp(int num_fpu_regs_in_use); // these are private because users should be doing movflt/movdbl void movss(Address dst, XMMRegister src) { Assembler::movss(dst, src); } void movss(XMMRegister dst, XMMRegister src) { Assembler::movss(dst, src); }
*** 969,978 **** --- 969,982 ---- void movsd(XMMRegister dst, XMMRegister src) { Assembler::movsd(dst, src); } void movsd(Address dst, XMMRegister src) { Assembler::movsd(dst, src); } void movsd(XMMRegister dst, Address src) { Assembler::movsd(dst, src); } void movsd(XMMRegister dst, AddressLiteral src); + void mulpd(XMMRegister dst, XMMRegister src) { Assembler::mulpd(dst, src); } + void mulpd(XMMRegister dst, Address src) { Assembler::mulpd(dst, src); } + void mulpd(XMMRegister dst, AddressLiteral src); + void mulsd(XMMRegister dst, XMMRegister src) { Assembler::mulsd(dst, src); } void mulsd(XMMRegister dst, Address src) { Assembler::mulsd(dst, src); } void mulsd(XMMRegister dst, AddressLiteral src); void mulss(XMMRegister dst, XMMRegister src) { Assembler::mulss(dst, src); }
< prev index next >