|
|
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 print text ! 33: .data ! 34: 97: .ascii "\text\n" ! 35: 98: ! 36: .align 4 ! 37: .text ! 38: movi a2, 4 ! 39: movi a3, 2 ! 40: movi a4, 97b ! 41: movi a5, 98b ! 42: sub a5, a5, a4 ! 43: simcall ! 44: .endm ! 45: ! 46: .macro test name ! 47: //print test_\name ! 48: test_\name: ! 49: .global test_\name ! 50: .endm ! 51: ! 52: .macro test_end ! 53: 99: ! 54: reset_ps ! 55: movi a2, status ! 56: l32i a3, a2, 0 ! 57: addi a3, a3, 1 ! 58: s32i a3, a2, 0 ! 59: .endm ! 60: ! 61: .macro exit ! 62: movi a2, 1 ! 63: simcall ! 64: .endm ! 65: ! 66: .macro test_fail ! 67: movi a2, status ! 68: l32i a2, a2, 0 ! 69: movi a3, 1 ! 70: s8i a3, a2, 0 ! 71: j 99f ! 72: .endm ! 73: ! 74: .macro assert cond, arg1, arg2 ! 75: b\cond \arg1, \arg2, 90f ! 76: test_fail ! 77: 90: ! 78: nop ! 79: .endm ! 80: ! 81: .macro set_vector vector, addr ! 82: movi a2, handler_\vector ! 83: movi a3, \addr ! 84: s32i a3, a2, 0 ! 85: .endm
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.