mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-17 00:50:48 +00:00
8379794: C2: UBSAN runtime error: shift exponent 64 is too large for 64-bit type 'long unsigned int'
Reviewed-by: rcastanedalo, qamai, dlong
This commit is contained in:
parent
53c864a881
commit
c0e500ad99
@ -23972,8 +23972,12 @@ instruct vmask_gen_imm(kReg dst, immL len, rRegL temp) %{
|
||||
format %{ "vector_mask_gen $len \t! vector mask generator" %}
|
||||
effect(TEMP temp);
|
||||
ins_encode %{
|
||||
__ mov64($temp$$Register, (0xFFFFFFFFFFFFFFFFUL >> (64 -$len$$constant)));
|
||||
__ kmovql($dst$$KRegister, $temp$$Register);
|
||||
if ($len$$constant > 0) {
|
||||
__ mov64($temp$$Register, right_n_bits($len$$constant));
|
||||
__ kmovql($dst$$KRegister, $temp$$Register);
|
||||
} else {
|
||||
__ kxorql($dst$$KRegister, $dst$$KRegister, $dst$$KRegister);
|
||||
}
|
||||
%}
|
||||
ins_pipe( pipe_slow );
|
||||
%}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user