< prev index next >
src/cpu/s390/vm/s390.ad
Print this page
rev 12501 : 8173470: [C2] Mask shift operands in ideal graph.
@@ -6768,10 +6768,11 @@
match(Set dst (LShiftI src nbits));
size(6);
format %{ "SLL $dst,$src,$nbits\t# use RISC-like SLLG also for int" %}
ins_encode %{
int Nbit = $nbits$$constant;
+ assert((Nbit & (BitsPerJavaInteger - 1)) == Nbit, "Check shift mask in ideal graph");
__ z_sllg($dst$$Register, $src$$Register, Nbit & (BitsPerJavaInteger - 1), Z_R0);
%}
ins_pipe(pipe_class_dummy);
%}
@@ -6841,10 +6842,11 @@
effect(KILL cr);
size(4);
format %{ "SRA $dst,$src" %}
ins_encode %{
int Nbit = $src$$constant;
+ assert((Nbit & (BitsPerJavaInteger - 1)) == Nbit, "Check shift mask in ideal graph");
__ z_sra($dst$$Register, Nbit & (BitsPerJavaInteger - 1), Z_R0);
%}
ins_pipe(pipe_class_dummy);
%}
@@ -6893,10 +6895,11 @@
match(Set dst (URShiftI dst src));
size(4);
format %{ "SRL $dst,$src" %}
ins_encode %{
int Nbit = $src$$constant;
+ assert((Nbit & (BitsPerJavaInteger - 1)) == Nbit, "Check shift mask in ideal graph");
__ z_srl($dst$$Register, Nbit & (BitsPerJavaInteger - 1), Z_R0);
%}
ins_pipe(pipe_class_dummy);
%}
< prev index next >