c_brcc_bp3.s 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //Original:/testcases/core/c_brcc_bp3/c_brcc_bp3.dsp
  2. // Spec Reference: brcc bp
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. imm32 r0, 0x00000000;
  7. imm32 r1, 0x00000000;
  8. imm32 r2, 0x00000000;
  9. imm32 r3, 0x00000000;
  10. imm32 r4, 0x00000000;
  11. imm32 r5, 0x00000000;
  12. imm32 r6, 0x00000000;
  13. imm32 r7, 0x00000000;
  14. begin:
  15. ASTAT = R0; // clear cc
  16. CC = ! CC; // set cc=1
  17. IF CC JUMP good1 (BP); // branch on true (should branch)
  18. R1 = 1; // if go here, error
  19. good1: IF !CC JUMP bad1 (BP); // branch on false (should not branch)
  20. JUMP.S good2; // should branch here
  21. bad1: R2 = 2; // if go here, error
  22. good2: CC = ! CC; // clear cc=0
  23. IF !CC JUMP good3 (BP); // branch on false (should branch)
  24. R3 = 3; // if go here, error
  25. good3: IF CC JUMP bad2; // branch on true (should not branch)
  26. JUMP.S end; // we're done
  27. bad2: R4 = 4; // if go here error
  28. end:
  29. CHECKREG r0, 0x00000000;
  30. CHECKREG r1, 0x00000000;
  31. CHECKREG r2, 0x00000000;
  32. CHECKREG r3, 0x00000000;
  33. CHECKREG r4, 0x00000000;
  34. CHECKREG r5, 0x00000000;
  35. CHECKREG r6, 0x00000000;
  36. CHECKREG r7, 0x00000000;
  37. pass