backend/arm64: FPVectorRoundInt{32,64}: FPCR comparisons should be made with fpcr_controlled when under scope of MaybeStandardFPSCRValue
This commit is contained in:
parent
f8e38809e9
commit
c67f38b57e
1 changed files with 2 additions and 2 deletions
|
@ -613,7 +613,7 @@ void EmitIR<IR::Opcode::FPVectorRoundInt32>(oaknut::CodeGenerator& code, EmitCon
|
||||||
|
|
||||||
MaybeStandardFPSCRValue(code, ctx, fpcr_controlled, [&] {
|
MaybeStandardFPSCRValue(code, ctx, fpcr_controlled, [&] {
|
||||||
if (exact) {
|
if (exact) {
|
||||||
ASSERT(ctx.FPCR().RMode() == rounding_mode);
|
ASSERT(ctx.FPCR(fpcr_controlled).RMode() == rounding_mode);
|
||||||
code.FRINTX(Qresult->S4(), Qoperand->S4());
|
code.FRINTX(Qresult->S4(), Qoperand->S4());
|
||||||
} else {
|
} else {
|
||||||
switch (rounding_mode) {
|
switch (rounding_mode) {
|
||||||
|
@ -653,7 +653,7 @@ void EmitIR<IR::Opcode::FPVectorRoundInt64>(oaknut::CodeGenerator& code, EmitCon
|
||||||
|
|
||||||
MaybeStandardFPSCRValue(code, ctx, fpcr_controlled, [&] {
|
MaybeStandardFPSCRValue(code, ctx, fpcr_controlled, [&] {
|
||||||
if (exact) {
|
if (exact) {
|
||||||
ASSERT(ctx.FPCR().RMode() == rounding_mode);
|
ASSERT(ctx.FPCR(fpcr_controlled).RMode() == rounding_mode);
|
||||||
code.FRINTX(Qresult->D2(), Qoperand->D2());
|
code.FRINTX(Qresult->D2(), Qoperand->D2());
|
||||||
} else {
|
} else {
|
||||||
switch (rounding_mode) {
|
switch (rounding_mode) {
|
||||||
|
|
Loading…
Reference in a new issue