Home | History | Annotate | Download | only in cris
      1 ;
      2 ; Test that branches work: 8- and 16-bit all insns, relaxing to
      3 ; 32-bit, forward and backward.  No need to check the border
      4 ; cases for *all* insns.
      5 ;
      6  .text
      7 start_original:
      8  nop
      9 startm32: ;       start     start2    start3
     10  nop
     11  .space 32750-(256-21*2+20)-(21*2+10*2+21*4)-12,0
     12 startm16:
     13  nop
     14  ; The size of a bunch of short branches is start2-start = 42,
     15  ; so make the threshold be dependent of the size of that block,
     16  ; for the next block; half of them will be relaxed.
     17  .space 256-21*2-20,0
     18 start:
     19  nop
     20  ba start
     21  bcc start
     22  bcs start
     23  beq start
     24  bwf start
     25  bext start
     26  bext start ; leftover, used to be never-implemented "bir"
     27  bge start
     28  bgt start
     29  bhi start
     30  bhs start
     31  ble start
     32  blo start
     33  bls start
     34  blt start
     35  bmi start
     36  bne start
     37  bpl start
     38  bvc start
     39  bvs start
     40 start2:
     41  nop
     42  ba startm16
     43  bcc startm16
     44  bcs startm16
     45  beq startm16
     46  bwf startm16
     47  bext startm16
     48  bext startm16
     49  bge startm16
     50  bgt startm16
     51  bhi startm16
     52  bhs startm16
     53  ble startm16
     54  blo startm16
     55  bls startm16
     56  blt startm16
     57  bmi startm16
     58  bne startm16
     59  bpl startm16
     60  bvc startm16
     61  bvs startm16
     62 start3:
     63 ; Ok, once more to make sure *all* 16-bit variants get ok for
     64 ; backward references.
     65  nop
     66  ba startm16
     67  bcc startm16
     68  bcs startm16
     69  beq startm16
     70  bwf startm16
     71  bext startm16
     72  bext startm16
     73  bge startm16
     74  bgt startm16
     75  bhi startm16
     76  bhs startm16
     77  ble startm16
     78  blo startm16
     79  bls startm16
     80  blt startm16
     81  bmi startm16
     82  bne startm16
     83  bpl startm16
     84  bvc startm16
     85  bvs startm16
     86 ;
     87 ; Now check that dynamically relaxing some of these branches
     88 ; from 16-bit to 32-bit works.
     89 ;
     90 start4:
     91  nop
     92  ba startm32
     93  bcc startm32
     94  bcs startm32
     95  beq startm32
     96  bwf startm32
     97  bext startm32
     98  bext startm32
     99  bge startm32
    100  bgt startm32
    101  bhi startm32
    102  bhs startm32
    103  ble startm32
    104  blo startm32
    105  bls startm32
    106  blt startm32
    107  bmi startm32
    108  bne startm32
    109  bpl startm32
    110  bvc startm32
    111  bvs startm32
    112 ;
    113 ; Again, so all insns get to be tested for 32-bit relaxing.
    114 ;
    115 start5:
    116  nop
    117  ba startm32
    118  bcc startm32
    119  bcs startm32
    120  beq startm32
    121  bwf startm32
    122  bext startm32
    123  bext startm32
    124  bge startm32
    125  bgt startm32
    126  bhi startm32
    127  bhs startm32
    128  ble startm32
    129  blo startm32
    130  bls startm32
    131  blt startm32
    132  bmi startm32
    133  bne startm32
    134  bpl startm32
    135  bvc startm32
    136  bvs startm32
    137 ;
    138 ; Now test forward references.  Symmetrically as above.
    139 ;
    140 ; All to 32-bit:
    141 start6:
    142  nop
    143  ba endp32
    144  bcc endp32
    145  bcs endp32
    146  beq endp32
    147  bwf endp32
    148  bext endp32
    149  bext endp32
    150  bge endp32
    151  bgt endp32
    152  bhi endp32
    153  bhs endp32
    154  ble endp32
    155  blo endp32
    156  bls endp32
    157  blt endp32
    158  bmi endp32
    159  bne endp32
    160  bpl endp32
    161  bvc endp32
    162  bvs endp32
    163 ;
    164 ; Some get relaxed:
    165 ;
    166 start7:
    167  nop
    168  ba endp32
    169  bcc endp32
    170  bcs endp32
    171  beq endp32
    172  bwf endp32
    173  bext endp32
    174  bext endp32
    175  bge endp32
    176  bgt endp32
    177  bhi endp32
    178  bhs endp32
    179  ble endp32
    180  blo endp32
    181  bls endp32
    182  blt endp32
    183  bmi endp32
    184  bne endp32
    185  bpl endp32
    186  bvc endp32
    187  bvs endp32
    188 ;
    189 ; All to 16-bit:
    190 ;
    191 start8:
    192  nop
    193  ba endp16
    194  bcc endp16
    195  bcs endp16
    196  beq endp16
    197  bwf endp16
    198  bext endp16
    199  bext endp16
    200  bge endp16
    201  bgt endp16
    202  bhi endp16
    203  bhs endp16
    204  ble endp16
    205  blo endp16
    206  bls endp16
    207  blt endp16
    208  bmi endp16
    209  bne endp16
    210  bpl endp16
    211  bvc endp16
    212  bvs endp16
    213 ;
    214 ; Some relaxing:
    215 ;
    216 start9:
    217  nop
    218  ba endp16
    219  bcc endp16
    220  bcs endp16
    221  beq endp16
    222  bwf endp16
    223  bext endp16
    224  bext endp16
    225  bge endp16
    226  bgt endp16
    227  bhi endp16
    228  bhs endp16
    229  ble endp16
    230  blo endp16
    231  bls endp16
    232  blt endp16
    233  bmi endp16
    234  bne endp16
    235  bpl endp16
    236  bvc endp16
    237  bvs endp16
    238 ;
    239 ; And all the short ones, forward.
    240 ;
    241 start10:
    242  ba end
    243  bcc end
    244  bcs end
    245  beq end
    246  bwf end
    247  bext end
    248  bext end
    249  bge end
    250  bgt end
    251  bhi end
    252  bhs end
    253  ble end
    254  blo end
    255  bls end
    256  blt end
    257  bmi end
    258  bne end
    259  bpl end
    260  bvc end
    261  bvs end
    262  nop
    263 end:
    264  nop
    265  .space 256-21*2-20,0
    266 endp16:
    267  nop
    268  .space 32750-(256-21*2+20)-(21*2+10*2+21*4)-12,0
    269 endp32:
    270  nop
    271