< prev index next >

src/hotspot/cpu/x86/x86_32.ad

Print this page

        

*** 8947,8956 **** --- 8947,8978 ---- __ imull($tmp$$Register, $op1$$Register, $op2$$constant); %} ins_pipe(ialu_reg_reg_alu0); %} + // Integer Absolute Instructions + instruct absI_rReg(rRegI dst, rRegI src, rRegI tmp, eFlagsReg cr) + %{ + match(Set dst (AbsI src)); + effect(TEMP dst, TEMP tmp, KILL cr); + format %{ "movl $tmp, $src\n\t" + "sarl $tmp, 31\n\t" + "movl $dst, $src\n\t" + "xorl $dst, $tmp\n\t" + "subl $dst, $tmp\n" + %} + ins_encode %{ + __ movl($tmp$$Register, $src$$Register); + __ sarl($tmp$$Register, 31); + __ movl($dst$$Register, $src$$Register); + __ xorl($dst$$Register, $tmp$$Register); + __ subl($dst$$Register, $tmp$$Register); + %} + + ins_pipe(ialu_reg_reg); + %} + //----------Long Instructions------------------------------------------------ // Add Long Register with Register instruct addL_eReg(eRegL dst, eRegL src, eFlagsReg cr) %{ match(Set dst (AddL dst src)); effect(KILL cr);
< prev index next >