1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-04 18:29:40 +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()
mcrfs,
/// Move to condition register from XER.
/// mcrxr
/// crfD()
mcrxr,
mfcr, mffsx, mfmsr, mfspr, mfsr, mfsrin,
/// Move from condition register.
/// mfcr
/// rD()
mfcr,
mffsx, mfmsr, mfspr, mfsr, mfsrin,
/// Move to condition register fields.
/// mtcrf
/// rS(), crm()
mtcrf,
mtfsb0x, mtfsb1x, mtfsfx,
mtfsfix, mtmsr, mtspr, mtsr, mtsrin,
/// Move to FPSCR bit 0.
/// 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.
/// mulhw mulgw.

View File

@ -298,6 +298,18 @@ NSString *offset(Instruction instruction) {
XCTAssertEqual([columns[5] hexInt], instruction.simm());
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) \
case Operation::x: \
AssertEqualOperationName(operation, @#x); \