ToDo.txt 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. Process (An,Dn) as 0(An,Dn)
  2. Wild optimizations? (e.g. MOVE.W #0,D0 -> CLR.W D0)
  3. (also CMP #0 -> TST, CLR.L Dn -> MOVEQ #0,Dn and maybe
  4. MOVE #0,An -> SUB An,An -- Kevin Kofler
  5. also LSL #1 -> ADD -- trazom)
  6. (MOVE.L #16,D0 -> MOVE.W #16,D0 -> MOVEQ #16,D0) ???
  7. (NOTE by Kevin Kofler: Paul Froissart's suggestion of a
  8. MOVEF instruction - see below - is a better idea).
  9. Anyway while working on the above I came up with a little wish list for A68k:
  10. 4) A jump/branch-conditional assembler op. 68000 branch (Bcc) instructions
  11. can only branch to a location +/- 32K away. What I would like to see in
  12. A68k are opcodes (i.e. JBxx) which would insert the necessary code to do
  13. a long jump if the target of the branch was greater than 32k away. This
  14. is only required for 68000 code of course since 68020's and up support
  15. 32 bit displacement. An example,
  16. JBEQ target ; branch if equal to target
  17. ; where target is a long
  18. ; way away
  19. the assembler would produce code equivalent to:
  20. BNE skip
  21. JMP target
  22. skip: ; next instruction
  23. I hope I have given you some ideas and I look forward to your next release of
  24. A68k.
  25. Cheers,
  26. Paul Gittings
  27. A GOTO directive to continue the assembly at a certain point.
  28. Add a movef pseudo-instruction :
  29. - movef #x,dn means if -128<=x<=127 then translate as moveq #x,dn otherwise
  30. translate it as move.w #x,dn (this can be done with a macro but the # has to
  31. be removed and EQU constants are not supported, only SET constants, possibly
  32. improve SET by supporting EQUs and make a SETIMM command which does not do
  33. anything if the command doesn't start with a #, and which SETs the variable
  34. otherwise, just like a SET without the #)
  35. Improve local labelling :
  36. - allow \_nxt_<label> like here :
  37. bra \_nxt_<label>
  38. Separator_label:
  39. ...
  40. \<label>
  41. where \<label> would be unreachable otherwise . Nesting (\_nxt__nxt_<label>)
  42. should be implemented, too. (Same thing with \_prv_)
  43. (Paul Froissart)
  44. * Allow to use symbols as values in -v instructions.
  45. * Improve the optimization of forward references, so it can also be applied
  46. to things as:
  47. add.l #label2-label1,a0
  48. label1: dc.b 3
  49. label2:
  50. (Currently, the ADD -> ADDQ optimization cannot be applied here. Same for
  51. ADD->LEA and LEA->ADDQ.)
  52. (Kevin Kofler)
  53. Allow multiple imports in the same expression? -- PpHd