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

1.1       root        1: .include "macros.inc"
                      2: 
                      3: .purgem test
                      4: .macro test name
                      5:     movi    a2, 1f
                      6:     movi    a3, 99f
                      7: 0:
                      8:     ipf     a2, 0
                      9:     ipf     a2, 4
                     10:     ipf     a2, 8
                     11:     ipf     a2, 12
                     12:     addi    a2, a2, 16
                     13:     blt     a2, a3, 0b
                     14:     j       1f
                     15:     .align 4
                     16: 1:
                     17: .endm
                     18: 
                     19: test_suite pipeline
                     20: 
                     21: test register_no_stall
                     22:     rsr     a3, ccount
                     23:     add     a5, a6, a6
                     24:     add     a6, a5, a5
                     25:     rsr     a4, ccount
                     26:     sub     a3, a4, a3
                     27:     assert  eqi, a3, 3
                     28: test_end
                     29: 
                     30: test register_stall
                     31:     l32i    a5, a1, 0   /* data cache preload */
                     32:     nop
                     33:     rsr     a3, ccount
                     34:     l32i    a5, a1, 0
                     35:     add     a6, a5, a5  /* M-to-E interlock */
                     36:     rsr     a4, ccount
                     37:     sub     a3, a4, a3
                     38:     assert  eqi, a3, 4
                     39: test_end
                     40: 
                     41: test j0_stall
                     42:     rsr     a3, ccount
                     43:     j       1f          /* E + 2-cycle penalty */
                     44: 1:
                     45:     rsr     a4, ccount  /* E */
                     46:     sub     a3, a4, a3
                     47:     assert  eqi, a3, 4
                     48: test_end
                     49: 
                     50: test j1_stall
                     51:     rsr     a3, ccount
                     52:     j       1f
                     53:     nop
                     54: 1:
                     55:     rsr     a4, ccount
                     56:     sub     a3, a4, a3
                     57:     assert  eqi, a3, 4
                     58: test_end
                     59: 
                     60: test j5_stall
                     61:     rsr     a3, ccount
                     62:     j       1f
                     63:     nop
                     64:     nop
                     65:     nop
                     66:     nop
                     67:     nop
                     68: 1:
                     69:     rsr     a4, ccount
                     70:     sub     a3, a4, a3
                     71:     assert  eqi, a3, 4
                     72: test_end
                     73: 
                     74: test b_no_stall
                     75:     movi    a5, 1
                     76:     rsr     a3, ccount
                     77:     beqi    a5, 2, 1f
                     78:     rsr     a4, ccount
                     79:     sub     a3, a4, a3
                     80:     assert  eqi, a3, 2
                     81: 1:
                     82: test_end
                     83: 
                     84: test b1_stall
                     85:     movi    a5, 1
                     86:     rsr     a3, ccount
                     87:     beqi    a5, 1, 1f
                     88:     nop
                     89: 1:
                     90:     rsr     a4, ccount
                     91:     sub     a3, a4, a3
                     92:     assert  eqi, a3, 4
                     93: test_end
                     94: 
                     95: test b5_stall
                     96:     movi    a5, 1
                     97:     rsr     a3, ccount
                     98:     beqi    a5, 1, 1f
                     99:     nop
                    100:     nop
                    101:     nop
                    102:     nop
                    103:     nop
                    104: 1:
                    105:     rsr     a4, ccount
                    106:     sub     a3, a4, a3
                    107:     assert  eqi, a3, 4
                    108: test_end
                    109: 
                    110: /* PS *SYNC */
                    111: 
                    112: test ps_dsync
                    113:     rsr     a5, ps
                    114:     isync
                    115:     rsr     a3, ccount
                    116:     wsr     a5, ps
                    117:     dsync
                    118:     rsr     a4, ccount
                    119:     sub     a3, a4, a3
                    120:     assert  eqi, a3, 5
                    121: test_end
                    122: 
                    123: test ps_esync
                    124:     rsr     a5, ps
                    125:     isync
                    126:     rsr     a3, ccount
                    127:     wsr     a5, ps
                    128:     esync
                    129:     rsr     a4, ccount
                    130:     sub     a3, a4, a3
                    131:     assert  eqi, a3, 5
                    132: test_end
                    133: 
                    134: test ps_rsync
                    135:     rsr     a5, ps
                    136:     isync
                    137:     rsr     a3, ccount
                    138:     wsr     a5, ps
                    139:     rsync
                    140:     rsr     a4, ccount
                    141:     sub     a3, a4, a3
                    142:     assert  eqi, a3, 5
                    143: test_end
                    144: 
                    145: test ps_isync
                    146:     rsr     a5, ps
                    147:     isync
                    148:     rsr     a3, ccount
                    149:     wsr     a5, ps
                    150:     isync
                    151:     rsr     a4, ccount
                    152:     sub     a3, a4, a3
                    153:     movi    a4, 9
                    154:     assert  eq, a3, a4
                    155: test_end
                    156: 
                    157: 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.