|
|
1.1 ! root 1: .macro test_suite name ! 2: .data ! 3: status: .word result ! 4: result: .space 20 ! 5: .text ! 6: .global main ! 7: .align 4 ! 8: main: ! 9: .endm ! 10: ! 11: .macro reset_ps ! 12: movi a2, 0x4000f ! 13: wsr a2, ps ! 14: isync ! 15: .endm ! 16: ! 17: .macro test_suite_end ! 18: reset_ps ! 19: movi a0, status ! 20: l32i a2, a0, 0 ! 21: movi a0, result ! 22: sub a2, a2, a0 ! 23: movi a3, 0 ! 24: loopnez a2, 1f ! 25: l8ui a2, a0, 0 ! 26: or a3, a3, a2 ! 27: addi a0, a0, 1 ! 28: 1: ! 29: exit ! 30: .endm ! 31: ! 32: .macro test name ! 33: .endm ! 34: ! 35: .macro test_end ! 36: 99: ! 37: reset_ps ! 38: movi a2, status ! 39: l32i a3, a2, 0 ! 40: addi a3, a3, 1 ! 41: s32i a3, a2, 0 ! 42: .endm ! 43: ! 44: .macro exit ! 45: movi a2, 1 ! 46: simcall ! 47: .endm ! 48: ! 49: .macro test_fail ! 50: movi a2, status ! 51: l32i a2, a2, 0 ! 52: movi a3, 1 ! 53: s8i a3, a2, 0 ! 54: j 99f ! 55: .endm ! 56: ! 57: .macro assert cond, arg1, arg2 ! 58: b\cond \arg1, \arg2, 90f ! 59: test_fail ! 60: 90: ! 61: nop ! 62: .endm ! 63: ! 64: .macro set_vector vector, addr ! 65: movi a2, handler_\vector ! 66: movi a3, \addr ! 67: s32i a3, a2, 0 ! 68: .endm
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.