src/cpu/x86/vm/x86_64.ad

Print this page

        

*** 9307,9316 **** --- 9307,9327 ---- opcode(0x33); ins_encode(REX_reg_reg(dst, src), OpcP, reg_reg(dst, src)); ins_pipe(ialu_reg_reg); %} + // Xor Register with Immediate -1 + instruct xorI_rReg_im1(rRegI dst, immI_M1 imm) %{ + match(Set dst (XorI dst imm)); + + format %{ "not $dst" %} + ins_encode %{ + __ notl($dst$$Register); + %} + ins_pipe(ialu_reg); + %} + // Xor Register with Immediate instruct xorI_rReg_imm(rRegI dst, immI src, rFlagsReg cr) %{ match(Set dst (XorI dst src)); effect(KILL cr);
*** 9527,9536 **** --- 9538,9558 ---- opcode(0x33); ins_encode(REX_reg_reg_wide(dst, src), OpcP, reg_reg(dst, src)); ins_pipe(ialu_reg_reg); %} + // Xor Register with Immediate -1 + instruct xorL_rReg_im1(rRegL dst, immL_M1 imm) %{ + match(Set dst (XorL dst imm)); + + format %{ "notq $dst" %} + ins_encode %{ + __ notq($dst$$Register); + %} + ins_pipe(ialu_reg); + %} + // Xor Register with Immediate instruct xorL_rReg_imm(rRegL dst, immL32 src, rFlagsReg cr) %{ match(Set dst (XorL dst src)); effect(KILL cr);