s2.s 570 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # mach: bfin
  2. .include "testutils.inc"
  3. start
  4. // Test pc relative indirect branches.
  5. P4 = 0;
  6. loadsym P1 jtab;
  7. LL1:
  8. P2 = P1 + ( P4 << 1 );
  9. R0 = W [ P2 ] (Z);
  10. P0 = R0;
  11. R2 = P4;
  12. jp:
  13. JUMP ( PC + P0 );
  14. DBGA ( R2.L , 0 );
  15. JUMP.L done;
  16. DBGA ( R2.L , 1 );
  17. JUMP.L done;
  18. DBGA ( R2.L , 2 );
  19. JUMP.L done;
  20. DBGA ( R2.L , 3 );
  21. JUMP.L done;
  22. DBGA ( R2.L , 4 );
  23. JUMP.L done;
  24. done:
  25. P4 += 1;
  26. CC = P4 < 4 (IU);
  27. IF CC JUMP LL1;
  28. pass
  29. .data
  30. jtab:
  31. .dw 2; //.dw (2+0*8)
  32. .dw 10; //.dw (2+1*8)
  33. .dw 18; //.dw (2+2*8)
  34. .dw 26; //.dw (2+3*8)
  35. .dw 34; //.dw (2+4*8)