relax-7a.s 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. .h8300s
  2. # relax expected
  3. .global _start
  4. .section .text.func1,"ax",@progbits
  5. .align 1
  6. _start:
  7. sub.l er0,er0
  8. sub.l er2,er2
  9. mov.l #var3,er1
  10. mov.l @(table+4:32,er2),er2
  11. jmp @er2
  12. .section .rodata.tab,"a",@progbits
  13. .align 2
  14. table:
  15. .long .L20
  16. .long .L21
  17. .long .L22
  18. .long .L30noRelax
  19. .long .L31noRelax
  20. .long .L32noRelax
  21. .long .L100Relax
  22. .section .text.func1
  23. .L20:
  24. mov.b @(var1+1:32,er0), r2l
  25. mov.b r2l,@(var1+1:32,er0)
  26. mov.b @(1:32,er1), r2l
  27. mov.b r2l,@(1:32,er1)
  28. rts
  29. .L21:
  30. mov.w @(var2+2:32,er0), r2
  31. mov.w r2,@(var2+2:32,er0)
  32. mov.w @(2:32,er1), r2
  33. mov.w r2,@(2:32,er1)
  34. rts
  35. .L22:
  36. mov.l @(var3+4:32,er0), er2
  37. mov.l er2,@(var3+4:32,er0)
  38. mov.l @(4:32,er1), er2
  39. mov.l er2,@(4:32,er1)
  40. rts
  41. .L100Relax:
  42. mov.l #0x01007800,er0
  43. # part of MOV.L @(d:24,ERs),ERd opcode
  44. mov.w @var2+2:32,r1
  45. rts
  46. # no relax allowed:
  47. .L30noRelax:
  48. mov.b @(var4+1:32,er0), r2l
  49. mov.b r2l,@(var4+1:32,er0)
  50. mov.b @(0x8000:32,er1), r2l
  51. mov.b r2l,@(0x8000:32,er1)
  52. rts
  53. .L31noRelax:
  54. mov.w @(var5+2:32,er0), r2
  55. mov.w r2,@(var5+2:32,er0)
  56. mov.w @(0x8000:32,er1), r2
  57. mov.w r2,@(0x8000:32,er1)
  58. rts
  59. .L32noRelax:
  60. mov.l @(var6+4:32,er0), er2
  61. mov.l er2,@(var6+4:32,er0)
  62. mov.l @(0x8000:32,er1), er2
  63. mov.l er2,@(0x8000:32,er1)
  64. rts