8264564: AArch64: use MOVI instead of FMOV to zero FP register

Reviewed-by: aph
This commit is contained in:
Nick Gasson 2021-04-06 02:44:05 +00:00
parent dc608fd0f3
commit 43d4a6f615
3 changed files with 5 additions and 5 deletions

View File

@ -2184,13 +2184,13 @@ public:
if (value) if (value)
fmov_imm(Vn, value, 0b00); fmov_imm(Vn, value, 0b00);
else else
fmovs(Vn, zr); movi(Vn, T2S, 0);
} }
void fmovd(FloatRegister Vn, double value) { void fmovd(FloatRegister Vn, double value) {
if (value) if (value)
fmov_imm(Vn, value, 0b01); fmov_imm(Vn, value, 0b01);
else else
fmovd(Vn, zr); movi(Vn, T1D, 0);
} }
// Floating-point rounding // Floating-point rounding

View File

@ -5153,7 +5153,7 @@ address MacroAssembler::byte_array_inflate(Register src, Register dst, Register
assert_different_registers(src, dst, len, tmp4, rscratch1); assert_different_registers(src, dst, len, tmp4, rscratch1);
fmovd(vtmp1, zr); fmovd(vtmp1, 0.0);
lsrw(tmp4, len, 3); lsrw(tmp4, len, 3);
bind(after_init); bind(after_init);
cbnzw(tmp4, big); cbnzw(tmp4, big);

View File

@ -261,7 +261,7 @@ void TemplateTable::fconst(int value)
transition(vtos, ftos); transition(vtos, ftos);
switch (value) { switch (value) {
case 0: case 0:
__ fmovs(v0, zr); __ fmovs(v0, 0.0);
break; break;
case 1: case 1:
__ fmovs(v0, 1.0); __ fmovs(v0, 1.0);
@ -280,7 +280,7 @@ void TemplateTable::dconst(int value)
transition(vtos, dtos); transition(vtos, dtos);
switch (value) { switch (value) {
case 0: case 0:
__ fmovd(v0, zr); __ fmovd(v0, 0.0);
break; break;
case 1: case 1:
__ fmovd(v0, 1.0); __ fmovd(v0, 1.0);