< prev index next >

src/hotspot/cpu/x86/x86_64.ad

Print this page




11913   opcode(0x85);
11914   ins_encode(REX_reg_reg_wide(src, src), OpcP, reg_reg(src, src));
11915   ins_pipe(ialu_cr_reg_imm);
11916 %}
11917 
11918 instruct compB_mem_imm(rFlagsReg cr, memory mem, immI8 imm)
11919 %{
11920   match(Set cr (CmpI (LoadB mem) imm));
11921 
11922   ins_cost(125);
11923   format %{ "cmpb    $mem, $imm" %}
11924   ins_encode %{ __ cmpb($mem$$Address, $imm$$constant); %}
11925   ins_pipe(ialu_cr_reg_mem);
11926 %}
11927 
11928 instruct testUB_mem_imm(rFlagsReg cr, memory mem, immU8 imm, immI0 zero)
11929 %{
11930   match(Set cr (CmpI (AndI (LoadUB mem) imm) zero));
11931 
11932   ins_cost(125);
11933   format %{ "testb   $mem, $imm" %}










11934   ins_encode %{ __ testb($mem$$Address, $imm$$constant); %}
11935   ins_pipe(ialu_cr_reg_mem);
11936 %}
11937 
11938 //----------Max and Min--------------------------------------------------------
11939 // Min Instructions
11940 
11941 instruct cmovI_reg_g(rRegI dst, rRegI src, rFlagsReg cr)
11942 %{
11943   effect(USE_DEF dst, USE src, USE cr);
11944 
11945   format %{ "cmovlgt $dst, $src\t# min" %}
11946   opcode(0x0F, 0x4F);
11947   ins_encode(REX_reg_reg(dst, src), OpcP, OpcS, reg_reg(dst, src));
11948   ins_pipe(pipe_cmov_reg);
11949 %}
11950 
11951 
11952 instruct minI_rReg(rRegI dst, rRegI src)
11953 %{




11913   opcode(0x85);
11914   ins_encode(REX_reg_reg_wide(src, src), OpcP, reg_reg(src, src));
11915   ins_pipe(ialu_cr_reg_imm);
11916 %}
11917 
11918 instruct compB_mem_imm(rFlagsReg cr, memory mem, immI8 imm)
11919 %{
11920   match(Set cr (CmpI (LoadB mem) imm));
11921 
11922   ins_cost(125);
11923   format %{ "cmpb    $mem, $imm" %}
11924   ins_encode %{ __ cmpb($mem$$Address, $imm$$constant); %}
11925   ins_pipe(ialu_cr_reg_mem);
11926 %}
11927 
11928 instruct testUB_mem_imm(rFlagsReg cr, memory mem, immU8 imm, immI0 zero)
11929 %{
11930   match(Set cr (CmpI (AndI (LoadUB mem) imm) zero));
11931 
11932   ins_cost(125);
11933   format %{ "testb   $mem, $imm\t# ubyte" %}
11934   ins_encode %{ __ testb($mem$$Address, $imm$$constant); %}
11935   ins_pipe(ialu_cr_reg_mem);
11936 %}
11937 
11938 instruct testB_mem_imm(rFlagsReg cr, memory mem, immI8 imm, immI0 zero)
11939 %{
11940   match(Set cr (CmpI (AndI (LoadB mem) imm) zero));
11941 
11942   ins_cost(125);
11943   format %{ "testb   $mem, $imm\t# byte" %}
11944   ins_encode %{ __ testb($mem$$Address, $imm$$constant); %}
11945   ins_pipe(ialu_cr_reg_mem);
11946 %}
11947 
11948 //----------Max and Min--------------------------------------------------------
11949 // Min Instructions
11950 
11951 instruct cmovI_reg_g(rRegI dst, rRegI src, rFlagsReg cr)
11952 %{
11953   effect(USE_DEF dst, USE src, USE cr);
11954 
11955   format %{ "cmovlgt $dst, $src\t# min" %}
11956   opcode(0x0F, 0x4F);
11957   ins_encode(REX_reg_reg(dst, src), OpcP, OpcS, reg_reg(dst, src));
11958   ins_pipe(pipe_cmov_reg);
11959 %}
11960 
11961 
11962 instruct minI_rReg(rRegI dst, rRegI src)
11963 %{


< prev index next >