| # mach: crisv0 crisv3 crisv8 crisv10 crisv32 |
| # output: a\n |
| |
| |
| .set smalloffset,0 |
| .set largeoffset,0 |
| |
| |
| .macro fail |
| jump _fail |
| .endm |
| |
| .global main |
| main: |
| moveq 0,$r3 |
| |
| ; Short forward branch. |
| ba 0f |
| addq 1,$r3 |
| fail |
| |
| ; Max short forward branch. |
| 1: |
| ba 2f |
| addq 1,$r3 |
| fail |
| |
| ; Short backward branch. |
| 0: |
| ba 1b |
| addq 1,$r3 |
| fail |
| |
| .space 254-2+smalloffset+1b-.,0 |
| moveq 0,$r3 |
| |
| 2: |
| ; Transit branch (long). |
| ba 3f |
| addq 1,$r3 |
| fail |
| |
| moveq 0,$r3 |
| 4: |
| ; Long forward branch. |
| ba 5f |
| addq 1,$r3 |
| fail |
| |
| .space 256-2-smalloffset+4b-.,0 |
| |
| moveq 0,$r3 |
| |
| ; Max short backward branch. |
| 3: |
| ba 4b |
| addq 1,$r3 |
| fail |
| |
| 5: |
| ; Max long forward branch. |
| ba 6f |
| addq 1,$r3 |
| fail |
| |
| .space 32766+largeoffset-2+5b-.,0 |
| |
| moveq 0,$r3 |
| 6: |
| ; Transit branch. |
| ba 7f |
| addq 1,$r3 |
| fail |
| |
| moveq 0,$r3 |
| 9: |
| jsr pass |
| nop |
| |
| ; Transit branch. |
| moveq 0,$r3 |
| 7: |
| ba 8f |
| addq 1,$r3 |
| fail |
| |
| .space 32768-largeoffset+9b-.,0 |
| |
| 8: |
| ; Max long backward branch. |
| ba 9b |
| addq 1,$r3 |
| fail |