Annotation of qemu/tests/xtensa/test_timer.S, revision 1.1.1.1

1.1       root        1: .include "macros.inc"
                      2: 
                      3: test_suite timer
                      4: 
                      5: test ccount
                      6:     rsr     a3, ccount
                      7:     rsr     a4, ccount
                      8:     sub     a3, a4, a3
                      9:     assert  eqi, a3, 1
                     10: test_end
                     11: 
                     12: test ccompare
                     13:     movi    a2, 0
                     14:     wsr     a2, intenable
                     15:     rsr     a2, interrupt
                     16:     wsr     a2, intclear
                     17:     movi    a2, 0
                     18:     wsr     a2, ccompare1
                     19:     wsr     a2, ccompare2
                     20: 
                     21:     movi    a3, 20
                     22:     rsr     a2, ccount
                     23:     addi    a2, a2, 20
                     24:     wsr     a2, ccompare0
                     25:     rsr     a2, interrupt
                     26:     assert  eqi, a2, 0
                     27:     loop    a3, 1f
                     28:     rsr     a3, interrupt
                     29:     bnez    a3, 2f
                     30: 1:
                     31:     test_fail
                     32: 2:
                     33: test_end
                     34: 
                     35: test ccompare0_interrupt
                     36:     set_vector kernel, 2f
                     37:     movi    a2, 0
                     38:     wsr     a2, intenable
                     39:     rsr     a2, interrupt
                     40:     wsr     a2, intclear
                     41:     movi    a2, 0
                     42:     wsr     a2, ccompare1
                     43:     wsr     a2, ccompare2
                     44: 
                     45:     movi    a3, 20
                     46:     rsr     a2, ccount
                     47:     addi    a2, a2, 20
                     48:     wsr     a2, ccompare0
                     49:     rsync
                     50:     rsr     a2, interrupt
                     51:     assert  eqi, a2, 0
                     52: 
                     53:     movi    a2, 0x40
                     54:     wsr     a2, intenable
                     55:     rsil    a2, 0
                     56:     loop    a3, 1f
                     57:     nop
                     58: 1:
                     59:     test_fail
                     60: 2:
                     61:     rsr     a2, exccause
                     62:     assert  eqi, a2, 4 /* LEVEL1_INTERRUPT_CAUSE */
                     63: test_end
                     64: 
                     65: test ccompare1_interrupt
                     66:     set_vector level3, 2f
                     67:     movi    a2, 0
                     68:     wsr     a2, intenable
                     69:     rsr     a2, interrupt
                     70:     wsr     a2, intclear
                     71:     movi    a2, 0
                     72:     wsr     a2, ccompare0
                     73:     wsr     a2, ccompare2
                     74: 
                     75:     movi    a3, 20
                     76:     rsr     a2, ccount
                     77:     addi    a2, a2, 20
                     78:     wsr     a2, ccompare1
                     79:     rsync
                     80:     rsr     a2, interrupt
                     81:     assert  eqi, a2, 0
                     82:     movi    a2, 0x400
                     83:     wsr     a2, intenable
                     84:     rsil    a2, 2
                     85:     loop    a3, 1f
                     86:     nop
                     87: 1:
                     88:     test_fail
                     89: 2:
                     90: test_end
                     91: 
                     92: test ccompare2_interrupt
                     93:     set_vector level5, 2f
                     94:     movi    a2, 0
                     95:     wsr     a2, intenable
                     96:     rsr     a2, interrupt
                     97:     wsr     a2, intclear
                     98:     movi    a2, 0
                     99:     wsr     a2, ccompare0
                    100:     wsr     a2, ccompare1
                    101: 
                    102:     movi    a3, 20
                    103:     rsr     a2, ccount
                    104:     addi    a2, a2, 20
                    105:     wsr     a2, ccompare2
                    106:     rsync
                    107:     rsr     a2, interrupt
                    108:     assert  eqi, a2, 0
                    109:     movi    a2, 0x2000
                    110:     wsr     a2, intenable
                    111:     rsil    a2, 4
                    112:     loop    a3, 1f
                    113:     nop
                    114: 1:
                    115:     test_fail
                    116: 2:
                    117: test_end
                    118: 
                    119: test ccompare_interrupt_masked
                    120:     set_vector kernel, 2f
                    121:     movi    a2, 0
                    122:     wsr     a2, intenable
                    123:     rsr     a2, interrupt
                    124:     wsr     a2, intclear
                    125:     movi    a2, 0
                    126:     wsr     a2, ccompare2
                    127: 
                    128:     movi    a3, 40
                    129:     rsr     a2, ccount
                    130:     addi    a2, a2, 20
                    131:     wsr     a2, ccompare1
                    132:     addi    a2, a2, 20
                    133:     wsr     a2, ccompare0
                    134:     rsync
                    135:     rsr     a2, interrupt
                    136:     assert  eqi, a2, 0
                    137: 
                    138:     movi    a2, 0x40
                    139:     wsr     a2, intenable
                    140:     rsil    a2, 0
                    141:     loop    a3, 1f
                    142:     nop
                    143: 1:
                    144:     test_fail
                    145: 2:
                    146:     rsr     a2, exccause
                    147:     assert  eqi, a2, 4 /* LEVEL1_INTERRUPT_CAUSE */
                    148: test_end
                    149: 
                    150: test ccompare_interrupt_masked_waiti
                    151:     set_vector kernel, 2f
                    152:     movi    a2, 0
                    153:     wsr     a2, intenable
                    154:     rsr     a2, interrupt
                    155:     wsr     a2, intclear
                    156:     movi    a2, 0
                    157:     wsr     a2, ccompare2
                    158: 
                    159:     movi    a3, 40
                    160:     rsr     a2, ccount
                    161:     addi    a2, a2, 20
                    162:     wsr     a2, ccompare1
                    163:     addi    a2, a2, 20
                    164:     wsr     a2, ccompare0
                    165:     rsync
                    166:     rsr     a2, interrupt
                    167:     assert  eqi, a2, 0
                    168: 
                    169:     movi    a2, 0x40
                    170:     wsr     a2, intenable
                    171:     waiti   0
                    172:     test_fail
                    173: 2:
                    174:     rsr     a2, exccause
                    175:     assert  eqi, a2, 4 /* LEVEL1_INTERRUPT_CAUSE */
                    176: test_end
                    177: 
                    178: test_suite_end

unix.superglobalmegacorp.com

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