SingleStepTests / ProcessorTests

A language-agnostic JSON-encoded instruction-by-instruction test suite for the 8088, 68000, 65816, 65[c]02 and SPC700 that includes bus activity.
188 stars 13 forks source link

68k: AS* mismatches #21

Open fedex81 opened 2 years ago

fedex81 commented 2 years ago

Hello, I'm getting two mismatches on ASL.b

e502 [ASL.b Q, D2] 1583
00000c00   e502                    asl.b    #2,d2 -- ERROR
Before: M68kState{sr=2719, pc=c00, ssp=800, usp=8f96b0a8, dr=[1827813764, 213778177, -839155778, 1049586149, -1040763541, -258789033, 238544516, 1163355290], ar=[545868555, -701803095, -881996606, 1486947959, 563825081, -38659912, 9105645, 2048]}
Expect: M68kState{sr=2713, pc=c02, ssp=800, usp=8f96b0a8, dr=[1827813764, 213778177, 777929476, 1049586149, -1040763541, -258789033, 238544516, 1163355290], ar=[545868555, -701803095, -881996606, 1486947959, 563825081, -38659912, 9105645, 2048]}
Actual: M68kState{sr=270a, pc=c02, ssp=800, usp=8f96b0a8, dr=[1827813764, 213778177, -839155720, 1049586149, -1040763541, -258789033, 238544516, 1163355290], ar=[545868555, -701803095, -881996606, 1486947959, 563825081, -38659912, 9105645, 2048]}
e502 [ASL.b Q, D2] 1761
00000c00   e502                    asl.b    #2,d2 -- ERROR
Before: M68kState{sr=271d, pc=c00, ssp=800, usp=dd237ce8, dr=[488523955, 669019593, 1098677885, 1398387187, 2118766331, -553387108, -1665121616, -557413159], ar=[-143103158, -1628924744, -134659976, -257297366, -2099023861, -1070168898, 334647008, 2048]}
Expect: M68kState{sr=271b, pc=c02, ssp=800, usp=dd237ce8, dr=[488523955, 669019593, 1684132752, 1398387187, 2118766331, -553387108, -1665121616, -557413159], ar=[-143103158, -1628924744, -134659976, -257297366, -2099023861, -1070168898, 334647008, 2048]}
Actual: M68kState{sr=271b, pc=c02, ssp=800, usp=dd237ce8, dr=[488523955, 669019593, 1098678004, 1398387187, 2118766331, -553387108, -1665121616, -557413159], ar=[-143103158, -1628924744, -134659976, -257297366, -2099023861, -1070168898, 334647008, 2048]}
fedex81 commented 1 year ago

Adding ASR

org.opentest4j.AssertionFailedError: ea23 [ASR.b D5, D3] 8
00000c00   ea23                    asr.b    d5,d3 -- ERROR
Before: M68kState{sr=2700, pc=c00, ssp=800, usp=bf193552, opcode=ea23, dr=[-1993017895, 1358408282, -1554647196, -2067002637, 1042670507, -1816692532, -157755983, 429503768], ar=[-1856226722, -668832212, 8148561, -1033535311, 1922181013, 37470399, 1834068246, 2048]}
Expect: M68kState{sr=2708, pc=c02, ssp=800, usp=bf193552, opcode=0, dr=[-1993017895, 1358408282, -1554647196, -2067002625, 1042670507, -1816692532, -157755983, 429503768], ar=[-1856226722, -668832212, 8148561, -1033535311, 1922181013, 37470399, 1834068246, 2048]}
Actual: M68kState{sr=2719, pc=c02, ssp=800, usp=bf193552, opcode=0, dr=[-1993017895, 1358408282, -1554647196, -2067002625, 1042670507, -1816692532, -157755983, 429503768], ar=[-1856226722, -668832212, 8148561, -1033535311, 1922181013, 37470399, 1834068246, 2048]}
org.opentest4j.AssertionFailedError: e067 [ASR.w D0, D7] 5
00000c00   e067                    asr.w    d0,d7 -- ERROR
Before: M68kState{sr=2718, pc=c00, ssp=800, usp=c26710aa, opcode=e067, dr=[-1655433306, -905704526, 449956697, 1224506486, 1509593563, -91710300, -379198979, -159666237], ar=[993187654, -1970332476, -242864276, -185075592, -244260028, -464092169, 777736460, 2048]}
Expect: M68kState{sr=2708, pc=c02, ssp=800, usp=c26710aa, opcode=0, dr=[-1655433306, -905704526, 449956697, 1224506486, 1509593563, -91710300, -379198979, -159645697], ar=[993187654, -1970332476, -242864276, -185075592, -244260028, -464092169, 777736460, 2048]}
Actual: M68kState{sr=2719, pc=c02, ssp=800, usp=c26710aa, opcode=0, dr=[-1655433306, -905704526, 449956697, 1224506486, 1509593563, -91710300, -379198979, -159645697], ar=[993187654, -1970332476, -242864276, -185075592, -244260028, -464092169, 777736460, 2048]}
org.opentest4j.AssertionFailedError: e4a0 [ASR.l D2, D0] 6
00000c00   e4a0                    asr.l    d2,d0 -- ERROR
Before: M68kState{sr=270c, pc=c00, ssp=800, usp=22501cec, opcode=e4a0, dr=[-1428052455, -116602634, -78740867, -727256932, -2019190866, -612557230, -361488192, 382383959], ar=[1200990425, 1839225338, 1263658580, 527953698, 1717863372, -1017905805, -1290803649, 2048]}
Expect: M68kState{sr=2708, pc=c02, ssp=800, usp=22501cec, opcode=0, dr=[-1, -116602634, -78740867, -727256932, -2019190866, -612557230, -361488192, 382383959], ar=[1200990425, 1839225338, 1263658580, 527953698, 1717863372, -1017905805, -1290803649, 2048]}
Actual: M68kState{sr=2719, pc=c02, ssp=800, usp=22501cec, opcode=0, dr=[-1, -116602634, -78740867, -727256932, -2019190866, -612557230, -361488192, 382383959], ar=[1200990425, 1839225338, 1263658580, 527953698, 1717863372, -1017905805, -1290803649, 2048]}
rasky commented 1 year ago

I can confirm that both ASL.b tests cited above are broken for me as well. Analyzing 1583:

00000000 : e502                ASL.B    #2,D2

"initial": {
        "d0": 1827813764,
        "d1": 213778177,
        "d2": 3455811518,      // 0xCDFB7FBE

"final": {
        "d0": 1827813764,
        "d1": 213778177,
        "d2": 777929476,       // 0x2E5E4304

The real output would be 0xcdfb7ff8. The final value on the test is totally different from the initial.

TomHarte commented 1 year ago

Apologies for the silence; the tests are definitely faulty but reproducing the faults in the test generator has proven to be difficult, and I think that should be a necessary predecessor to spinning up replacement tests. So I'm chasing down whatever dumb error I've made, but definitely agree that there's a real issue here.

rasky commented 1 year ago

@TomHarte is the test generator public?

virror commented 6 months ago

@TomHarte Why are there well known broken tests in the test repository? Should it not be a priority to at least remove them for now? I understand that reproducing can be hard and all that but at least remove the faulty ones so ppl dont spend hours trying to figure out why things are not working : )