emcode.def 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. % emcode definitions for the CEM compiler -- intermediate code
  2. C_adf(p) | arith p; | OP(op_adf), CST(p)
  3. C_adi(p) | arith p; | OP(op_adi), CST(p)
  4. C_adp(p) | arith p; | OP(op_adp), CST(p)
  5. C_ads(p) | arith p; | OP(op_ads), CST(p)
  6. C_adu(p) | arith p; | OP(op_adu), CST(p)
  7. C_and(p) | arith p; | OP(op_and), CST(p)
  8. C_asp(p) | arith p; | OP(op_asp), CST(p)
  9. C_bra(l) | label l; | OP(op_bra), CST((arith)l)
  10. C_cai() | | OP(op_cai)
  11. C_cal(p) | char *p; | OP(op_cal), PNAM(p)
  12. C_cff() | | OP(op_cff)
  13. C_cfi() | | OP(op_cfi)
  14. C_cfu() | | OP(op_cfu)
  15. C_cif() | | OP(op_cif)
  16. C_cii() | | OP(op_cii)
  17. C_ciu() | | OP(op_ciu)
  18. C_cmf(p) | arith p; | OP(op_cmf), CST(p)
  19. C_cmi(p) | arith p; | OP(op_cmi), CST(p)
  20. C_cmp() | | OP(op_cmp)
  21. C_cmu(p) | arith p; | OP(op_cmu), CST(p)
  22. C_com(p) | arith p; | OP(op_com), CST(p)
  23. C_csa(p) | arith p; | OP(op_csa), CST(p)
  24. C_csb(p) | arith p; | OP(op_csb), CST(p)
  25. C_cuf() | | OP(op_cuf)
  26. C_cui() | | OP(op_cui)
  27. C_cuu() | | OP(op_cuu)
  28. C_dup(p) | arith p; | OP(op_dup), CST(p)
  29. C_dvf(p) | arith p; | OP(op_dvf), CST(p)
  30. C_dvi(p) | arith p; | OP(op_dvi), CST(p)
  31. C_dvu(p) | arith p; | OP(op_dvu), CST(p)
  32. C_fil_dlb(l, o) | label l; arith o; | OP(op_fil), DOFF(l, o)
  33. C_ior(p) | arith p; | OP(op_ior), CST(p)
  34. C_lae_dnam(p, o) | char *p; arith o; | OP(op_lae), NOFF(p, o)
  35. C_lae_dlb(l, o) | label l; arith o; | OP(op_lae), DOFF(l, o)
  36. C_lal(p) | arith p; | OP(op_lal), CST(p)
  37. C_ldc(p) | arith p; | OP(op_ldc), DCST(p)
  38. C_lde_dnam(p, o) | char *p; arith o; | OP(op_lde), NOFF(p, o)
  39. C_lde_dlb(l, o) | label l; arith o; | OP(op_lde), DOFF(l, o)
  40. C_ldl(p) | arith p; | OP(op_ldl), CST(p)
  41. C_lfr(p) | arith p; | OP(op_lfr), CST(p)
  42. C_lin(p) | arith p; | OP(op_lin), CST(p)
  43. C_loc(p) | arith p; | OP(op_loc), CST(p)
  44. C_loe_dnam(p, o) | char *p; arith o; | OP(op_loe), NOFF(p, o)
  45. C_loe_dlb(l, o) | label l; arith o; | OP(op_loe), DOFF(l, o)
  46. C_loi(p) | arith p; | OP(op_loi), CST(p)
  47. C_lol(p) | arith p; | OP(op_lol), CST(p)
  48. C_lor(p) | arith p; | OP(op_lor), CST(p)
  49. C_lpi(p) | char *p; | OP(op_lpi), PNAM(p)
  50. C_mlf(p) | arith p; | OP(op_mlf), CST(p)
  51. C_mli(p) | arith p; | OP(op_mli), CST(p)
  52. C_mlu(p) | arith p; | OP(op_mlu), CST(p)
  53. C_ngf(p) | arith p; | OP(op_ngf), CST(p)
  54. C_ngi(p) | arith p; | OP(op_ngi), CST(p)
  55. C_ret(p) | arith p; | OP(op_ret), CST(p)
  56. C_rmi(p) | arith p; | OP(op_rmi), CST(p)
  57. C_rmu(p) | arith p; | OP(op_rmu), CST(p)
  58. C_sbf(p) | arith p; | OP(op_sbf), CST(p)
  59. C_sbi(p) | arith p; | OP(op_sbi), CST(p)
  60. C_sbs(p) | arith p; | OP(op_sbs), CST(p)
  61. C_sbu(p) | arith p; | OP(op_sbu), CST(p)
  62. C_sde_dnam(p, o) | char *p; arith o; | OP(op_sde), NOFF(p, o)
  63. C_sde_dlb(l, o) | label l; arith o; | OP(op_sde), DOFF(l, o)
  64. C_sdl(p) | arith p; | OP(op_sdl), CST(p)
  65. C_sli(p) | arith p; | OP(op_sli), CST(p)
  66. C_slu(p) | arith p; | OP(op_slu), CST(p)
  67. C_sri(p) | arith p; | OP(op_sri), CST(p)
  68. C_sru(p) | arith p; | OP(op_sru), CST(p)
  69. C_ste_dnam(p, o) | char *p; arith o; | OP(op_ste), NOFF(p, o)
  70. C_ste_dlb(l, o) | label l; arith o; | OP(op_ste), DOFF(l, o)
  71. C_sti(p) | arith p; | OP(op_sti), CST(p)
  72. C_stl(p) | arith p; | OP(op_stl), CST(p)
  73. C_xor(p) | arith p; | OP(op_xor), CST(p)
  74. C_zeq(l) | label l; | OP(op_zeq), CST((arith)l)
  75. C_zge(l) | label l; | OP(op_zge), CST((arith)l)
  76. C_zgt(l) | label l; | OP(op_zgt), CST((arith)l)
  77. C_zle(l) | label l; | OP(op_zle), CST((arith)l)
  78. C_zlt(l) | label l; | OP(op_zlt), CST((arith)l)
  79. C_zne(l) | label l; | OP(op_zne), CST((arith)l)
  80. %
  81. C_df_dlb(l) | label l; | DLB(l)
  82. C_df_dnam(s) | char *s; | DNAM(s)
  83. C_df_ilb(l) | label l; | ILB(l)
  84. %
  85. C_bss_cst(n, w, i) | arith n, w; int i; |
  86. PS(ps_bss), DCST(n), CST(w), CST((arith)i)
  87. %
  88. C_con_icon(val, siz) | char *val; arith siz; |
  89. PS(ps_con), WCON(sp_icon, val, siz), CEND()
  90. C_con_ucon(val, siz) | char *val; arith siz; |
  91. PS(ps_con), WCON(sp_ucon, val, siz), CEND()
  92. C_con_fcon(val, siz) | char *val; arith siz; |
  93. PS(ps_con), WCON(sp_fcon, val, siz), CEND()
  94. C_con_scon(str, siz) | char *str; arith siz; | PS(ps_con), CSTR(str), CEND()
  95. C_con_dnam(str, val) | char *str; arith val; |
  96. PS(ps_con), NOFF(str, val), CEND()
  97. C_con_dlb(l, val) | label l; arith val; |
  98. PS(ps_con), DOFF(l, val), CEND()
  99. C_con_pnam(str) | char *str; | PS(ps_con), PNAM(str), CEND()
  100. %
  101. C_rom_cst(l) | arith l; | PS(ps_rom), CST(l), CEND()
  102. C_rom_icon(val, siz) | char *val; arith siz; |
  103. PS(ps_rom), WCON(sp_icon, val, siz), CEND()
  104. C_rom_fcon(val, siz) | char *val; arith siz; |
  105. PS(ps_rom), WCON(sp_fcon, val, siz), CEND()
  106. C_rom_ilb(l) | label l; | PS(ps_rom), ILB(l), CEND()
  107. %
  108. C_cst(l) | arith l; | CST(l)
  109. C_icon(val, siz) | char *val; arith siz; | WCON(sp_icon, val, siz)
  110. C_ucon(val, siz) | char *val; arith siz; | WCON(sp_ucon, val, siz)
  111. C_fcon(val, siz) | char *val; arith siz; | WCON(sp_fcon, val, siz)
  112. C_scon(str, siz) | char *str; arith siz; | CSTR(str)
  113. C_dnam(str, val) | char *str; arith val; | NOFF(str, val)
  114. C_dlb(l, val) | label l; arith val; | DOFF(l, val)
  115. C_pnam(str) | char *str; | PNAM(str)
  116. C_ilb(l) | label l; | ILB(l)
  117. %
  118. C_pro_narg(p1) | char *p1; | PS(ps_pro), PNAM(p1), CEND()
  119. C_end(l) | arith l; | PS(ps_end), CST(l)
  120. %
  121. C_exa(s) | char *s; | PS(ps_exa), DNAM(s)
  122. C_exp(s) | char *s; | PS(ps_exp), PNAM(s)
  123. C_ina_pt(l) | label l; | PS(ps_ina), DLB(l)
  124. C_ina(s) | char *s; | PS(ps_ina), DNAM(s)
  125. C_inp(s) | char *s; | PS(ps_inp), PNAM(s)
  126. %
  127. C_ms_err() | | PS(ps_mes), CST((arith)ms_err), CEND()
  128. C_ms_emx(p1, p2) | arith p1, p2; |
  129. PS(ps_mes), CST((arith)ms_emx), CST(p1), CST(p2), CEND()
  130. C_ms_reg(a, b, c, d) | arith a, b; int c, d; |
  131. PS(ps_mes), CST((arith)ms_reg), CST(a), CST(b), CST((arith)c), CST((arith)d), CEND()
  132. C_ms_src(l, s) | arith l; char *s; |
  133. PS(ps_mes), CST((arith)ms_src), CST(l), CSTR(s), CEND()
  134. C_ms_flt() | | PS(ps_mes), CST((arith)ms_flt), CEND()
  135. C_ms_par(l) | arith l; | PS(ps_mes), CST((arith)ms_par), CST(l), CEND()
  136. C_ms_gto() | | PS(ps_mes), CST((arith)ms_gto), CEND()