Annotation of qemu/tests/tcg/xtensa/macros.inc, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.