[CPU] Do not return error code from unimplemented overflows checks

Debug assertion and log message still appears
This commit is contained in:
Gliniak
2025-10-24 19:31:19 +02:00
parent ac00d09244
commit 7d8ac86f6c

View File

@@ -179,7 +179,6 @@ int InstrEmit_addzex(PPCHIRBuilder& f, const InstrData& i) {
// With XER[SO] update too.
// e.update_xer_with_overflow_and_carry(b.CreateExtractValue(v, 1));
XEINSTRNOTIMPLEMENTED();
return 1;
} else {
// Just CA update.
f.StoreCA(AddWithCarryDidCarry(f, ra, f.LoadZeroInt64(), f.LoadCA()));
@@ -208,7 +207,6 @@ int InstrEmit_divdx(PPCHIRBuilder& f, const InstrData& i) {
// If we are OE=1 we need to clear the overflow bit.
// e.update_xer_with_overflow(e.get_uint64(0));
XEINSTRNOTIMPLEMENTED();
return 1;
}
if (i.XO.Rc) {
f.UpdateCR(0, v);
@@ -234,7 +232,6 @@ int InstrEmit_divdux(PPCHIRBuilder& f, const InstrData& i) {
// If we are OE=1 we need to clear the overflow bit.
// e.update_xer_with_overflow(e.get_uint64(0));
XEINSTRNOTIMPLEMENTED();
return 1;
}
if (i.XO.Rc) {
f.UpdateCR(0, v);
@@ -262,7 +259,6 @@ int InstrEmit_divwx(PPCHIRBuilder& f, const InstrData& i) {
// If we are OE=1 we need to clear the overflow bit.
// e.update_xer_with_overflow(e.get_uint64(0));
XEINSTRNOTIMPLEMENTED();
return 1;
}
if (i.XO.Rc) {
f.UpdateCR(0, v);
@@ -291,7 +287,6 @@ int InstrEmit_divwux(PPCHIRBuilder& f, const InstrData& i) {
// If we are OE=1 we need to clear the overflow bit.
// e.update_xer_with_overflow(e.get_uint64(0));
XEINSTRNOTIMPLEMENTED();
return 1;
}
if (i.XO.Rc) {
f.UpdateCR(0, v);
@@ -304,7 +299,6 @@ int InstrEmit_mulhdx(PPCHIRBuilder& f, const InstrData& i) {
if (i.XO.OE) {
// With XER update.
XEINSTRNOTIMPLEMENTED();
return 1;
}
Value* v = f.MulHi(f.LoadGPR(i.XO.RA), f.LoadGPR(i.XO.RB));
f.StoreGPR(i.XO.RT, v);
@@ -319,7 +313,6 @@ int InstrEmit_mulhdux(PPCHIRBuilder& f, const InstrData& i) {
if (i.XO.OE) {
// With XER update.
XEINSTRNOTIMPLEMENTED();
return 1;
}
Value* v =
f.MulHi(f.LoadGPR(i.XO.RA), f.LoadGPR(i.XO.RB), ARITHMETIC_UNSIGNED);
@@ -335,7 +328,6 @@ int InstrEmit_mulhwx(PPCHIRBuilder& f, const InstrData& i) {
if (i.XO.OE) {
// With XER update.
XEINSTRNOTIMPLEMENTED();
return 1;
}
Value* ratrunc =
f.SignExtend(f.Truncate(f.LoadGPR(i.XO.RA), INT32_TYPE), INT64_TYPE);
@@ -357,7 +349,6 @@ int InstrEmit_mulhwux(PPCHIRBuilder& f, const InstrData& i) {
if (i.XO.OE) {
// With XER update.
XEINSTRNOTIMPLEMENTED();
return 1;
}
Value* ratrunc =
@@ -379,7 +370,6 @@ int InstrEmit_mulldx(PPCHIRBuilder& f, const InstrData& i) {
if (i.XO.OE) {
// With XER update.
XEINSTRNOTIMPLEMENTED();
return 1;
}
Value* v = f.Mul(f.LoadGPR(i.XO.RA), f.LoadGPR(i.XO.RB));
f.StoreGPR(i.XO.RT, v);
@@ -402,7 +392,6 @@ int InstrEmit_mullwx(PPCHIRBuilder& f, const InstrData& i) {
if (i.XO.OE) {
// With XER update.
XEINSTRNOTIMPLEMENTED();
return 1;
}
Value* v = f.Mul(
f.SignExtend(f.Truncate(f.LoadGPR(i.XO.RA), INT32_TYPE), INT64_TYPE),
@@ -441,7 +430,6 @@ int InstrEmit_subfx(PPCHIRBuilder& f, const InstrData& i) {
f.StoreGPR(i.XO.RT, v);
if (i.XO.OE) {
XEINSTRNOTIMPLEMENTED();
return 1;
// e.update_xer_with_overflow(EFLAGS??);
}
if (i.XO.Rc) {
@@ -458,7 +446,6 @@ int InstrEmit_subfcx(PPCHIRBuilder& f, const InstrData& i) {
f.StoreGPR(i.XO.RT, v);
if (i.XO.OE) {
XEINSTRNOTIMPLEMENTED();
return 1;
// e.update_xer_with_overflow(EFLAGS??);
} else {
f.StoreCA(SubDidCarry(f, rb, ra));
@@ -486,7 +473,6 @@ int InstrEmit_subfex(PPCHIRBuilder& f, const InstrData& i) {
f.StoreGPR(i.XO.RT, v);
if (i.XO.OE) {
XEINSTRNOTIMPLEMENTED();
return 1;
// e.update_xer_with_overflow_and_carry(b.CreateExtractValue(v, 1));
} else {
f.StoreCA(AddWithCarryDidCarry(f, not_ra, rb, f.LoadCA()));
@@ -504,7 +490,6 @@ int InstrEmit_subfmex(PPCHIRBuilder& f, const InstrData& i) {
f.StoreGPR(i.XO.RT, v);
if (i.XO.OE) {
XEINSTRNOTIMPLEMENTED();
return 1;
// e.update_xer_with_overflow_and_carry(b.CreateExtractValue(v, 1));
} else {
f.StoreCA(
@@ -523,7 +508,6 @@ int InstrEmit_subfzex(PPCHIRBuilder& f, const InstrData& i) {
f.StoreGPR(i.XO.RT, v);
if (i.XO.OE) {
XEINSTRNOTIMPLEMENTED();
return 1;
// e.update_xer_with_overflow_and_carry(b.CreateExtractValue(v, 1));
} else {
f.StoreCA(AddWithCarryDidCarry(f, not_ra, f.LoadZeroInt64(), f.LoadCA()));