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:
@@ -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.
|
||||||
|
@@ -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); \
|
||||||
|
Reference in New Issue
Block a user