Annotation of qemu/tests/tcg/xtensa/test_break.S, revision 1.1.1.1

1.1       root        1: .include "macros.inc"
                      2: 
                      3: #define debug_level 6
                      4: #define debug_vector level6
                      5: 
                      6: test_suite break
                      7: 
                      8: test break
                      9:     set_vector debug_vector, 0
                     10:     rsil    a2, debug_level
                     11:     _break  0, 0
                     12: 
                     13:     set_vector debug_vector, 2f
                     14:     rsil    a2, debug_level - 1
                     15: 1:
                     16:     _break  0, 0
                     17:     test_fail
                     18: 2:
                     19:     rsr     a2, ps
                     20:     movi    a3, 0x1f
                     21:     and     a2, a2, a3
                     22:     movi    a3, 0x10 | debug_level
                     23:     assert  eq, a2, a3
                     24:     rsr     a2, epc6
                     25:     movi    a3, 1b
                     26:     assert  eq, a2, a3
                     27:     rsr     a2, debugcause
                     28:     movi    a3, 0x8
                     29:     assert  eq, a2, a3
                     30: test_end
                     31: 
                     32: test breakn
                     33:     set_vector debug_vector, 0
                     34:     rsil    a2, debug_level
                     35:     _break.n  0
                     36: 
                     37:     set_vector debug_vector, 2f
                     38:     rsil    a2, debug_level - 1
                     39: 1:
                     40:     _break.n  0
                     41:     test_fail
                     42: 2:
                     43:     rsr     a2, ps
                     44:     movi    a3, 0x1f
                     45:     and     a2, a2, a3
                     46:     movi    a3, 0x10 | debug_level
                     47:     assert  eq, a2, a3
                     48:     rsr     a2, epc6
                     49:     movi    a3, 1b
                     50:     assert  eq, a2, a3
                     51:     rsr     a2, debugcause
                     52:     movi    a3, 0x10
                     53:     assert  eq, a2, a3
                     54: test_end
                     55: 
                     56: test ibreak
                     57:     set_vector debug_vector, 0
                     58:     rsil    a2, debug_level
                     59:     movi    a2, 1f
                     60:     wsr     a2, ibreaka0
                     61:     movi    a2, 1
                     62:     wsr     a2, ibreakenable
                     63:     isync
                     64: 1:
                     65:     rsil    a2, debug_level - 1
                     66:     movi    a2, 1f
                     67:     wsr     a2, ibreaka0
                     68:     movi    a2, 0
                     69:     wsr     a2, ibreakenable
                     70:     isync
                     71: 1:
                     72:     set_vector debug_vector, 2f
                     73:     movi    a2, 1f
                     74:     wsr     a2, ibreaka0
                     75:     movi    a2, 1
                     76:     wsr     a2, ibreakenable
                     77:     isync
                     78: 1:
                     79:     test_fail
                     80: 2:
                     81:     rsr     a2, ps
                     82:     movi    a3, 0x1f
                     83:     and     a2, a2, a3
                     84:     movi    a3, 0x10 | debug_level
                     85:     assert  eq, a2, a3
                     86:     rsr     a2, epc6
                     87:     movi    a3, 1b
                     88:     assert  eq, a2, a3
                     89:     rsr     a2, debugcause
                     90:     movi    a3, 0x2
                     91:     assert  eq, a2, a3
                     92: test_end
                     93: 
                     94: test ibreak_remove
                     95:     set_vector debug_vector, 3f
                     96:     rsil    a2, debug_level - 1
                     97:     movi    a2, 2f
                     98:     wsr     a2, ibreaka0
                     99:     movi    a3, 1
                    100: 1:
                    101:     wsr     a3, ibreakenable
                    102:     isync
                    103: 2:
                    104:     beqz    a3, 4f
                    105:     test_fail
                    106: 3:
                    107:     assert  eqi, a3, 1
                    108:     rsr     a2, ps
                    109:     movi    a3, 0x1f
                    110:     and     a2, a2, a3
                    111:     movi    a3, 0x10 | debug_level
                    112:     assert  eq, a2, a3
                    113:     rsr     a2, epc6
                    114:     movi    a3, 2b
                    115:     assert  eq, a2, a3
                    116:     rsr     a2, debugcause
                    117:     movi    a3, 0x2
                    118:     assert  eq, a2, a3
                    119: 
                    120:     movi    a2, 0x40000
                    121:     wsr     a2, ps
                    122:     isync
                    123:     movi    a3, 0
                    124:     j       1b
                    125: 4:
                    126: test_end
                    127: 
                    128: test ibreak_priority
                    129:     set_vector debug_vector, 2f
                    130:     rsil    a2, debug_level - 1
                    131:     movi    a2, 1f
                    132:     wsr     a2, ibreaka0
                    133:     movi    a2, 1
                    134:     wsr     a2, ibreakenable
                    135:     isync
                    136: 1:
                    137:     break   0, 0
                    138:     test_fail
                    139: 2:
                    140:     rsr     a2, debugcause
                    141:     movi    a3, 0x2
                    142:     assert  eq, a2, a3
                    143: test_end
                    144: 
                    145: test icount
                    146:     set_vector debug_vector, 2f
                    147:     rsil    a2, debug_level - 1
                    148:     movi    a2, -2
                    149:     wsr     a2, icount
                    150:     movi    a2, 1
                    151:     wsr     a2, icountlevel
                    152:     isync
                    153:     rsil    a2, 0
                    154:     nop
                    155: 1:
                    156:     break   0, 0
                    157:     test_fail
                    158: 2:
                    159:     movi    a2, 0
                    160:     wsr     a2, icountlevel
                    161:     rsr     a2, epc6
                    162:     movi    a3, 1b
                    163:     assert  eq, a2, a3
                    164:     rsr     a2, debugcause
                    165:     movi    a3, 0x1
                    166:     assert  eq, a2, a3
                    167: test_end
                    168: 
                    169: .macro check_dbreak dr
                    170:     rsr     a2, epc6
                    171:     movi    a3, 1b
                    172:     assert  eq, a2, a3
                    173:     rsr     a2, debugcause
                    174:     movi    a3, 0x4 | (\dr << 8)
                    175:     assert  eq, a2, a3
                    176:     movi    a2, 0
                    177:     wsr     a2, dbreakc\dr
                    178: .endm
                    179: 
                    180: .macro dbreak_test dr, ctl, break, access, op
                    181:     set_vector debug_vector, 2f
                    182:     rsil    a2, debug_level - 1
                    183:     movi    a2, \ctl
                    184:     wsr     a2, dbreakc\dr
                    185:     movi    a2, \break
                    186:     wsr     a2, dbreaka\dr
                    187:     movi    a2, \access
                    188:     isync
                    189: 1:
                    190:     \op     a3, a2, 0
                    191:     test_fail
                    192: 2:
                    193:     check_dbreak \dr
                    194:     reset_ps
                    195: .endm
                    196: 
                    197: test dbreak_exact
                    198:     dbreak_test 0, 0x4000003f, 0xd000007f, 0xd000007f, l8ui
                    199:     dbreak_test 1, 0x4000003e, 0xd000007e, 0xd000007e, l16ui
                    200:     dbreak_test 0, 0x4000003c, 0xd000007c, 0xd000007c, l32i
                    201: 
                    202:     dbreak_test 1, 0x8000003f, 0xd000007f, 0xd000007f, s8i
                    203:     dbreak_test 0, 0x8000003e, 0xd000007e, 0xd000007e, s16i
                    204:     dbreak_test 1, 0x8000003c, 0xd000007c, 0xd000007c, s32i
                    205: test_end
                    206: 
                    207: test dbreak_overlap
                    208:     dbreak_test 0, 0x4000003f, 0xd000007d, 0xd000007c, l16ui
                    209:     dbreak_test 1, 0x4000003f, 0xd000007d, 0xd000007c, l32i
                    210: 
                    211:     dbreak_test 0, 0x4000003e, 0xd000007e, 0xd000007f, l8ui
                    212:     dbreak_test 1, 0x4000003e, 0xd000007e, 0xd000007c, l32i
                    213: 
                    214:     dbreak_test 0, 0x4000003c, 0xd000007c, 0xd000007d, l8ui
                    215:     dbreak_test 1, 0x4000003c, 0xd000007c, 0xd000007c, l16ui
                    216: 
                    217:     dbreak_test 0, 0x40000038, 0xd0000078, 0xd000007b, l8ui
                    218:     dbreak_test 1, 0x40000038, 0xd0000078, 0xd000007a, l16ui
                    219:     dbreak_test 0, 0x40000038, 0xd0000078, 0xd000007c, l32i
                    220: 
                    221:     dbreak_test 1, 0x40000030, 0xd0000070, 0xd0000075, l8ui
                    222:     dbreak_test 0, 0x40000030, 0xd0000070, 0xd0000076, l16ui
                    223:     dbreak_test 1, 0x40000030, 0xd0000070, 0xd0000078, l32i
                    224: 
                    225:     dbreak_test 0, 0x40000020, 0xd0000060, 0xd000006f, l8ui
                    226:     dbreak_test 1, 0x40000020, 0xd0000060, 0xd0000070, l16ui
                    227:     dbreak_test 0, 0x40000020, 0xd0000060, 0xd0000074, l32i
                    228: 
                    229: 
                    230:     dbreak_test 0, 0x8000003f, 0xd000007d, 0xd000007c, s16i
                    231:     dbreak_test 1, 0x8000003f, 0xd000007d, 0xd000007c, s32i
                    232: 
                    233:     dbreak_test 0, 0x8000003e, 0xd000007e, 0xd000007f, s8i
                    234:     dbreak_test 1, 0x8000003e, 0xd000007e, 0xd000007c, s32i
                    235: 
                    236:     dbreak_test 0, 0x8000003c, 0xd000007c, 0xd000007d, s8i
                    237:     dbreak_test 1, 0x8000003c, 0xd000007c, 0xd000007c, s16i
                    238: 
                    239:     dbreak_test 0, 0x80000038, 0xd0000078, 0xd000007b, s8i
                    240:     dbreak_test 1, 0x80000038, 0xd0000078, 0xd000007a, s16i
                    241:     dbreak_test 0, 0x80000038, 0xd0000078, 0xd000007c, s32i
                    242: 
                    243:     dbreak_test 1, 0x80000030, 0xd0000070, 0xd0000075, s8i
                    244:     dbreak_test 0, 0x80000030, 0xd0000070, 0xd0000076, s16i
                    245:     dbreak_test 1, 0x80000030, 0xd0000070, 0xd0000078, s32i
                    246: 
                    247:     dbreak_test 0, 0x80000020, 0xd0000060, 0xd000006f, s8i
                    248:     dbreak_test 1, 0x80000020, 0xd0000060, 0xd0000070, s16i
                    249:     dbreak_test 0, 0x80000020, 0xd0000060, 0xd0000074, s32i
                    250: test_end
                    251: 
                    252: test dbreak_invalid
                    253:     dbreak_test 0, 0x40000030, 0xd0000071, 0xd0000070, l16ui
                    254:     dbreak_test 1, 0x40000035, 0xd0000072, 0xd0000070, l32i
                    255: test_end
                    256: 
                    257: 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.