< prev index next >
src/cpu/x86/vm/x86_64.ad
Print this page
*** 9895,9932 ****
emit_cmpfp3(_masm, $dst$$Register);
%}
ins_pipe(pipe_slow);
%}
- // -----------Trig and Trancendental Instructions------------------------------
- instruct tanD_reg(regD dst) %{
- match(Set dst (TanD dst));
-
- format %{ "dtan $dst\n\t" %}
- ins_encode( Push_SrcXD(dst),
- Opcode(0xD9), Opcode(0xF2), //fptan
- Opcode(0xDD), Opcode(0xD8), //fstp st
- Push_ResultXD(dst) );
- ins_pipe( pipe_slow );
- %}
-
- instruct log10D_reg(regD dst) %{
- // The source and result Double operands in XMM registers
- match(Set dst (Log10D dst));
- // fldlg2 ; push log_10(2) on the FPU stack; full 80-bit number
- // fyl2x ; compute log_10(2) * log_2(x)
- format %{ "fldlg2\t\t\t#Log10\n\t"
- "fyl2x\t\t\t# Q=Log10*Log_2(x)\n\t"
- %}
- ins_encode(Opcode(0xD9), Opcode(0xEC), // fldlg2
- Push_SrcXD(dst),
- Opcode(0xD9), Opcode(0xF1), // fyl2x
- Push_ResultXD(dst));
-
- ins_pipe( pipe_slow );
- %}
-
//----------Arithmetic Conversion Instructions---------------------------------
instruct roundFloat_nop(regF dst)
%{
match(Set dst (RoundFloat dst));
--- 9895,9904 ----
< prev index next >