< prev index next >

src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page




 911   void fast_sha256(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0,
 912                    XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4,
 913                    Register buf, Register state, Register ofs, Register limit, Register rsp,
 914                    bool multi_block, XMMRegister shuf_mask);
 915 #else
 916   void fast_sha256(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0,
 917                    XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4,
 918                    Register buf, Register state, Register ofs, Register limit, Register rsp,
 919                    bool multi_block);
 920 #endif
 921 
 922   void fast_exp(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 923                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 924                 Register rax, Register rcx, Register rdx, Register tmp);
 925 
 926 #ifdef _LP64
 927   void fast_log(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 928                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 929                 Register rax, Register rcx, Register rdx, Register tmp1, Register tmp2);
 930 




 931   void fast_pow(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4,
 932                 XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register rax, Register rcx,
 933                 Register rdx, Register tmp1, Register tmp2, Register tmp3, Register tmp4);
 934 
 935   void fast_sin(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 936                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 937                 Register rax, Register rbx, Register rcx, Register rdx, Register tmp1, Register tmp2,
 938                 Register tmp3, Register tmp4);
 939 
 940   void fast_cos(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 941                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 942                 Register rax, Register rcx, Register rdx, Register tmp1,
 943                 Register tmp2, Register tmp3, Register tmp4);




 944 #else
 945   void fast_log(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 946                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 947                 Register rax, Register rcx, Register rdx, Register tmp1);
 948 




 949   void fast_pow(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4,
 950                 XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register rax, Register rcx,
 951                 Register rdx, Register tmp);
 952 
 953   void fast_sin(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 954                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 955                 Register rax, Register rbx, Register rdx);
 956 
 957   void fast_cos(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 958                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 959                 Register rax, Register rcx, Register rdx, Register tmp);
 960 
 961   void libm_sincos_huge(XMMRegister xmm0, XMMRegister xmm1, Register eax, Register ecx,
 962                         Register edx, Register ebx, Register esi, Register edi,
 963                         Register ebp, Register esp);
 964 
 965   void libm_reduce_pi04l(Register eax, Register ecx, Register edx, Register ebx,
 966                          Register esi, Register edi, Register ebp, Register esp);








 967 #endif
 968 
 969   void increase_precision();
 970   void restore_precision();
 971 
 972 private:
 973 
 974   // call runtime as a fallback for trig functions and pow/exp.
 975   void fp_runtime_fallback(address runtime_entry, int nb_args, int num_fpu_regs_in_use);
 976 
 977   // these are private because users should be doing movflt/movdbl
 978 
 979   void movss(Address dst, XMMRegister src)     { Assembler::movss(dst, src); }
 980   void movss(XMMRegister dst, XMMRegister src) { Assembler::movss(dst, src); }
 981   void movss(XMMRegister dst, Address src)     { Assembler::movss(dst, src); }
 982   void movss(XMMRegister dst, AddressLiteral src);
 983 
 984   void movlpd(XMMRegister dst, Address src)    {Assembler::movlpd(dst, src); }
 985   void movlpd(XMMRegister dst, AddressLiteral src);
 986 




 911   void fast_sha256(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0,
 912                    XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4,
 913                    Register buf, Register state, Register ofs, Register limit, Register rsp,
 914                    bool multi_block, XMMRegister shuf_mask);
 915 #else
 916   void fast_sha256(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0,
 917                    XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4,
 918                    Register buf, Register state, Register ofs, Register limit, Register rsp,
 919                    bool multi_block);
 920 #endif
 921 
 922   void fast_exp(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 923                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 924                 Register rax, Register rcx, Register rdx, Register tmp);
 925 
 926 #ifdef _LP64
 927   void fast_log(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 928                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 929                 Register rax, Register rcx, Register rdx, Register tmp1, Register tmp2);
 930 
 931   void fast_log10(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 932                   XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 933                   Register rax, Register rcx, Register rdx, Register r11);
 934 
 935   void fast_pow(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4,
 936                 XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register rax, Register rcx,
 937                 Register rdx, Register tmp1, Register tmp2, Register tmp3, Register tmp4);
 938 
 939   void fast_sin(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 940                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 941                 Register rax, Register rbx, Register rcx, Register rdx, Register tmp1, Register tmp2,
 942                 Register tmp3, Register tmp4);
 943 
 944   void fast_cos(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 945                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 946                 Register rax, Register rcx, Register rdx, Register tmp1,
 947                 Register tmp2, Register tmp3, Register tmp4);
 948   void fast_tan(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 949                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 950                 Register rax, Register rcx, Register rdx, Register tmp1,
 951                 Register tmp2, Register tmp3, Register tmp4);
 952 #else
 953   void fast_log(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 954                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 955                 Register rax, Register rcx, Register rdx, Register tmp1);
 956 
 957   void fast_log10(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 958                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 959                 Register rax, Register rcx, Register rdx, Register tmp);
 960 
 961   void fast_pow(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4,
 962                 XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register rax, Register rcx,
 963                 Register rdx, Register tmp);
 964 
 965   void fast_sin(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 966                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 967                 Register rax, Register rbx, Register rdx);
 968 
 969   void fast_cos(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 970                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 971                 Register rax, Register rcx, Register rdx, Register tmp);
 972 
 973   void libm_sincos_huge(XMMRegister xmm0, XMMRegister xmm1, Register eax, Register ecx,
 974                         Register edx, Register ebx, Register esi, Register edi,
 975                         Register ebp, Register esp);
 976 
 977   void libm_reduce_pi04l(Register eax, Register ecx, Register edx, Register ebx,
 978                          Register esi, Register edi, Register ebp, Register esp);
 979 
 980   void libm_tancot_huge(XMMRegister xmm0, XMMRegister xmm1, Register eax, Register ecx,
 981                         Register edx, Register ebx, Register esi, Register edi,
 982                         Register ebp, Register esp);
 983 
 984   void fast_tan(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3,
 985                 XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7,
 986                 Register rax, Register rcx, Register rdx, Register tmp);
 987 #endif
 988 
 989   void increase_precision();
 990   void restore_precision();
 991 
 992 private:
 993 
 994   // call runtime as a fallback for trig functions and pow/exp.
 995   void fp_runtime_fallback(address runtime_entry, int nb_args, int num_fpu_regs_in_use);
 996 
 997   // these are private because users should be doing movflt/movdbl
 998 
 999   void movss(Address dst, XMMRegister src)     { Assembler::movss(dst, src); }
1000   void movss(XMMRegister dst, XMMRegister src) { Assembler::movss(dst, src); }
1001   void movss(XMMRegister dst, Address src)     { Assembler::movss(dst, src); }
1002   void movss(XMMRegister dst, AddressLiteral src);
1003 
1004   void movlpd(XMMRegister dst, Address src)    {Assembler::movlpd(dst, src); }
1005   void movlpd(XMMRegister dst, AddressLiteral src);
1006 


< prev index next >