Annotation of qemu/tests/tcg/xtensa/test_break.S, revision 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.