< prev index next >

src/hotspot/cpu/x86/x86_64.ad

Print this page




8158   ins_cost(350);
8159   format %{ "imull   $dst, $src\t# int" %}
8160   opcode(0x0F, 0xAF);
8161   ins_encode(REX_reg_mem(dst, src), OpcP, OpcS, reg_mem(dst, src));
8162   ins_pipe(ialu_reg_mem_alu0);
8163 %}
8164 
8165 instruct mulI_mem_imm(rRegI dst, memory src, immI imm, rFlagsReg cr)
8166 %{
8167   match(Set dst (MulI (LoadI src) imm));
8168   effect(KILL cr);
8169 
8170   ins_cost(300);
8171   format %{ "imull   $dst, $src, $imm\t# int" %}
8172   opcode(0x69); /* 69 /r id */
8173   ins_encode(REX_reg_mem(dst, src),
8174              OpcSE(imm), reg_mem(dst, src), Con8or32(imm));
8175   ins_pipe(ialu_reg_mem_alu0);
8176 %}
8177 










8178 instruct mulL_rReg(rRegL dst, rRegL src, rFlagsReg cr)
8179 %{
8180   match(Set dst (MulL dst src));
8181   effect(KILL cr);
8182 
8183   ins_cost(300);
8184   format %{ "imulq   $dst, $src\t# long" %}
8185   opcode(0x0F, 0xAF);
8186   ins_encode(REX_reg_reg_wide(dst, src), OpcP, OpcS, reg_reg(dst, src));
8187   ins_pipe(ialu_reg_reg_alu0);
8188 %}
8189 
8190 instruct mulL_rReg_imm(rRegL dst, rRegL src, immL32 imm, rFlagsReg cr)
8191 %{
8192   match(Set dst (MulL src imm));
8193   effect(KILL cr);
8194 
8195   ins_cost(300);
8196   format %{ "imulq   $dst, $src, $imm\t# long" %}
8197   opcode(0x69); /* 69 /r id */




8158   ins_cost(350);
8159   format %{ "imull   $dst, $src\t# int" %}
8160   opcode(0x0F, 0xAF);
8161   ins_encode(REX_reg_mem(dst, src), OpcP, OpcS, reg_mem(dst, src));
8162   ins_pipe(ialu_reg_mem_alu0);
8163 %}
8164 
8165 instruct mulI_mem_imm(rRegI dst, memory src, immI imm, rFlagsReg cr)
8166 %{
8167   match(Set dst (MulI (LoadI src) imm));
8168   effect(KILL cr);
8169 
8170   ins_cost(300);
8171   format %{ "imull   $dst, $src, $imm\t# int" %}
8172   opcode(0x69); /* 69 /r id */
8173   ins_encode(REX_reg_mem(dst, src),
8174              OpcSE(imm), reg_mem(dst, src), Con8or32(imm));
8175   ins_pipe(ialu_reg_mem_alu0);
8176 %}
8177 
8178 instruct mulAddS2I_rReg(rRegI dst, rRegI src1, rRegI src2, rRegI src3, rFlagsReg cr)
8179 %{
8180   match(Set dst (MulAddS2I (Binary dst src1) (Binary src2 src3)));
8181   effect(KILL cr, KILL src2);
8182 
8183   expand %{ mulI_rReg(dst, src1, cr);
8184            mulI_rReg(src2, src3, cr);
8185            addI_rReg(dst, src2, cr); %}
8186 %}
8187 
8188 instruct mulL_rReg(rRegL dst, rRegL src, rFlagsReg cr)
8189 %{
8190   match(Set dst (MulL dst src));
8191   effect(KILL cr);
8192 
8193   ins_cost(300);
8194   format %{ "imulq   $dst, $src\t# long" %}
8195   opcode(0x0F, 0xAF);
8196   ins_encode(REX_reg_reg_wide(dst, src), OpcP, OpcS, reg_reg(dst, src));
8197   ins_pipe(ialu_reg_reg_alu0);
8198 %}
8199 
8200 instruct mulL_rReg_imm(rRegL dst, rRegL src, immL32 imm, rFlagsReg cr)
8201 %{
8202   match(Set dst (MulL src imm));
8203   effect(KILL cr);
8204 
8205   ins_cost(300);
8206   format %{ "imulq   $dst, $src, $imm\t# long" %}
8207   opcode(0x69); /* 69 /r id */


< prev index next >