< prev index next >

src/cpu/x86/vm/x86_64.ad

Print this page

        

*** 9864,9888 **** Push_ResultXD(dst)); ins_pipe( pipe_slow ); %} - instruct logD_reg(regD dst) %{ - // The source and result Double operands in XMM registers - match(Set dst (LogD dst)); - // fldln2 ; push log_e(2) on the FPU stack; full 80-bit number - // fyl2x ; compute log_e(2) * log_2(x) - format %{ "fldln2\t\t\t#Log_e\n\t" - "fyl2x\t\t\t# Q=Log_e*Log_2(x)\n\t" - %} - ins_encode( Opcode(0xD9), Opcode(0xED), // fldln2 - Push_SrcXD(dst), - Opcode(0xD9), Opcode(0xF1), // fyl2x - Push_ResultXD(dst)); - ins_pipe( pipe_slow ); - %} - instruct powD_reg(regD dst, regD src0, regD src1, rax_RegI rax, rdx_RegI rdx, rcx_RegI rcx, rFlagsReg cr) %{ match(Set dst (PowD src0 src1)); // Raise src0 to the src1'th power effect(KILL rax, KILL rdx, KILL rcx, KILL cr); format %{ "fast_pow $src0 $src1 -> $dst // KILL $rax, $rcx, $rdx" %} ins_encode %{ --- 9864,9873 ----
< prev index next >