8179933: AArch64: Incorrect match rule for immL_255
The match rule fix will enable instructs like: SubExtL_uxtb_and and AddExtL_uxtb_and etc. Also rename immL_63 to the proper name: immI_63. Reviewed-by: aph
This commit is contained in:
parent
2614e75f50
commit
d9c1f52541
@ -5423,6 +5423,16 @@ operand immI_56()
|
||||
interface(CONST_INTER);
|
||||
%}
|
||||
|
||||
operand immI_63()
|
||||
%{
|
||||
predicate(n->get_int() == 63);
|
||||
match(ConI);
|
||||
|
||||
op_cost(0);
|
||||
format %{ %}
|
||||
interface(CONST_INTER);
|
||||
%}
|
||||
|
||||
operand immI_64()
|
||||
%{
|
||||
predicate(n->get_int() == 64);
|
||||
@ -5453,20 +5463,10 @@ operand immI_65535()
|
||||
interface(CONST_INTER);
|
||||
%}
|
||||
|
||||
operand immL_63()
|
||||
%{
|
||||
predicate(n->get_int() == 63);
|
||||
match(ConI);
|
||||
|
||||
op_cost(0);
|
||||
format %{ %}
|
||||
interface(CONST_INTER);
|
||||
%}
|
||||
|
||||
operand immL_255()
|
||||
%{
|
||||
predicate(n->get_int() == 255);
|
||||
match(ConI);
|
||||
predicate(n->get_long() == 255L);
|
||||
match(ConL);
|
||||
|
||||
op_cost(0);
|
||||
format %{ %}
|
||||
@ -11146,7 +11146,7 @@ instruct divL(iRegLNoSp dst, iRegL src1, iRegL src2) %{
|
||||
ins_pipe(ldiv_reg_reg);
|
||||
%}
|
||||
|
||||
instruct signExtractL(iRegLNoSp dst, iRegL src1, immL_63 div1, immL_63 div2) %{
|
||||
instruct signExtractL(iRegLNoSp dst, iRegL src1, immI_63 div1, immI_63 div2) %{
|
||||
match(Set dst (URShiftL (RShiftL src1 div1) div2));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "lsr $dst, $src1, $div1" %}
|
||||
@ -11156,7 +11156,7 @@ instruct signExtractL(iRegLNoSp dst, iRegL src1, immL_63 div1, immL_63 div2) %{
|
||||
ins_pipe(ialu_reg_shift);
|
||||
%}
|
||||
|
||||
instruct div2RoundL(iRegLNoSp dst, iRegL src, immL_63 div1, immL_63 div2) %{
|
||||
instruct div2RoundL(iRegLNoSp dst, iRegL src, immI_63 div1, immI_63 div2) %{
|
||||
match(Set dst (AddL src (URShiftL (RShiftL src div1) div2)));
|
||||
ins_cost(INSN_COST);
|
||||
format %{ "add $dst, $src, $div1" %}
|
||||
|
Loading…
x
Reference in New Issue
Block a user