home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / sml_nj / 93src.lha / src / vax / vaxcoder.sig < prev    next >
Encoding:
Text File  |  1993-01-27  |  2.2 KB  |  105 lines

  1. (* Copyright 1989 by AT&T Bell Laboratories *)
  2. signature VAXCODER = sig
  3.  
  4. eqtype Label
  5.  
  6. val newlabel : unit -> Label
  7.  
  8. datatype Register = reg of int
  9.  
  10. datatype EA = direct of Register
  11.         | autoinc of Register
  12.         | autodec of Register
  13.         | displace of int * Register
  14.         | deferred of int * Register
  15.         | immed of int
  16.         | immedlab of Label
  17.         | address of Label
  18.         | index of EA * Register
  19.  
  20. val r0 : Register
  21. val r1 : Register
  22. val r2 : Register
  23. val r3 : Register
  24. val r4 : Register
  25. val r5 : Register
  26. val r6 : Register
  27. val r7 : Register
  28. val r8 : Register
  29. val r9 : Register
  30. val r10 : Register
  31. val r11 : Register
  32. val r12 : Register
  33. val r13 : Register
  34. val sp : Register
  35. val pc : Register
  36.  
  37. val align : unit -> unit
  38. val mark : unit -> unit
  39. val define : Label -> unit
  40. val emitstring : string -> unit
  41. exception BadReal of string
  42. val realconst : string -> unit
  43. val emitlong : int -> unit
  44.  
  45. val emitlab : int * Label -> unit
  46.  
  47. val jne : EA -> unit
  48. val jbr : EA -> unit
  49. val bbc : EA * EA * EA -> unit
  50. val bbs : EA * EA * EA -> unit
  51. val movl : EA * EA -> unit
  52. val movq : EA * EA -> unit
  53. val movb : EA * EA -> unit
  54. val movzbl : EA * EA -> unit
  55. val moval : EA * EA -> unit
  56. val pushal : EA -> unit
  57. val rsb : unit -> unit
  58. val cmpl : EA * EA -> unit
  59. val addl2 : EA * EA -> unit
  60. val addl3 : EA * EA * EA -> unit
  61. val subl2 : EA * EA -> unit
  62. val subl3 : EA * EA * EA -> unit
  63. val bisl3 : EA * EA * EA -> unit
  64. val bicl3 : EA * EA * EA -> unit
  65. val ashl : EA * EA * EA -> unit
  66. val xorl3 : EA * EA * EA -> unit
  67. val mull2 : EA * EA -> unit
  68. val divl3 : EA * EA * EA -> unit
  69. val divl2 : EA * EA -> unit
  70. val jmp : EA -> unit
  71. val brb : EA -> unit
  72. val brw : EA -> unit
  73. val beql : EA -> unit
  74. val bneq : EA -> unit
  75. val bgeq : EA -> unit
  76. val bgtr : EA -> unit
  77. val blss : EA -> unit
  78. val bleq : EA -> unit
  79. val bgequ : EA -> unit
  80. val sobgeq : EA * EA -> unit
  81.  
  82. val movg : EA * EA -> unit
  83. val mnegg : EA * EA -> unit 
  84. val addg3 : EA * EA * EA -> unit
  85. val subg3 : EA * EA * EA -> unit
  86. val mulg3 : EA * EA * EA -> unit
  87. val divg3 : EA * EA * EA -> unit
  88. val cmpg : EA * EA -> unit
  89.  
  90. val cvtwg : EA * EA -> unit
  91.  
  92. val push : EA -> unit
  93. val pusha : EA -> unit
  94. val pop : EA -> unit
  95.  
  96. val comment : string -> unit
  97.  
  98. end (* signature CODER *)
  99.  
  100. signature VAXMCODER = 
  101. sig 
  102.     structure Coder : VAXCODER
  103.     val finish : unit -> string
  104. end
  105.