CompilerEmit.def 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. DEFINITION MODULE CompilerEmit ;
  2. (* Primitive 8086 emitters and patch machinery. Implementation:
  3. CompilerEmit.mod. State is in CompilerShared. *)
  4. FROM SYSTEM IMPORT BYTE ;
  5. PROCEDURE Ebyte (b : BYTE) ;
  6. PROCEDURE Eword (w : CARDINAL) ;
  7. PROCEDURE PatchWord (at, w : CARDINAL) ;
  8. PROCEDURE AddPatch (place, target : CARDINAL) ;
  9. PROCEDURE SetPatTgt (idx, t : CARDINAL) ;
  10. PROCEDURE EmCall (target : CARDINAL) : CARDINAL ;
  11. PROCEDURE EmJmpNear (target : CARDINAL) : CARDINAL ;
  12. PROCEDURE JccShort (cc : BYTE) : BYTE ;
  13. PROCEDURE JccShortInv (cc : BYTE) : BYTE ;
  14. PROCEDURE EmJcc (cc : BYTE ; target : CARDINAL) : CARDINAL ;
  15. PROCEDURE ResolvePatches () ;
  16. PROCEDURE EmMovAxi (imm : CARDINAL) ;
  17. PROCEDURE EmMovCxi (imm : CARDINAL) ;
  18. PROCEDURE EmMovBpSp () ;
  19. PROCEDURE EmMovAh0 () ;
  20. PROCEDURE EmMovAxSp () ;
  21. PROCEDURE EmMovCxSp () ;
  22. PROCEDURE EmPushAx () ;
  23. PROCEDURE EmPopCx () ;
  24. PROCEDURE EmPopDx () ;
  25. PROCEDURE EmPopSi () ;
  26. PROCEDURE EmPopAx () ;
  27. PROCEDURE EmPushBx () ;
  28. PROCEDURE EmPushCx () ;
  29. PROCEDURE EmPushDx () ;
  30. PROCEDURE EmPopBx () ;
  31. PROCEDURE EmMovAxCx () ;
  32. PROCEDURE EmMovChAl () ;
  33. PROCEDURE EmMovChImm (v : CARDINAL) ;
  34. PROCEDURE EmXchgAxCx () ;
  35. PROCEDURE EmXorAxAx () ;
  36. PROCEDURE EmAddAxCx () ;
  37. PROCEDURE EmSubAxCx () ;
  38. PROCEDURE EmMulAxCx () ;
  39. PROCEDURE EmIDivAxCx () ;
  40. PROCEDURE EmAndAxCx () ;
  41. PROCEDURE EmOrAxCx () ;
  42. PROCEDURE EmOrAxAx () ;
  43. PROCEDURE EmNegAx () ;
  44. PROCEDURE EmNotAx () ;
  45. PROCEDURE EmXorAl01 () ;
  46. PROCEDURE EmCmpAxCx () ;
  47. PROCEDURE EmCmpAxi (imm : CARDINAL) ;
  48. PROCEDURE EmSetcc (cc : BYTE) ;
  49. PROCEDURE EmRelSetcc (op : CARDINAL) ;
  50. PROCEDURE EmIncAx () ;
  51. PROCEDURE EmDecAx () ;
  52. PROCEDURE EmBpDisp (off, regf : CARDINAL) ;
  53. PROCEDURE EmBxDisp (off, regf : CARDINAL) ;
  54. PROCEDURE EmMovBxBp () ;
  55. PROCEDURE EmMovDxBp () ;
  56. PROCEDURE EmMovDxBx () ;
  57. PROCEDURE EmMovDxAx () ;
  58. PROCEDURE EmMovAxDx () ;
  59. PROCEDURE EmLdBxBx (off : CARDINAL) ;
  60. PROCEDURE EmLoadVarBx (off, nbytes : CARDINAL) ;
  61. PROCEDURE EmStoreVarBx (off, nbytes : CARDINAL) ;
  62. PROCEDURE EmLeaDiBx (off : CARDINAL) ;
  63. END CompilerEmit.