1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-08-07 23:25:00 +00:00

Complete floating point tests.

This commit is contained in:
Thomas Harte
2022-04-03 08:55:28 -04:00
parent de7d9ba471
commit 125d97cc41
2 changed files with 43 additions and 4 deletions

View File

@@ -614,17 +614,44 @@ enum class Operation: uint8_t {
/// crfD(), crfS() /// crfD(), crfS()
mcrfs, mcrfs,
/// Move to condition register from XER.
/// mcrxr
/// crfD()
mcrxr, mcrxr,
mfcr, mffsx, mfmsr, mfspr, mfsr, mfsrin,
/// Move from condition register.
/// mfcr
/// rD()
mfcr,
mffsx, mfmsr, mfspr, mfsr, mfsrin,
/// Move to condition register fields. /// Move to condition register fields.
/// mtcrf /// mtcrf
/// rS(), crm() /// rS(), crm()
mtcrf, mtcrf,
mtfsb0x, mtfsb1x, mtfsfx, /// Move to FPSCR bit 0.
mtfsfix, mtmsr, mtspr, mtsr, mtsrin, /// mtfsb0 mtfsb0.
/// crbD()
mtfsb0x,
/// Move to FPSCR bit 1.
/// mtfsb1 mtfsb1.
/// crbD()
mtfsb1x,
/// Move to FPSCR fields.
/// mtfsf mtfsf.
/// fm(), frB() [rc()]
mtfsfx,
/// Move to FPSCR field immediate.
/// mtfsfi mtfsfi.
/// crfD(), imm()
mtfsfix,
mtmsr, mtspr, mtsr, mtsrin,
/// Multiply high word. /// Multiply high word.
/// mulhw mulgw. /// mulhw mulgw.

View File

@@ -298,6 +298,18 @@ NSString *offset(Instruction instruction) {
XCTAssertEqual([columns[5] hexInt], instruction.simm()); XCTAssertEqual([columns[5] hexInt], instruction.simm());
break; break;
case Operation::mtfsfx:
AssertEqualOperationNameE(operation, @"mtfsfx", instruction);
XCTAssertEqual([columns[3] intValue], instruction.fm());
AssertEqualFR(columns[4], instruction.frB());
break;
case Operation::mtfsfix:
AssertEqualOperationNameE(operation, @"mtfsfix", instruction);
XCTAssertEqualObjects(columns[3], conditionreg(instruction.crfD()));
XCTAssertEqual([columns[4] intValue], instruction.imm());
break;
#define NoArg(x) \ #define NoArg(x) \
case Operation::x: \ case Operation::x: \
AssertEqualOperationName(operation, @#x); \ AssertEqualOperationName(operation, @#x); \