qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

check_ba.s (937B)


      1 # mach: crisv0 crisv3 crisv8 crisv10 crisv32
      2 # output: a\n
      3 
      4 
      5  .set smalloffset,0
      6  .set largeoffset,0
      7 
      8 
      9 	.macro fail
     10 	jump _fail
     11 	.endm
     12 
     13 	.global	main
     14 main:
     15  moveq 0,$r3
     16 
     17 ; Short forward branch.
     18  ba 0f
     19  addq 1,$r3
     20  fail
     21 
     22 ; Max short forward branch.
     23 1:
     24  ba 2f
     25  addq 1,$r3
     26  fail
     27 
     28 ; Short backward branch.
     29 0:
     30  ba 1b
     31  addq 1,$r3
     32  fail
     33 
     34  .space 254-2+smalloffset+1b-.,0
     35  moveq 0,$r3
     36 
     37 2:
     38 ; Transit branch (long).
     39  ba 3f
     40  addq 1,$r3
     41  fail
     42 
     43  moveq 0,$r3
     44 4:
     45 ; Long forward branch.
     46  ba 5f
     47  addq 1,$r3
     48  fail
     49 
     50  .space 256-2-smalloffset+4b-.,0
     51 
     52  moveq 0,$r3
     53 
     54 ; Max short backward branch.
     55 3:
     56  ba 4b
     57  addq 1,$r3
     58  fail
     59 
     60 5:
     61 ; Max long forward branch.
     62  ba 6f
     63  addq 1,$r3
     64  fail
     65 
     66  .space 32766+largeoffset-2+5b-.,0
     67 
     68  moveq 0,$r3
     69 6:
     70 ; Transit branch.
     71  ba 7f
     72  addq 1,$r3
     73  fail
     74 
     75  moveq 0,$r3
     76 9:
     77  jsr pass
     78  nop
     79 
     80 ; Transit branch.
     81  moveq 0,$r3
     82 7:
     83  ba 8f
     84  addq 1,$r3
     85  fail
     86 
     87  .space 32768-largeoffset+9b-.,0
     88 
     89 8:
     90 ; Max long backward branch.
     91  ba 9b
     92  addq 1,$r3
     93  fail