1 /* -*-C-*-
2 
3 DO NOT EDIT: this file was generated by a program.
4 
5 Copyright (C) 2012 Massachusetts Institute of Technology
6 
7 This is free software; see the source for copying conditions. There is NO
8 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9 
10 */
11 
12 /* Instructions for SVM version 1 */
13 
14 #ifndef SCM_SVM1_DEFNS_H
15 #define SCM_SVM1_DEFNS_H 1
16 
17 #define SVM1_REG_INTERPRETER_REGISTER_BLOCK 0
18 #define SVM1_REG_STACK_POINTER 1
19 #define SVM1_REG_FREE_POINTER 2
20 #define SVM1_REG_VALUE 3
21 #define SVM1_REG_DYNAMIC_LINK 4
22 
23 #define SVM1_ADDR_START_CODE 0x01
24 #define SVM1_ADDR_END_CODE 0x23
25 
26 #define SVM1_ADDR_BINDINGS(binder) \
27   binder (SVM1_ADDR_INDIR, indir); \
28   binder (SVM1_ADDR_OFFSET_S8_B, offset_s8_b); \
29   binder (SVM1_ADDR_OFFSET_S8_W, offset_s8_w); \
30   binder (SVM1_ADDR_OFFSET_S8_F, offset_s8_f); \
31   binder (SVM1_ADDR_OFFSET_S16_B, offset_s16_b); \
32   binder (SVM1_ADDR_OFFSET_S16_W, offset_s16_w); \
33   binder (SVM1_ADDR_OFFSET_S16_F, offset_s16_f); \
34   binder (SVM1_ADDR_OFFSET_S32_B, offset_s32_b); \
35   binder (SVM1_ADDR_OFFSET_S32_W, offset_s32_w); \
36   binder (SVM1_ADDR_OFFSET_S32_F, offset_s32_f); \
37   binder (SVM1_ADDR_INDEX_B_B, index_b_b); \
38   binder (SVM1_ADDR_INDEX_B_W, index_b_w); \
39   binder (SVM1_ADDR_INDEX_B_F, index_b_f); \
40   binder (SVM1_ADDR_INDEX_W_B, index_w_b); \
41   binder (SVM1_ADDR_INDEX_W_W, index_w_w); \
42   binder (SVM1_ADDR_INDEX_W_F, index_w_f); \
43   binder (SVM1_ADDR_INDEX_F_B, index_f_b); \
44   binder (SVM1_ADDR_INDEX_F_W, index_f_w); \
45   binder (SVM1_ADDR_INDEX_F_F, index_f_f); \
46   binder (SVM1_ADDR_PREDEC_B, predec_b); \
47   binder (SVM1_ADDR_PREDEC_W, predec_w); \
48   binder (SVM1_ADDR_PREDEC_F, predec_f); \
49   binder (SVM1_ADDR_PREINC_B, preinc_b); \
50   binder (SVM1_ADDR_PREINC_W, preinc_w); \
51   binder (SVM1_ADDR_PREINC_F, preinc_f); \
52   binder (SVM1_ADDR_POSTDEC_B, postdec_b); \
53   binder (SVM1_ADDR_POSTDEC_W, postdec_w); \
54   binder (SVM1_ADDR_POSTDEC_F, postdec_f); \
55   binder (SVM1_ADDR_POSTINC_B, postinc_b); \
56   binder (SVM1_ADDR_POSTINC_W, postinc_w); \
57   binder (SVM1_ADDR_POSTINC_F, postinc_f); \
58   binder (SVM1_ADDR_PCR_S8, pcr_s8); \
59   binder (SVM1_ADDR_PCR_S16, pcr_s16); \
60   binder (SVM1_ADDR_PCR_S32, pcr_s32)
61 
62 #define SVM1_ADDR_INDIR 0x01
63 #define DECODE_SVM1_ADDR_INDIR(base) \
64   DECODE_WORD_REGISTER (base)
65 
66 #define SVM1_ADDR_OFFSET_S8_B 0x02
67 #define DECODE_SVM1_ADDR_OFFSET_S8_B(base, offset) \
68   DECODE_WORD_REGISTER (base); \
69   DECODE_SIGNED_8 (offset)
70 
71 #define SVM1_ADDR_OFFSET_S8_W 0x03
72 #define DECODE_SVM1_ADDR_OFFSET_S8_W(base, offset) \
73   DECODE_WORD_REGISTER (base); \
74   DECODE_SIGNED_8 (offset)
75 
76 #define SVM1_ADDR_OFFSET_S8_F 0x04
77 #define DECODE_SVM1_ADDR_OFFSET_S8_F(base, offset) \
78   DECODE_WORD_REGISTER (base); \
79   DECODE_SIGNED_8 (offset)
80 
81 #define SVM1_ADDR_OFFSET_S16_B 0x05
82 #define DECODE_SVM1_ADDR_OFFSET_S16_B(base, offset) \
83   DECODE_WORD_REGISTER (base); \
84   DECODE_SIGNED_16 (offset)
85 
86 #define SVM1_ADDR_OFFSET_S16_W 0x06
87 #define DECODE_SVM1_ADDR_OFFSET_S16_W(base, offset) \
88   DECODE_WORD_REGISTER (base); \
89   DECODE_SIGNED_16 (offset)
90 
91 #define SVM1_ADDR_OFFSET_S16_F 0x07
92 #define DECODE_SVM1_ADDR_OFFSET_S16_F(base, offset) \
93   DECODE_WORD_REGISTER (base); \
94   DECODE_SIGNED_16 (offset)
95 
96 #define SVM1_ADDR_OFFSET_S32_B 0x08
97 #define DECODE_SVM1_ADDR_OFFSET_S32_B(base, offset) \
98   DECODE_WORD_REGISTER (base); \
99   DECODE_SIGNED_32 (offset)
100 
101 #define SVM1_ADDR_OFFSET_S32_W 0x09
102 #define DECODE_SVM1_ADDR_OFFSET_S32_W(base, offset) \
103   DECODE_WORD_REGISTER (base); \
104   DECODE_SIGNED_32 (offset)
105 
106 #define SVM1_ADDR_OFFSET_S32_F 0x0a
107 #define DECODE_SVM1_ADDR_OFFSET_S32_F(base, offset) \
108   DECODE_WORD_REGISTER (base); \
109   DECODE_SIGNED_32 (offset)
110 
111 #define SVM1_ADDR_INDEX_B_B 0x0b
112 #define DECODE_SVM1_ADDR_INDEX_B_B(base, offset, index) \
113   DECODE_WORD_REGISTER (base); \
114   DECODE_UNSIGNED_8 (offset); \
115   DECODE_WORD_REGISTER (index)
116 
117 #define SVM1_ADDR_INDEX_B_W 0x0c
118 #define DECODE_SVM1_ADDR_INDEX_B_W(base, offset, index) \
119   DECODE_WORD_REGISTER (base); \
120   DECODE_UNSIGNED_8 (offset); \
121   DECODE_WORD_REGISTER (index)
122 
123 #define SVM1_ADDR_INDEX_B_F 0x0d
124 #define DECODE_SVM1_ADDR_INDEX_B_F(base, offset, index) \
125   DECODE_WORD_REGISTER (base); \
126   DECODE_UNSIGNED_8 (offset); \
127   DECODE_WORD_REGISTER (index)
128 
129 #define SVM1_ADDR_INDEX_W_B 0x0e
130 #define DECODE_SVM1_ADDR_INDEX_W_B(base, offset, index) \
131   DECODE_WORD_REGISTER (base); \
132   DECODE_UNSIGNED_8 (offset); \
133   DECODE_WORD_REGISTER (index)
134 
135 #define SVM1_ADDR_INDEX_W_W 0x0f
136 #define DECODE_SVM1_ADDR_INDEX_W_W(base, offset, index) \
137   DECODE_WORD_REGISTER (base); \
138   DECODE_UNSIGNED_8 (offset); \
139   DECODE_WORD_REGISTER (index)
140 
141 #define SVM1_ADDR_INDEX_W_F 0x10
142 #define DECODE_SVM1_ADDR_INDEX_W_F(base, offset, index) \
143   DECODE_WORD_REGISTER (base); \
144   DECODE_UNSIGNED_8 (offset); \
145   DECODE_WORD_REGISTER (index)
146 
147 #define SVM1_ADDR_INDEX_F_B 0x11
148 #define DECODE_SVM1_ADDR_INDEX_F_B(base, offset, index) \
149   DECODE_WORD_REGISTER (base); \
150   DECODE_UNSIGNED_8 (offset); \
151   DECODE_WORD_REGISTER (index)
152 
153 #define SVM1_ADDR_INDEX_F_W 0x12
154 #define DECODE_SVM1_ADDR_INDEX_F_W(base, offset, index) \
155   DECODE_WORD_REGISTER (base); \
156   DECODE_UNSIGNED_8 (offset); \
157   DECODE_WORD_REGISTER (index)
158 
159 #define SVM1_ADDR_INDEX_F_F 0x13
160 #define DECODE_SVM1_ADDR_INDEX_F_F(base, offset, index) \
161   DECODE_WORD_REGISTER (base); \
162   DECODE_UNSIGNED_8 (offset); \
163   DECODE_WORD_REGISTER (index)
164 
165 #define SVM1_ADDR_PREDEC_B 0x14
166 #define DECODE_SVM1_ADDR_PREDEC_B(base) \
167   DECODE_WORD_REGISTER (base)
168 
169 #define SVM1_ADDR_PREDEC_W 0x15
170 #define DECODE_SVM1_ADDR_PREDEC_W(base) \
171   DECODE_WORD_REGISTER (base)
172 
173 #define SVM1_ADDR_PREDEC_F 0x16
174 #define DECODE_SVM1_ADDR_PREDEC_F(base) \
175   DECODE_WORD_REGISTER (base)
176 
177 #define SVM1_ADDR_PREINC_B 0x17
178 #define DECODE_SVM1_ADDR_PREINC_B(base) \
179   DECODE_WORD_REGISTER (base)
180 
181 #define SVM1_ADDR_PREINC_W 0x18
182 #define DECODE_SVM1_ADDR_PREINC_W(base) \
183   DECODE_WORD_REGISTER (base)
184 
185 #define SVM1_ADDR_PREINC_F 0x19
186 #define DECODE_SVM1_ADDR_PREINC_F(base) \
187   DECODE_WORD_REGISTER (base)
188 
189 #define SVM1_ADDR_POSTDEC_B 0x1a
190 #define DECODE_SVM1_ADDR_POSTDEC_B(base) \
191   DECODE_WORD_REGISTER (base)
192 
193 #define SVM1_ADDR_POSTDEC_W 0x1b
194 #define DECODE_SVM1_ADDR_POSTDEC_W(base) \
195   DECODE_WORD_REGISTER (base)
196 
197 #define SVM1_ADDR_POSTDEC_F 0x1c
198 #define DECODE_SVM1_ADDR_POSTDEC_F(base) \
199   DECODE_WORD_REGISTER (base)
200 
201 #define SVM1_ADDR_POSTINC_B 0x1d
202 #define DECODE_SVM1_ADDR_POSTINC_B(base) \
203   DECODE_WORD_REGISTER (base)
204 
205 #define SVM1_ADDR_POSTINC_W 0x1e
206 #define DECODE_SVM1_ADDR_POSTINC_W(base) \
207   DECODE_WORD_REGISTER (base)
208 
209 #define SVM1_ADDR_POSTINC_F 0x1f
210 #define DECODE_SVM1_ADDR_POSTINC_F(base) \
211   DECODE_WORD_REGISTER (base)
212 
213 #define SVM1_ADDR_PCR_S8 0x20
214 #define DECODE_SVM1_ADDR_PCR_S8(value) \
215   DECODE_SIGNED_8 (value)
216 
217 #define SVM1_ADDR_PCR_S16 0x21
218 #define DECODE_SVM1_ADDR_PCR_S16(value) \
219   DECODE_SIGNED_16 (value)
220 
221 #define SVM1_ADDR_PCR_S32 0x22
222 #define DECODE_SVM1_ADDR_PCR_S32(value) \
223   DECODE_SIGNED_32 (value)
224 
225 #define SVM1_INST_START_CODE 0x01
226 #define SVM1_INST_END_CODE 0xcc
227 
228 #define SVM1_INST_BINDINGS(binder) \
229   binder (SVM1_INST_STORE_B_WR_ADDR, store_b_wr_addr); \
230   binder (SVM1_INST_STORE_W_WR_ADDR, store_w_wr_addr); \
231   binder (SVM1_INST_STORE_F_FR_ADDR, store_f_fr_addr); \
232   binder (SVM1_INST_LOAD_B_WR_ADDR, load_b_wr_addr); \
233   binder (SVM1_INST_LOAD_W_WR_ADDR, load_w_wr_addr); \
234   binder (SVM1_INST_LOAD_F_FR_ADDR, load_f_fr_addr); \
235   binder (SVM1_INST_LOAD_ADDRESS_ADDR, load_address_addr); \
236   binder (SVM1_INST_LOAD_IMMEDIATE_WR_S8, load_immediate_wr_s8); \
237   binder (SVM1_INST_LOAD_IMMEDIATE_WR_S16, load_immediate_wr_s16); \
238   binder (SVM1_INST_LOAD_IMMEDIATE_WR_S32, load_immediate_wr_s32); \
239   binder (SVM1_INST_LOAD_IMMEDIATE_FR_FLT, load_immediate_fr_flt); \
240   binder (SVM1_INST_COPY_BLOCK_U8_W, copy_block_u8_w); \
241   binder (SVM1_INST_COPY_BLOCK_WR_W, copy_block_wr_w); \
242   binder (SVM1_INST_LOAD_NON_POINTER_TC_S8, load_non_pointer_tc_s8); \
243   binder (SVM1_INST_LOAD_NON_POINTER_WR_S8, load_non_pointer_wr_s8); \
244   binder (SVM1_INST_LOAD_NON_POINTER_TC_S16, load_non_pointer_tc_s16); \
245   binder (SVM1_INST_LOAD_NON_POINTER_WR_S16, load_non_pointer_wr_s16); \
246   binder (SVM1_INST_LOAD_NON_POINTER_TC_S32, load_non_pointer_tc_s32); \
247   binder (SVM1_INST_LOAD_NON_POINTER_WR_S32, load_non_pointer_wr_s32); \
248   binder (SVM1_INST_LOAD_NON_POINTER_TC_WR, load_non_pointer_tc_wr); \
249   binder (SVM1_INST_LOAD_NON_POINTER, load_non_pointer); \
250   binder (SVM1_INST_LOAD_POINTER_TC_WR, load_pointer_tc_wr); \
251   binder (SVM1_INST_LOAD_POINTER, load_pointer); \
252   binder (SVM1_INST_JUMP_PCR_S8, jump_pcr_s8); \
253   binder (SVM1_INST_JUMP_PCR_S16, jump_pcr_s16); \
254   binder (SVM1_INST_JUMP_PCR_S32, jump_pcr_s32); \
255   binder (SVM1_INST_JUMP_INDIR_WR, jump_indir_wr); \
256   binder (SVM1_INST_IJUMP_U8, ijump_u8); \
257   binder (SVM1_INST_IJUMP_U16, ijump_u16); \
258   binder (SVM1_INST_IJUMP_U32, ijump_u32); \
259   binder (SVM1_INST_ICALL_U8, icall_u8); \
260   binder (SVM1_INST_ICALL_U16, icall_u16); \
261   binder (SVM1_INST_ICALL_U32, icall_u32); \
262   binder (SVM1_INST_ENTER_CLOSURE, enter_closure); \
263   binder (SVM1_INST_CJUMP_EQ_WR_WR_PCR_S8, cjump_eq_wr_wr_pcr_s8); \
264   binder (SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S8, cjump_neq_wr_wr_pcr_s8); \
265   binder (SVM1_INST_CJUMP_LT_WR_WR_PCR_S8, cjump_lt_wr_wr_pcr_s8); \
266   binder (SVM1_INST_CJUMP_GE_WR_WR_PCR_S8, cjump_ge_wr_wr_pcr_s8); \
267   binder (SVM1_INST_CJUMP_GT_WR_WR_PCR_S8, cjump_gt_wr_wr_pcr_s8); \
268   binder (SVM1_INST_CJUMP_LE_WR_WR_PCR_S8, cjump_le_wr_wr_pcr_s8); \
269   binder (SVM1_INST_CJUMP_SLT_WR_WR_PCR_S8, cjump_slt_wr_wr_pcr_s8); \
270   binder (SVM1_INST_CJUMP_SGE_WR_WR_PCR_S8, cjump_sge_wr_wr_pcr_s8); \
271   binder (SVM1_INST_CJUMP_SGT_WR_WR_PCR_S8, cjump_sgt_wr_wr_pcr_s8); \
272   binder (SVM1_INST_CJUMP_SLE_WR_WR_PCR_S8, cjump_sle_wr_wr_pcr_s8); \
273   binder (SVM1_INST_CJUMP_EQ_WR_WR_PCR_S16, cjump_eq_wr_wr_pcr_s16); \
274   binder (SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S16, cjump_neq_wr_wr_pcr_s16); \
275   binder (SVM1_INST_CJUMP_LT_WR_WR_PCR_S16, cjump_lt_wr_wr_pcr_s16); \
276   binder (SVM1_INST_CJUMP_GE_WR_WR_PCR_S16, cjump_ge_wr_wr_pcr_s16); \
277   binder (SVM1_INST_CJUMP_GT_WR_WR_PCR_S16, cjump_gt_wr_wr_pcr_s16); \
278   binder (SVM1_INST_CJUMP_LE_WR_WR_PCR_S16, cjump_le_wr_wr_pcr_s16); \
279   binder (SVM1_INST_CJUMP_SLT_WR_WR_PCR_S16, cjump_slt_wr_wr_pcr_s16); \
280   binder (SVM1_INST_CJUMP_SGE_WR_WR_PCR_S16, cjump_sge_wr_wr_pcr_s16); \
281   binder (SVM1_INST_CJUMP_SGT_WR_WR_PCR_S16, cjump_sgt_wr_wr_pcr_s16); \
282   binder (SVM1_INST_CJUMP_SLE_WR_WR_PCR_S16, cjump_sle_wr_wr_pcr_s16); \
283   binder (SVM1_INST_CJUMP_EQ_WR_WR_PCR_S32, cjump_eq_wr_wr_pcr_s32); \
284   binder (SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S32, cjump_neq_wr_wr_pcr_s32); \
285   binder (SVM1_INST_CJUMP_LT_WR_WR_PCR_S32, cjump_lt_wr_wr_pcr_s32); \
286   binder (SVM1_INST_CJUMP_GE_WR_WR_PCR_S32, cjump_ge_wr_wr_pcr_s32); \
287   binder (SVM1_INST_CJUMP_GT_WR_WR_PCR_S32, cjump_gt_wr_wr_pcr_s32); \
288   binder (SVM1_INST_CJUMP_LE_WR_WR_PCR_S32, cjump_le_wr_wr_pcr_s32); \
289   binder (SVM1_INST_CJUMP_SLT_WR_WR_PCR_S32, cjump_slt_wr_wr_pcr_s32); \
290   binder (SVM1_INST_CJUMP_SGE_WR_WR_PCR_S32, cjump_sge_wr_wr_pcr_s32); \
291   binder (SVM1_INST_CJUMP_SGT_WR_WR_PCR_S32, cjump_sgt_wr_wr_pcr_s32); \
292   binder (SVM1_INST_CJUMP_SLE_WR_WR_PCR_S32, cjump_sle_wr_wr_pcr_s32); \
293   binder (SVM1_INST_CJUMP_EQ_WR_PCR_S8, cjump_eq_wr_pcr_s8); \
294   binder (SVM1_INST_CJUMP_NEQ_WR_PCR_S8, cjump_neq_wr_pcr_s8); \
295   binder (SVM1_INST_CJUMP_SLT_WR_PCR_S8, cjump_slt_wr_pcr_s8); \
296   binder (SVM1_INST_CJUMP_SGE_WR_PCR_S8, cjump_sge_wr_pcr_s8); \
297   binder (SVM1_INST_CJUMP_SGT_WR_PCR_S8, cjump_sgt_wr_pcr_s8); \
298   binder (SVM1_INST_CJUMP_SLE_WR_PCR_S8, cjump_sle_wr_pcr_s8); \
299   binder (SVM1_INST_CJUMP_EQ_WR_PCR_S16, cjump_eq_wr_pcr_s16); \
300   binder (SVM1_INST_CJUMP_NEQ_WR_PCR_S16, cjump_neq_wr_pcr_s16); \
301   binder (SVM1_INST_CJUMP_SLT_WR_PCR_S16, cjump_slt_wr_pcr_s16); \
302   binder (SVM1_INST_CJUMP_SGE_WR_PCR_S16, cjump_sge_wr_pcr_s16); \
303   binder (SVM1_INST_CJUMP_SGT_WR_PCR_S16, cjump_sgt_wr_pcr_s16); \
304   binder (SVM1_INST_CJUMP_SLE_WR_PCR_S16, cjump_sle_wr_pcr_s16); \
305   binder (SVM1_INST_CJUMP_EQ_WR_PCR_S32, cjump_eq_wr_pcr_s32); \
306   binder (SVM1_INST_CJUMP_NEQ_WR_PCR_S32, cjump_neq_wr_pcr_s32); \
307   binder (SVM1_INST_CJUMP_SLT_WR_PCR_S32, cjump_slt_wr_pcr_s32); \
308   binder (SVM1_INST_CJUMP_SGE_WR_PCR_S32, cjump_sge_wr_pcr_s32); \
309   binder (SVM1_INST_CJUMP_SGT_WR_PCR_S32, cjump_sgt_wr_pcr_s32); \
310   binder (SVM1_INST_CJUMP_SLE_WR_PCR_S32, cjump_sle_wr_pcr_s32); \
311   binder (SVM1_INST_CJUMP_FIX_WR_PCR_S8, cjump_fix_wr_pcr_s8); \
312   binder (SVM1_INST_CJUMP_NFIX_WR_PCR_S8, cjump_nfix_wr_pcr_s8); \
313   binder (SVM1_INST_CJUMP_IFIX_WR_PCR_S8, cjump_ifix_wr_pcr_s8); \
314   binder (SVM1_INST_CJUMP_NIFIX_WR_PCR_S8, cjump_nifix_wr_pcr_s8); \
315   binder (SVM1_INST_CJUMP_FIX_WR_PCR_S16, cjump_fix_wr_pcr_s16); \
316   binder (SVM1_INST_CJUMP_NFIX_WR_PCR_S16, cjump_nfix_wr_pcr_s16); \
317   binder (SVM1_INST_CJUMP_IFIX_WR_PCR_S16, cjump_ifix_wr_pcr_s16); \
318   binder (SVM1_INST_CJUMP_NIFIX_WR_PCR_S16, cjump_nifix_wr_pcr_s16); \
319   binder (SVM1_INST_CJUMP_FIX_WR_PCR_S32, cjump_fix_wr_pcr_s32); \
320   binder (SVM1_INST_CJUMP_NFIX_WR_PCR_S32, cjump_nfix_wr_pcr_s32); \
321   binder (SVM1_INST_CJUMP_IFIX_WR_PCR_S32, cjump_ifix_wr_pcr_s32); \
322   binder (SVM1_INST_CJUMP_NIFIX_WR_PCR_S32, cjump_nifix_wr_pcr_s32); \
323   binder (SVM1_INST_CJUMP_EQ_FR_FR_PCR_S8, cjump_eq_fr_fr_pcr_s8); \
324   binder (SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S8, cjump_neq_fr_fr_pcr_s8); \
325   binder (SVM1_INST_CJUMP_LT_FR_FR_PCR_S8, cjump_lt_fr_fr_pcr_s8); \
326   binder (SVM1_INST_CJUMP_GT_FR_FR_PCR_S8, cjump_gt_fr_fr_pcr_s8); \
327   binder (SVM1_INST_CJUMP_LE_FR_FR_PCR_S8, cjump_le_fr_fr_pcr_s8); \
328   binder (SVM1_INST_CJUMP_GE_FR_FR_PCR_S8, cjump_ge_fr_fr_pcr_s8); \
329   binder (SVM1_INST_CJUMP_CMP_FR_FR_PCR_S8, cjump_cmp_fr_fr_pcr_s8); \
330   binder (SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S8, cjump_ncmp_fr_fr_pcr_s8); \
331   binder (SVM1_INST_CJUMP_EQ_FR_FR_PCR_S16, cjump_eq_fr_fr_pcr_s16); \
332   binder (SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S16, cjump_neq_fr_fr_pcr_s16); \
333   binder (SVM1_INST_CJUMP_LT_FR_FR_PCR_S16, cjump_lt_fr_fr_pcr_s16); \
334   binder (SVM1_INST_CJUMP_GT_FR_FR_PCR_S16, cjump_gt_fr_fr_pcr_s16); \
335   binder (SVM1_INST_CJUMP_LE_FR_FR_PCR_S16, cjump_le_fr_fr_pcr_s16); \
336   binder (SVM1_INST_CJUMP_GE_FR_FR_PCR_S16, cjump_ge_fr_fr_pcr_s16); \
337   binder (SVM1_INST_CJUMP_CMP_FR_FR_PCR_S16, cjump_cmp_fr_fr_pcr_s16); \
338   binder (SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S16, cjump_ncmp_fr_fr_pcr_s16); \
339   binder (SVM1_INST_CJUMP_EQ_FR_FR_PCR_S32, cjump_eq_fr_fr_pcr_s32); \
340   binder (SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S32, cjump_neq_fr_fr_pcr_s32); \
341   binder (SVM1_INST_CJUMP_LT_FR_FR_PCR_S32, cjump_lt_fr_fr_pcr_s32); \
342   binder (SVM1_INST_CJUMP_GT_FR_FR_PCR_S32, cjump_gt_fr_fr_pcr_s32); \
343   binder (SVM1_INST_CJUMP_LE_FR_FR_PCR_S32, cjump_le_fr_fr_pcr_s32); \
344   binder (SVM1_INST_CJUMP_GE_FR_FR_PCR_S32, cjump_ge_fr_fr_pcr_s32); \
345   binder (SVM1_INST_CJUMP_CMP_FR_FR_PCR_S32, cjump_cmp_fr_fr_pcr_s32); \
346   binder (SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S32, cjump_ncmp_fr_fr_pcr_s32); \
347   binder (SVM1_INST_CJUMP_EQ_FR_PCR_S8, cjump_eq_fr_pcr_s8); \
348   binder (SVM1_INST_CJUMP_NEQ_FR_PCR_S8, cjump_neq_fr_pcr_s8); \
349   binder (SVM1_INST_CJUMP_LT_FR_PCR_S8, cjump_lt_fr_pcr_s8); \
350   binder (SVM1_INST_CJUMP_GT_FR_PCR_S8, cjump_gt_fr_pcr_s8); \
351   binder (SVM1_INST_CJUMP_LE_FR_PCR_S8, cjump_le_fr_pcr_s8); \
352   binder (SVM1_INST_CJUMP_GE_FR_PCR_S8, cjump_ge_fr_pcr_s8); \
353   binder (SVM1_INST_CJUMP_CMP_FR_PCR_S8, cjump_cmp_fr_pcr_s8); \
354   binder (SVM1_INST_CJUMP_NCMP_FR_PCR_S8, cjump_ncmp_fr_pcr_s8); \
355   binder (SVM1_INST_CJUMP_EQ_FR_PCR_S16, cjump_eq_fr_pcr_s16); \
356   binder (SVM1_INST_CJUMP_NEQ_FR_PCR_S16, cjump_neq_fr_pcr_s16); \
357   binder (SVM1_INST_CJUMP_LT_FR_PCR_S16, cjump_lt_fr_pcr_s16); \
358   binder (SVM1_INST_CJUMP_GT_FR_PCR_S16, cjump_gt_fr_pcr_s16); \
359   binder (SVM1_INST_CJUMP_LE_FR_PCR_S16, cjump_le_fr_pcr_s16); \
360   binder (SVM1_INST_CJUMP_GE_FR_PCR_S16, cjump_ge_fr_pcr_s16); \
361   binder (SVM1_INST_CJUMP_CMP_FR_PCR_S16, cjump_cmp_fr_pcr_s16); \
362   binder (SVM1_INST_CJUMP_NCMP_FR_PCR_S16, cjump_ncmp_fr_pcr_s16); \
363   binder (SVM1_INST_CJUMP_EQ_FR_PCR_S32, cjump_eq_fr_pcr_s32); \
364   binder (SVM1_INST_CJUMP_NEQ_FR_PCR_S32, cjump_neq_fr_pcr_s32); \
365   binder (SVM1_INST_CJUMP_LT_FR_PCR_S32, cjump_lt_fr_pcr_s32); \
366   binder (SVM1_INST_CJUMP_GT_FR_PCR_S32, cjump_gt_fr_pcr_s32); \
367   binder (SVM1_INST_CJUMP_LE_FR_PCR_S32, cjump_le_fr_pcr_s32); \
368   binder (SVM1_INST_CJUMP_GE_FR_PCR_S32, cjump_ge_fr_pcr_s32); \
369   binder (SVM1_INST_CJUMP_CMP_FR_PCR_S32, cjump_cmp_fr_pcr_s32); \
370   binder (SVM1_INST_CJUMP_NCMP_FR_PCR_S32, cjump_ncmp_fr_pcr_s32); \
371   binder (SVM1_INST_TRAP_TRAP_0, trap_trap_0); \
372   binder (SVM1_INST_TRAP_TRAP_1_WR, trap_trap_1_wr); \
373   binder (SVM1_INST_TRAP_TRAP_2_WR, trap_trap_2_wr); \
374   binder (SVM1_INST_TRAP_TRAP_3_WR, trap_trap_3_wr); \
375   binder (SVM1_INST_INTERRUPT_TEST_PROCEDURE, interrupt_test_procedure); \
376   binder (SVM1_INST_INTERRUPT_TEST_DYNAMIC_LINK, interrupt_test_dynamic_link); \
377   binder (SVM1_INST_INTERRUPT_TEST_IC_PROCEDURE, interrupt_test_ic_procedure); \
378   binder (SVM1_INST_INTERRUPT_TEST_CONTINUATION, interrupt_test_continuation); \
379   binder (SVM1_INST_FLONUM_HEADER_U8, flonum_header_u8); \
380   binder (SVM1_INST_FLONUM_HEADER_U16, flonum_header_u16); \
381   binder (SVM1_INST_FLONUM_HEADER_U32, flonum_header_u32); \
382   binder (SVM1_INST_FLONUM_HEADER, flonum_header); \
383   binder (SVM1_INST_COPY_WR, copy_wr); \
384   binder (SVM1_INST_COPY_FR, copy_fr); \
385   binder (SVM1_INST_NEGATE_WR, negate_wr); \
386   binder (SVM1_INST_NEGATE_FR, negate_fr); \
387   binder (SVM1_INST_INCREMENT_WR, increment_wr); \
388   binder (SVM1_INST_INCREMENT_FR, increment_fr); \
389   binder (SVM1_INST_DECREMENT_WR, decrement_wr); \
390   binder (SVM1_INST_DECREMENT_FR, decrement_fr); \
391   binder (SVM1_INST_ABS_WR, abs_wr); \
392   binder (SVM1_INST_ABS_FR, abs_fr); \
393   binder (SVM1_INST_OBJECT_TYPE, object_type); \
394   binder (SVM1_INST_OBJECT_DATUM, object_datum); \
395   binder (SVM1_INST_OBJECT_ADDRESS, object_address); \
396   binder (SVM1_INST_FIXNUM_TO_INTEGER, fixnum_to_integer); \
397   binder (SVM1_INST_INTEGER_TO_FIXNUM, integer_to_fixnum); \
398   binder (SVM1_INST_NOT, not); \
399   binder (SVM1_INST_FLONUM_ALIGN, flonum_align); \
400   binder (SVM1_INST_FLONUM_LENGTH, flonum_length); \
401   binder (SVM1_INST_SQRT, sqrt); \
402   binder (SVM1_INST_ROUND, round); \
403   binder (SVM1_INST_CEILING, ceiling); \
404   binder (SVM1_INST_FLOOR, floor); \
405   binder (SVM1_INST_TRUNCATE, truncate); \
406   binder (SVM1_INST_LOG, log); \
407   binder (SVM1_INST_EXP, exp); \
408   binder (SVM1_INST_COS, cos); \
409   binder (SVM1_INST_SIN, sin); \
410   binder (SVM1_INST_TAN, tan); \
411   binder (SVM1_INST_ACOS, acos); \
412   binder (SVM1_INST_ASIN, asin); \
413   binder (SVM1_INST_ATAN, atan); \
414   binder (SVM1_INST_ADD_WR, add_wr); \
415   binder (SVM1_INST_ADD_FR, add_fr); \
416   binder (SVM1_INST_SUBTRACT_WR, subtract_wr); \
417   binder (SVM1_INST_SUBTRACT_FR, subtract_fr); \
418   binder (SVM1_INST_MULTIPLY_WR, multiply_wr); \
419   binder (SVM1_INST_MULTIPLY_FR, multiply_fr); \
420   binder (SVM1_INST_PRODUCT, product); \
421   binder (SVM1_INST_QUOTIENT, quotient); \
422   binder (SVM1_INST_REMAINDER, remainder); \
423   binder (SVM1_INST_LSH, lsh); \
424   binder (SVM1_INST_AND, and); \
425   binder (SVM1_INST_ANDC, andc); \
426   binder (SVM1_INST_OR, or); \
427   binder (SVM1_INST_XOR, xor); \
428   binder (SVM1_INST_MAX_UNSIGNED, max_unsigned); \
429   binder (SVM1_INST_MIN_UNSIGNED, min_unsigned); \
430   binder (SVM1_INST_DIVIDE, divide); \
431   binder (SVM1_INST_ATAN2, atan2)
432 
433 #define SVM1_INST_STORE_B_WR_ADDR 0x01
434 #define DECODE_SVM1_INST_STORE_B_WR_ADDR(source, target) \
435   DECODE_WORD_REGISTER (source); \
436   DECODE_ADDRESS (target)
437 
438 #define SVM1_INST_STORE_W_WR_ADDR 0x02
439 #define DECODE_SVM1_INST_STORE_W_WR_ADDR(source, target) \
440   DECODE_WORD_REGISTER (source); \
441   DECODE_ADDRESS (target)
442 
443 #define SVM1_INST_STORE_F_FR_ADDR 0x03
444 #define DECODE_SVM1_INST_STORE_F_FR_ADDR(source, target) \
445   DECODE_FLOAT_REGISTER (source); \
446   DECODE_ADDRESS (target)
447 
448 #define SVM1_INST_LOAD_B_WR_ADDR 0x04
449 #define DECODE_SVM1_INST_LOAD_B_WR_ADDR(target, source) \
450   DECODE_WORD_REGISTER (target); \
451   DECODE_ADDRESS (source)
452 
453 #define SVM1_INST_LOAD_W_WR_ADDR 0x05
454 #define DECODE_SVM1_INST_LOAD_W_WR_ADDR(target, source) \
455   DECODE_WORD_REGISTER (target); \
456   DECODE_ADDRESS (source)
457 
458 #define SVM1_INST_LOAD_F_FR_ADDR 0x06
459 #define DECODE_SVM1_INST_LOAD_F_FR_ADDR(target, source) \
460   DECODE_FLOAT_REGISTER (target); \
461   DECODE_ADDRESS (source)
462 
463 #define SVM1_INST_LOAD_ADDRESS_ADDR 0x07
464 #define DECODE_SVM1_INST_LOAD_ADDRESS_ADDR(target, source) \
465   DECODE_WORD_REGISTER (target); \
466   DECODE_ADDRESS (source)
467 
468 #define SVM1_INST_LOAD_IMMEDIATE_WR_S8 0x08
469 #define DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_S8(target, value_1) \
470   DECODE_WORD_REGISTER (target); \
471   DECODE_SIGNED_8 (value_1)
472 
473 #define SVM1_INST_LOAD_IMMEDIATE_WR_S16 0x09
474 #define DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_S16(target, value_1) \
475   DECODE_WORD_REGISTER (target); \
476   DECODE_SIGNED_16 (value_1)
477 
478 #define SVM1_INST_LOAD_IMMEDIATE_WR_S32 0x0a
479 #define DECODE_SVM1_INST_LOAD_IMMEDIATE_WR_S32(target, value_1) \
480   DECODE_WORD_REGISTER (target); \
481   DECODE_SIGNED_32 (value_1)
482 
483 #define SVM1_INST_LOAD_IMMEDIATE_FR_FLT 0x0b
484 #define DECODE_SVM1_INST_LOAD_IMMEDIATE_FR_FLT(target, value) \
485   DECODE_FLOAT_REGISTER (target); \
486   DECODE_FLOAT (value)
487 
488 #define SVM1_INST_COPY_BLOCK_U8_W 0x0c
489 #define DECODE_SVM1_INST_COPY_BLOCK_U8_W(to, from, size) \
490   DECODE_WORD_REGISTER (to); \
491   DECODE_WORD_REGISTER (from); \
492   DECODE_UNSIGNED_8 (size)
493 
494 #define SVM1_INST_COPY_BLOCK_WR_W 0x0d
495 #define DECODE_SVM1_INST_COPY_BLOCK_WR_W(to, from, size) \
496   DECODE_WORD_REGISTER (to); \
497   DECODE_WORD_REGISTER (from); \
498   DECODE_WORD_REGISTER (size)
499 
500 #define SVM1_INST_LOAD_NON_POINTER_TC_S8 0x0e
501 #define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S8(target, type_1, value) \
502   DECODE_WORD_REGISTER (target); \
503   DECODE_TYPE_WORD (type_1); \
504   DECODE_SIGNED_8 (value)
505 
506 #define SVM1_INST_LOAD_NON_POINTER_WR_S8 0x0f
507 #define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S8(target, source, value) \
508   DECODE_WORD_REGISTER (target); \
509   DECODE_WORD_REGISTER (source); \
510   DECODE_SIGNED_8 (value)
511 
512 #define SVM1_INST_LOAD_NON_POINTER_TC_S16 0x10
513 #define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S16(target, type_1, value) \
514   DECODE_WORD_REGISTER (target); \
515   DECODE_TYPE_WORD (type_1); \
516   DECODE_SIGNED_16 (value)
517 
518 #define SVM1_INST_LOAD_NON_POINTER_WR_S16 0x11
519 #define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S16(target, source, value) \
520   DECODE_WORD_REGISTER (target); \
521   DECODE_WORD_REGISTER (source); \
522   DECODE_SIGNED_16 (value)
523 
524 #define SVM1_INST_LOAD_NON_POINTER_TC_S32 0x12
525 #define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S32(target, type_1, value) \
526   DECODE_WORD_REGISTER (target); \
527   DECODE_TYPE_WORD (type_1); \
528   DECODE_SIGNED_32 (value)
529 
530 #define SVM1_INST_LOAD_NON_POINTER_WR_S32 0x13
531 #define DECODE_SVM1_INST_LOAD_NON_POINTER_WR_S32(target, source, value) \
532   DECODE_WORD_REGISTER (target); \
533   DECODE_WORD_REGISTER (source); \
534   DECODE_SIGNED_32 (value)
535 
536 #define SVM1_INST_LOAD_NON_POINTER_TC_WR 0x14
537 #define DECODE_SVM1_INST_LOAD_NON_POINTER_TC_WR(target, type_1, datum) \
538   DECODE_WORD_REGISTER (target); \
539   DECODE_TYPE_WORD (type_1); \
540   DECODE_WORD_REGISTER (datum)
541 
542 #define SVM1_INST_LOAD_NON_POINTER 0x15
543 #define DECODE_SVM1_INST_LOAD_NON_POINTER(target, source, datum) \
544   DECODE_WORD_REGISTER (target); \
545   DECODE_WORD_REGISTER (source); \
546   DECODE_WORD_REGISTER (datum)
547 
548 #define SVM1_INST_LOAD_POINTER_TC_WR 0x16
549 #define DECODE_SVM1_INST_LOAD_POINTER_TC_WR(target, type_1, address) \
550   DECODE_WORD_REGISTER (target); \
551   DECODE_TYPE_WORD (type_1); \
552   DECODE_WORD_REGISTER (address)
553 
554 #define SVM1_INST_LOAD_POINTER 0x17
555 #define DECODE_SVM1_INST_LOAD_POINTER(target, source, address) \
556   DECODE_WORD_REGISTER (target); \
557   DECODE_WORD_REGISTER (source); \
558   DECODE_WORD_REGISTER (address)
559 
560 #define SVM1_INST_JUMP_PCR_S8 0x18
561 #define DECODE_SVM1_INST_JUMP_PCR_S8(value) \
562   DECODE_SIGNED_8 (value)
563 
564 #define SVM1_INST_JUMP_PCR_S16 0x19
565 #define DECODE_SVM1_INST_JUMP_PCR_S16(value) \
566   DECODE_SIGNED_16 (value)
567 
568 #define SVM1_INST_JUMP_PCR_S32 0x1a
569 #define DECODE_SVM1_INST_JUMP_PCR_S32(value) \
570   DECODE_SIGNED_32 (value)
571 
572 #define SVM1_INST_JUMP_INDIR_WR 0x1b
573 #define DECODE_SVM1_INST_JUMP_INDIR_WR(address) \
574   DECODE_WORD_REGISTER (address)
575 
576 #define SVM1_INST_IJUMP_U8 0x1c
577 #define DECODE_SVM1_INST_IJUMP_U8(value) \
578   DECODE_UNSIGNED_8 (value)
579 
580 #define SVM1_INST_IJUMP_U16 0x1d
581 #define DECODE_SVM1_INST_IJUMP_U16(value) \
582   DECODE_UNSIGNED_16 (value)
583 
584 #define SVM1_INST_IJUMP_U32 0x1e
585 #define DECODE_SVM1_INST_IJUMP_U32(value) \
586   DECODE_UNSIGNED_32 (value)
587 
588 #define SVM1_INST_ICALL_U8 0x1f
589 #define DECODE_SVM1_INST_ICALL_U8(value) \
590   DECODE_UNSIGNED_8 (value)
591 
592 #define SVM1_INST_ICALL_U16 0x20
593 #define DECODE_SVM1_INST_ICALL_U16(value) \
594   DECODE_UNSIGNED_16 (value)
595 
596 #define SVM1_INST_ICALL_U32 0x21
597 #define DECODE_SVM1_INST_ICALL_U32(value) \
598   DECODE_UNSIGNED_32 (value)
599 
600 #define SVM1_INST_ENTER_CLOSURE 0x22
601 #define DECODE_SVM1_INST_ENTER_CLOSURE(index) \
602   DECODE_UNSIGNED_16 (index)
603 
604 #define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S8 0x23
605 #define DECODE_SVM1_INST_CJUMP_EQ_WR_WR_PCR_S8(source1, source2, value) \
606   DECODE_WORD_REGISTER (source1); \
607   DECODE_WORD_REGISTER (source2); \
608   DECODE_SIGNED_8 (value)
609 
610 #define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S8 0x24
611 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S8(source1, source2, value) \
612   DECODE_WORD_REGISTER (source1); \
613   DECODE_WORD_REGISTER (source2); \
614   DECODE_SIGNED_8 (value)
615 
616 #define SVM1_INST_CJUMP_LT_WR_WR_PCR_S8 0x25
617 #define DECODE_SVM1_INST_CJUMP_LT_WR_WR_PCR_S8(source1, source2, value) \
618   DECODE_WORD_REGISTER (source1); \
619   DECODE_WORD_REGISTER (source2); \
620   DECODE_SIGNED_8 (value)
621 
622 #define SVM1_INST_CJUMP_GE_WR_WR_PCR_S8 0x26
623 #define DECODE_SVM1_INST_CJUMP_GE_WR_WR_PCR_S8(source1, source2, value) \
624   DECODE_WORD_REGISTER (source1); \
625   DECODE_WORD_REGISTER (source2); \
626   DECODE_SIGNED_8 (value)
627 
628 #define SVM1_INST_CJUMP_GT_WR_WR_PCR_S8 0x27
629 #define DECODE_SVM1_INST_CJUMP_GT_WR_WR_PCR_S8(source1, source2, value) \
630   DECODE_WORD_REGISTER (source1); \
631   DECODE_WORD_REGISTER (source2); \
632   DECODE_SIGNED_8 (value)
633 
634 #define SVM1_INST_CJUMP_LE_WR_WR_PCR_S8 0x28
635 #define DECODE_SVM1_INST_CJUMP_LE_WR_WR_PCR_S8(source1, source2, value) \
636   DECODE_WORD_REGISTER (source1); \
637   DECODE_WORD_REGISTER (source2); \
638   DECODE_SIGNED_8 (value)
639 
640 #define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S8 0x29
641 #define DECODE_SVM1_INST_CJUMP_SLT_WR_WR_PCR_S8(source1, source2, value) \
642   DECODE_WORD_REGISTER (source1); \
643   DECODE_WORD_REGISTER (source2); \
644   DECODE_SIGNED_8 (value)
645 
646 #define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S8 0x2a
647 #define DECODE_SVM1_INST_CJUMP_SGE_WR_WR_PCR_S8(source1, source2, value) \
648   DECODE_WORD_REGISTER (source1); \
649   DECODE_WORD_REGISTER (source2); \
650   DECODE_SIGNED_8 (value)
651 
652 #define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S8 0x2b
653 #define DECODE_SVM1_INST_CJUMP_SGT_WR_WR_PCR_S8(source1, source2, value) \
654   DECODE_WORD_REGISTER (source1); \
655   DECODE_WORD_REGISTER (source2); \
656   DECODE_SIGNED_8 (value)
657 
658 #define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S8 0x2c
659 #define DECODE_SVM1_INST_CJUMP_SLE_WR_WR_PCR_S8(source1, source2, value) \
660   DECODE_WORD_REGISTER (source1); \
661   DECODE_WORD_REGISTER (source2); \
662   DECODE_SIGNED_8 (value)
663 
664 #define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S16 0x2d
665 #define DECODE_SVM1_INST_CJUMP_EQ_WR_WR_PCR_S16(source1, source2, value) \
666   DECODE_WORD_REGISTER (source1); \
667   DECODE_WORD_REGISTER (source2); \
668   DECODE_SIGNED_16 (value)
669 
670 #define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S16 0x2e
671 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S16(source1, source2, value) \
672   DECODE_WORD_REGISTER (source1); \
673   DECODE_WORD_REGISTER (source2); \
674   DECODE_SIGNED_16 (value)
675 
676 #define SVM1_INST_CJUMP_LT_WR_WR_PCR_S16 0x2f
677 #define DECODE_SVM1_INST_CJUMP_LT_WR_WR_PCR_S16(source1, source2, value) \
678   DECODE_WORD_REGISTER (source1); \
679   DECODE_WORD_REGISTER (source2); \
680   DECODE_SIGNED_16 (value)
681 
682 #define SVM1_INST_CJUMP_GE_WR_WR_PCR_S16 0x30
683 #define DECODE_SVM1_INST_CJUMP_GE_WR_WR_PCR_S16(source1, source2, value) \
684   DECODE_WORD_REGISTER (source1); \
685   DECODE_WORD_REGISTER (source2); \
686   DECODE_SIGNED_16 (value)
687 
688 #define SVM1_INST_CJUMP_GT_WR_WR_PCR_S16 0x31
689 #define DECODE_SVM1_INST_CJUMP_GT_WR_WR_PCR_S16(source1, source2, value) \
690   DECODE_WORD_REGISTER (source1); \
691   DECODE_WORD_REGISTER (source2); \
692   DECODE_SIGNED_16 (value)
693 
694 #define SVM1_INST_CJUMP_LE_WR_WR_PCR_S16 0x32
695 #define DECODE_SVM1_INST_CJUMP_LE_WR_WR_PCR_S16(source1, source2, value) \
696   DECODE_WORD_REGISTER (source1); \
697   DECODE_WORD_REGISTER (source2); \
698   DECODE_SIGNED_16 (value)
699 
700 #define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S16 0x33
701 #define DECODE_SVM1_INST_CJUMP_SLT_WR_WR_PCR_S16(source1, source2, value) \
702   DECODE_WORD_REGISTER (source1); \
703   DECODE_WORD_REGISTER (source2); \
704   DECODE_SIGNED_16 (value)
705 
706 #define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S16 0x34
707 #define DECODE_SVM1_INST_CJUMP_SGE_WR_WR_PCR_S16(source1, source2, value) \
708   DECODE_WORD_REGISTER (source1); \
709   DECODE_WORD_REGISTER (source2); \
710   DECODE_SIGNED_16 (value)
711 
712 #define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S16 0x35
713 #define DECODE_SVM1_INST_CJUMP_SGT_WR_WR_PCR_S16(source1, source2, value) \
714   DECODE_WORD_REGISTER (source1); \
715   DECODE_WORD_REGISTER (source2); \
716   DECODE_SIGNED_16 (value)
717 
718 #define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S16 0x36
719 #define DECODE_SVM1_INST_CJUMP_SLE_WR_WR_PCR_S16(source1, source2, value) \
720   DECODE_WORD_REGISTER (source1); \
721   DECODE_WORD_REGISTER (source2); \
722   DECODE_SIGNED_16 (value)
723 
724 #define SVM1_INST_CJUMP_EQ_WR_WR_PCR_S32 0x37
725 #define DECODE_SVM1_INST_CJUMP_EQ_WR_WR_PCR_S32(source1, source2, value) \
726   DECODE_WORD_REGISTER (source1); \
727   DECODE_WORD_REGISTER (source2); \
728   DECODE_SIGNED_32 (value)
729 
730 #define SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S32 0x38
731 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_WR_PCR_S32(source1, source2, value) \
732   DECODE_WORD_REGISTER (source1); \
733   DECODE_WORD_REGISTER (source2); \
734   DECODE_SIGNED_32 (value)
735 
736 #define SVM1_INST_CJUMP_LT_WR_WR_PCR_S32 0x39
737 #define DECODE_SVM1_INST_CJUMP_LT_WR_WR_PCR_S32(source1, source2, value) \
738   DECODE_WORD_REGISTER (source1); \
739   DECODE_WORD_REGISTER (source2); \
740   DECODE_SIGNED_32 (value)
741 
742 #define SVM1_INST_CJUMP_GE_WR_WR_PCR_S32 0x3a
743 #define DECODE_SVM1_INST_CJUMP_GE_WR_WR_PCR_S32(source1, source2, value) \
744   DECODE_WORD_REGISTER (source1); \
745   DECODE_WORD_REGISTER (source2); \
746   DECODE_SIGNED_32 (value)
747 
748 #define SVM1_INST_CJUMP_GT_WR_WR_PCR_S32 0x3b
749 #define DECODE_SVM1_INST_CJUMP_GT_WR_WR_PCR_S32(source1, source2, value) \
750   DECODE_WORD_REGISTER (source1); \
751   DECODE_WORD_REGISTER (source2); \
752   DECODE_SIGNED_32 (value)
753 
754 #define SVM1_INST_CJUMP_LE_WR_WR_PCR_S32 0x3c
755 #define DECODE_SVM1_INST_CJUMP_LE_WR_WR_PCR_S32(source1, source2, value) \
756   DECODE_WORD_REGISTER (source1); \
757   DECODE_WORD_REGISTER (source2); \
758   DECODE_SIGNED_32 (value)
759 
760 #define SVM1_INST_CJUMP_SLT_WR_WR_PCR_S32 0x3d
761 #define DECODE_SVM1_INST_CJUMP_SLT_WR_WR_PCR_S32(source1, source2, value) \
762   DECODE_WORD_REGISTER (source1); \
763   DECODE_WORD_REGISTER (source2); \
764   DECODE_SIGNED_32 (value)
765 
766 #define SVM1_INST_CJUMP_SGE_WR_WR_PCR_S32 0x3e
767 #define DECODE_SVM1_INST_CJUMP_SGE_WR_WR_PCR_S32(source1, source2, value) \
768   DECODE_WORD_REGISTER (source1); \
769   DECODE_WORD_REGISTER (source2); \
770   DECODE_SIGNED_32 (value)
771 
772 #define SVM1_INST_CJUMP_SGT_WR_WR_PCR_S32 0x3f
773 #define DECODE_SVM1_INST_CJUMP_SGT_WR_WR_PCR_S32(source1, source2, value) \
774   DECODE_WORD_REGISTER (source1); \
775   DECODE_WORD_REGISTER (source2); \
776   DECODE_SIGNED_32 (value)
777 
778 #define SVM1_INST_CJUMP_SLE_WR_WR_PCR_S32 0x40
779 #define DECODE_SVM1_INST_CJUMP_SLE_WR_WR_PCR_S32(source1, source2, value) \
780   DECODE_WORD_REGISTER (source1); \
781   DECODE_WORD_REGISTER (source2); \
782   DECODE_SIGNED_32 (value)
783 
784 #define SVM1_INST_CJUMP_EQ_WR_PCR_S8 0x41
785 #define DECODE_SVM1_INST_CJUMP_EQ_WR_PCR_S8(source, value) \
786   DECODE_WORD_REGISTER (source); \
787   DECODE_SIGNED_8 (value)
788 
789 #define SVM1_INST_CJUMP_NEQ_WR_PCR_S8 0x42
790 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_PCR_S8(source, value) \
791   DECODE_WORD_REGISTER (source); \
792   DECODE_SIGNED_8 (value)
793 
794 #define SVM1_INST_CJUMP_SLT_WR_PCR_S8 0x43
795 #define DECODE_SVM1_INST_CJUMP_SLT_WR_PCR_S8(source, value) \
796   DECODE_WORD_REGISTER (source); \
797   DECODE_SIGNED_8 (value)
798 
799 #define SVM1_INST_CJUMP_SGE_WR_PCR_S8 0x44
800 #define DECODE_SVM1_INST_CJUMP_SGE_WR_PCR_S8(source, value) \
801   DECODE_WORD_REGISTER (source); \
802   DECODE_SIGNED_8 (value)
803 
804 #define SVM1_INST_CJUMP_SGT_WR_PCR_S8 0x45
805 #define DECODE_SVM1_INST_CJUMP_SGT_WR_PCR_S8(source, value) \
806   DECODE_WORD_REGISTER (source); \
807   DECODE_SIGNED_8 (value)
808 
809 #define SVM1_INST_CJUMP_SLE_WR_PCR_S8 0x46
810 #define DECODE_SVM1_INST_CJUMP_SLE_WR_PCR_S8(source, value) \
811   DECODE_WORD_REGISTER (source); \
812   DECODE_SIGNED_8 (value)
813 
814 #define SVM1_INST_CJUMP_EQ_WR_PCR_S16 0x47
815 #define DECODE_SVM1_INST_CJUMP_EQ_WR_PCR_S16(source, value) \
816   DECODE_WORD_REGISTER (source); \
817   DECODE_SIGNED_16 (value)
818 
819 #define SVM1_INST_CJUMP_NEQ_WR_PCR_S16 0x48
820 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_PCR_S16(source, value) \
821   DECODE_WORD_REGISTER (source); \
822   DECODE_SIGNED_16 (value)
823 
824 #define SVM1_INST_CJUMP_SLT_WR_PCR_S16 0x49
825 #define DECODE_SVM1_INST_CJUMP_SLT_WR_PCR_S16(source, value) \
826   DECODE_WORD_REGISTER (source); \
827   DECODE_SIGNED_16 (value)
828 
829 #define SVM1_INST_CJUMP_SGE_WR_PCR_S16 0x4a
830 #define DECODE_SVM1_INST_CJUMP_SGE_WR_PCR_S16(source, value) \
831   DECODE_WORD_REGISTER (source); \
832   DECODE_SIGNED_16 (value)
833 
834 #define SVM1_INST_CJUMP_SGT_WR_PCR_S16 0x4b
835 #define DECODE_SVM1_INST_CJUMP_SGT_WR_PCR_S16(source, value) \
836   DECODE_WORD_REGISTER (source); \
837   DECODE_SIGNED_16 (value)
838 
839 #define SVM1_INST_CJUMP_SLE_WR_PCR_S16 0x4c
840 #define DECODE_SVM1_INST_CJUMP_SLE_WR_PCR_S16(source, value) \
841   DECODE_WORD_REGISTER (source); \
842   DECODE_SIGNED_16 (value)
843 
844 #define SVM1_INST_CJUMP_EQ_WR_PCR_S32 0x4d
845 #define DECODE_SVM1_INST_CJUMP_EQ_WR_PCR_S32(source, value) \
846   DECODE_WORD_REGISTER (source); \
847   DECODE_SIGNED_32 (value)
848 
849 #define SVM1_INST_CJUMP_NEQ_WR_PCR_S32 0x4e
850 #define DECODE_SVM1_INST_CJUMP_NEQ_WR_PCR_S32(source, value) \
851   DECODE_WORD_REGISTER (source); \
852   DECODE_SIGNED_32 (value)
853 
854 #define SVM1_INST_CJUMP_SLT_WR_PCR_S32 0x4f
855 #define DECODE_SVM1_INST_CJUMP_SLT_WR_PCR_S32(source, value) \
856   DECODE_WORD_REGISTER (source); \
857   DECODE_SIGNED_32 (value)
858 
859 #define SVM1_INST_CJUMP_SGE_WR_PCR_S32 0x50
860 #define DECODE_SVM1_INST_CJUMP_SGE_WR_PCR_S32(source, value) \
861   DECODE_WORD_REGISTER (source); \
862   DECODE_SIGNED_32 (value)
863 
864 #define SVM1_INST_CJUMP_SGT_WR_PCR_S32 0x51
865 #define DECODE_SVM1_INST_CJUMP_SGT_WR_PCR_S32(source, value) \
866   DECODE_WORD_REGISTER (source); \
867   DECODE_SIGNED_32 (value)
868 
869 #define SVM1_INST_CJUMP_SLE_WR_PCR_S32 0x52
870 #define DECODE_SVM1_INST_CJUMP_SLE_WR_PCR_S32(source, value) \
871   DECODE_WORD_REGISTER (source); \
872   DECODE_SIGNED_32 (value)
873 
874 #define SVM1_INST_CJUMP_FIX_WR_PCR_S8 0x53
875 #define DECODE_SVM1_INST_CJUMP_FIX_WR_PCR_S8(source, value) \
876   DECODE_WORD_REGISTER (source); \
877   DECODE_SIGNED_8 (value)
878 
879 #define SVM1_INST_CJUMP_NFIX_WR_PCR_S8 0x54
880 #define DECODE_SVM1_INST_CJUMP_NFIX_WR_PCR_S8(source, value) \
881   DECODE_WORD_REGISTER (source); \
882   DECODE_SIGNED_8 (value)
883 
884 #define SVM1_INST_CJUMP_IFIX_WR_PCR_S8 0x55
885 #define DECODE_SVM1_INST_CJUMP_IFIX_WR_PCR_S8(source, value) \
886   DECODE_WORD_REGISTER (source); \
887   DECODE_SIGNED_8 (value)
888 
889 #define SVM1_INST_CJUMP_NIFIX_WR_PCR_S8 0x56
890 #define DECODE_SVM1_INST_CJUMP_NIFIX_WR_PCR_S8(source, value) \
891   DECODE_WORD_REGISTER (source); \
892   DECODE_SIGNED_8 (value)
893 
894 #define SVM1_INST_CJUMP_FIX_WR_PCR_S16 0x57
895 #define DECODE_SVM1_INST_CJUMP_FIX_WR_PCR_S16(source, value) \
896   DECODE_WORD_REGISTER (source); \
897   DECODE_SIGNED_16 (value)
898 
899 #define SVM1_INST_CJUMP_NFIX_WR_PCR_S16 0x58
900 #define DECODE_SVM1_INST_CJUMP_NFIX_WR_PCR_S16(source, value) \
901   DECODE_WORD_REGISTER (source); \
902   DECODE_SIGNED_16 (value)
903 
904 #define SVM1_INST_CJUMP_IFIX_WR_PCR_S16 0x59
905 #define DECODE_SVM1_INST_CJUMP_IFIX_WR_PCR_S16(source, value) \
906   DECODE_WORD_REGISTER (source); \
907   DECODE_SIGNED_16 (value)
908 
909 #define SVM1_INST_CJUMP_NIFIX_WR_PCR_S16 0x5a
910 #define DECODE_SVM1_INST_CJUMP_NIFIX_WR_PCR_S16(source, value) \
911   DECODE_WORD_REGISTER (source); \
912   DECODE_SIGNED_16 (value)
913 
914 #define SVM1_INST_CJUMP_FIX_WR_PCR_S32 0x5b
915 #define DECODE_SVM1_INST_CJUMP_FIX_WR_PCR_S32(source, value) \
916   DECODE_WORD_REGISTER (source); \
917   DECODE_SIGNED_32 (value)
918 
919 #define SVM1_INST_CJUMP_NFIX_WR_PCR_S32 0x5c
920 #define DECODE_SVM1_INST_CJUMP_NFIX_WR_PCR_S32(source, value) \
921   DECODE_WORD_REGISTER (source); \
922   DECODE_SIGNED_32 (value)
923 
924 #define SVM1_INST_CJUMP_IFIX_WR_PCR_S32 0x5d
925 #define DECODE_SVM1_INST_CJUMP_IFIX_WR_PCR_S32(source, value) \
926   DECODE_WORD_REGISTER (source); \
927   DECODE_SIGNED_32 (value)
928 
929 #define SVM1_INST_CJUMP_NIFIX_WR_PCR_S32 0x5e
930 #define DECODE_SVM1_INST_CJUMP_NIFIX_WR_PCR_S32(source, value) \
931   DECODE_WORD_REGISTER (source); \
932   DECODE_SIGNED_32 (value)
933 
934 #define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S8 0x5f
935 #define DECODE_SVM1_INST_CJUMP_EQ_FR_FR_PCR_S8(source1, source2, value) \
936   DECODE_FLOAT_REGISTER (source1); \
937   DECODE_FLOAT_REGISTER (source2); \
938   DECODE_SIGNED_8 (value)
939 
940 #define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S8 0x60
941 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S8(source1, source2, value) \
942   DECODE_FLOAT_REGISTER (source1); \
943   DECODE_FLOAT_REGISTER (source2); \
944   DECODE_SIGNED_8 (value)
945 
946 #define SVM1_INST_CJUMP_LT_FR_FR_PCR_S8 0x61
947 #define DECODE_SVM1_INST_CJUMP_LT_FR_FR_PCR_S8(source1, source2, value) \
948   DECODE_FLOAT_REGISTER (source1); \
949   DECODE_FLOAT_REGISTER (source2); \
950   DECODE_SIGNED_8 (value)
951 
952 #define SVM1_INST_CJUMP_GT_FR_FR_PCR_S8 0x62
953 #define DECODE_SVM1_INST_CJUMP_GT_FR_FR_PCR_S8(source1, source2, value) \
954   DECODE_FLOAT_REGISTER (source1); \
955   DECODE_FLOAT_REGISTER (source2); \
956   DECODE_SIGNED_8 (value)
957 
958 #define SVM1_INST_CJUMP_LE_FR_FR_PCR_S8 0x63
959 #define DECODE_SVM1_INST_CJUMP_LE_FR_FR_PCR_S8(source1, source2, value) \
960   DECODE_FLOAT_REGISTER (source1); \
961   DECODE_FLOAT_REGISTER (source2); \
962   DECODE_SIGNED_8 (value)
963 
964 #define SVM1_INST_CJUMP_GE_FR_FR_PCR_S8 0x64
965 #define DECODE_SVM1_INST_CJUMP_GE_FR_FR_PCR_S8(source1, source2, value) \
966   DECODE_FLOAT_REGISTER (source1); \
967   DECODE_FLOAT_REGISTER (source2); \
968   DECODE_SIGNED_8 (value)
969 
970 #define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S8 0x65
971 #define DECODE_SVM1_INST_CJUMP_CMP_FR_FR_PCR_S8(source1, source2, value) \
972   DECODE_FLOAT_REGISTER (source1); \
973   DECODE_FLOAT_REGISTER (source2); \
974   DECODE_SIGNED_8 (value)
975 
976 #define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S8 0x66
977 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S8(source1, source2, value) \
978   DECODE_FLOAT_REGISTER (source1); \
979   DECODE_FLOAT_REGISTER (source2); \
980   DECODE_SIGNED_8 (value)
981 
982 #define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S16 0x67
983 #define DECODE_SVM1_INST_CJUMP_EQ_FR_FR_PCR_S16(source1, source2, value) \
984   DECODE_FLOAT_REGISTER (source1); \
985   DECODE_FLOAT_REGISTER (source2); \
986   DECODE_SIGNED_16 (value)
987 
988 #define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S16 0x68
989 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S16(source1, source2, value) \
990   DECODE_FLOAT_REGISTER (source1); \
991   DECODE_FLOAT_REGISTER (source2); \
992   DECODE_SIGNED_16 (value)
993 
994 #define SVM1_INST_CJUMP_LT_FR_FR_PCR_S16 0x69
995 #define DECODE_SVM1_INST_CJUMP_LT_FR_FR_PCR_S16(source1, source2, value) \
996   DECODE_FLOAT_REGISTER (source1); \
997   DECODE_FLOAT_REGISTER (source2); \
998   DECODE_SIGNED_16 (value)
999 
1000 #define SVM1_INST_CJUMP_GT_FR_FR_PCR_S16 0x6a
1001 #define DECODE_SVM1_INST_CJUMP_GT_FR_FR_PCR_S16(source1, source2, value) \
1002   DECODE_FLOAT_REGISTER (source1); \
1003   DECODE_FLOAT_REGISTER (source2); \
1004   DECODE_SIGNED_16 (value)
1005 
1006 #define SVM1_INST_CJUMP_LE_FR_FR_PCR_S16 0x6b
1007 #define DECODE_SVM1_INST_CJUMP_LE_FR_FR_PCR_S16(source1, source2, value) \
1008   DECODE_FLOAT_REGISTER (source1); \
1009   DECODE_FLOAT_REGISTER (source2); \
1010   DECODE_SIGNED_16 (value)
1011 
1012 #define SVM1_INST_CJUMP_GE_FR_FR_PCR_S16 0x6c
1013 #define DECODE_SVM1_INST_CJUMP_GE_FR_FR_PCR_S16(source1, source2, value) \
1014   DECODE_FLOAT_REGISTER (source1); \
1015   DECODE_FLOAT_REGISTER (source2); \
1016   DECODE_SIGNED_16 (value)
1017 
1018 #define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S16 0x6d
1019 #define DECODE_SVM1_INST_CJUMP_CMP_FR_FR_PCR_S16(source1, source2, value) \
1020   DECODE_FLOAT_REGISTER (source1); \
1021   DECODE_FLOAT_REGISTER (source2); \
1022   DECODE_SIGNED_16 (value)
1023 
1024 #define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S16 0x6e
1025 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S16(source1, source2, value) \
1026   DECODE_FLOAT_REGISTER (source1); \
1027   DECODE_FLOAT_REGISTER (source2); \
1028   DECODE_SIGNED_16 (value)
1029 
1030 #define SVM1_INST_CJUMP_EQ_FR_FR_PCR_S32 0x6f
1031 #define DECODE_SVM1_INST_CJUMP_EQ_FR_FR_PCR_S32(source1, source2, value) \
1032   DECODE_FLOAT_REGISTER (source1); \
1033   DECODE_FLOAT_REGISTER (source2); \
1034   DECODE_SIGNED_32 (value)
1035 
1036 #define SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S32 0x70
1037 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_FR_PCR_S32(source1, source2, value) \
1038   DECODE_FLOAT_REGISTER (source1); \
1039   DECODE_FLOAT_REGISTER (source2); \
1040   DECODE_SIGNED_32 (value)
1041 
1042 #define SVM1_INST_CJUMP_LT_FR_FR_PCR_S32 0x71
1043 #define DECODE_SVM1_INST_CJUMP_LT_FR_FR_PCR_S32(source1, source2, value) \
1044   DECODE_FLOAT_REGISTER (source1); \
1045   DECODE_FLOAT_REGISTER (source2); \
1046   DECODE_SIGNED_32 (value)
1047 
1048 #define SVM1_INST_CJUMP_GT_FR_FR_PCR_S32 0x72
1049 #define DECODE_SVM1_INST_CJUMP_GT_FR_FR_PCR_S32(source1, source2, value) \
1050   DECODE_FLOAT_REGISTER (source1); \
1051   DECODE_FLOAT_REGISTER (source2); \
1052   DECODE_SIGNED_32 (value)
1053 
1054 #define SVM1_INST_CJUMP_LE_FR_FR_PCR_S32 0x73
1055 #define DECODE_SVM1_INST_CJUMP_LE_FR_FR_PCR_S32(source1, source2, value) \
1056   DECODE_FLOAT_REGISTER (source1); \
1057   DECODE_FLOAT_REGISTER (source2); \
1058   DECODE_SIGNED_32 (value)
1059 
1060 #define SVM1_INST_CJUMP_GE_FR_FR_PCR_S32 0x74
1061 #define DECODE_SVM1_INST_CJUMP_GE_FR_FR_PCR_S32(source1, source2, value) \
1062   DECODE_FLOAT_REGISTER (source1); \
1063   DECODE_FLOAT_REGISTER (source2); \
1064   DECODE_SIGNED_32 (value)
1065 
1066 #define SVM1_INST_CJUMP_CMP_FR_FR_PCR_S32 0x75
1067 #define DECODE_SVM1_INST_CJUMP_CMP_FR_FR_PCR_S32(source1, source2, value) \
1068   DECODE_FLOAT_REGISTER (source1); \
1069   DECODE_FLOAT_REGISTER (source2); \
1070   DECODE_SIGNED_32 (value)
1071 
1072 #define SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S32 0x76
1073 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_FR_PCR_S32(source1, source2, value) \
1074   DECODE_FLOAT_REGISTER (source1); \
1075   DECODE_FLOAT_REGISTER (source2); \
1076   DECODE_SIGNED_32 (value)
1077 
1078 #define SVM1_INST_CJUMP_EQ_FR_PCR_S8 0x77
1079 #define DECODE_SVM1_INST_CJUMP_EQ_FR_PCR_S8(source, value) \
1080   DECODE_FLOAT_REGISTER (source); \
1081   DECODE_SIGNED_8 (value)
1082 
1083 #define SVM1_INST_CJUMP_NEQ_FR_PCR_S8 0x78
1084 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_PCR_S8(source, value) \
1085   DECODE_FLOAT_REGISTER (source); \
1086   DECODE_SIGNED_8 (value)
1087 
1088 #define SVM1_INST_CJUMP_LT_FR_PCR_S8 0x79
1089 #define DECODE_SVM1_INST_CJUMP_LT_FR_PCR_S8(source, value) \
1090   DECODE_FLOAT_REGISTER (source); \
1091   DECODE_SIGNED_8 (value)
1092 
1093 #define SVM1_INST_CJUMP_GT_FR_PCR_S8 0x7a
1094 #define DECODE_SVM1_INST_CJUMP_GT_FR_PCR_S8(source, value) \
1095   DECODE_FLOAT_REGISTER (source); \
1096   DECODE_SIGNED_8 (value)
1097 
1098 #define SVM1_INST_CJUMP_LE_FR_PCR_S8 0x7b
1099 #define DECODE_SVM1_INST_CJUMP_LE_FR_PCR_S8(source, value) \
1100   DECODE_FLOAT_REGISTER (source); \
1101   DECODE_SIGNED_8 (value)
1102 
1103 #define SVM1_INST_CJUMP_GE_FR_PCR_S8 0x7c
1104 #define DECODE_SVM1_INST_CJUMP_GE_FR_PCR_S8(source, value) \
1105   DECODE_FLOAT_REGISTER (source); \
1106   DECODE_SIGNED_8 (value)
1107 
1108 #define SVM1_INST_CJUMP_CMP_FR_PCR_S8 0x7d
1109 #define DECODE_SVM1_INST_CJUMP_CMP_FR_PCR_S8(source, value) \
1110   DECODE_FLOAT_REGISTER (source); \
1111   DECODE_SIGNED_8 (value)
1112 
1113 #define SVM1_INST_CJUMP_NCMP_FR_PCR_S8 0x7e
1114 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_PCR_S8(source, value) \
1115   DECODE_FLOAT_REGISTER (source); \
1116   DECODE_SIGNED_8 (value)
1117 
1118 #define SVM1_INST_CJUMP_EQ_FR_PCR_S16 0x7f
1119 #define DECODE_SVM1_INST_CJUMP_EQ_FR_PCR_S16(source, value) \
1120   DECODE_FLOAT_REGISTER (source); \
1121   DECODE_SIGNED_16 (value)
1122 
1123 #define SVM1_INST_CJUMP_NEQ_FR_PCR_S16 0x80
1124 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_PCR_S16(source, value) \
1125   DECODE_FLOAT_REGISTER (source); \
1126   DECODE_SIGNED_16 (value)
1127 
1128 #define SVM1_INST_CJUMP_LT_FR_PCR_S16 0x81
1129 #define DECODE_SVM1_INST_CJUMP_LT_FR_PCR_S16(source, value) \
1130   DECODE_FLOAT_REGISTER (source); \
1131   DECODE_SIGNED_16 (value)
1132 
1133 #define SVM1_INST_CJUMP_GT_FR_PCR_S16 0x82
1134 #define DECODE_SVM1_INST_CJUMP_GT_FR_PCR_S16(source, value) \
1135   DECODE_FLOAT_REGISTER (source); \
1136   DECODE_SIGNED_16 (value)
1137 
1138 #define SVM1_INST_CJUMP_LE_FR_PCR_S16 0x83
1139 #define DECODE_SVM1_INST_CJUMP_LE_FR_PCR_S16(source, value) \
1140   DECODE_FLOAT_REGISTER (source); \
1141   DECODE_SIGNED_16 (value)
1142 
1143 #define SVM1_INST_CJUMP_GE_FR_PCR_S16 0x84
1144 #define DECODE_SVM1_INST_CJUMP_GE_FR_PCR_S16(source, value) \
1145   DECODE_FLOAT_REGISTER (source); \
1146   DECODE_SIGNED_16 (value)
1147 
1148 #define SVM1_INST_CJUMP_CMP_FR_PCR_S16 0x85
1149 #define DECODE_SVM1_INST_CJUMP_CMP_FR_PCR_S16(source, value) \
1150   DECODE_FLOAT_REGISTER (source); \
1151   DECODE_SIGNED_16 (value)
1152 
1153 #define SVM1_INST_CJUMP_NCMP_FR_PCR_S16 0x86
1154 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_PCR_S16(source, value) \
1155   DECODE_FLOAT_REGISTER (source); \
1156   DECODE_SIGNED_16 (value)
1157 
1158 #define SVM1_INST_CJUMP_EQ_FR_PCR_S32 0x87
1159 #define DECODE_SVM1_INST_CJUMP_EQ_FR_PCR_S32(source, value) \
1160   DECODE_FLOAT_REGISTER (source); \
1161   DECODE_SIGNED_32 (value)
1162 
1163 #define SVM1_INST_CJUMP_NEQ_FR_PCR_S32 0x88
1164 #define DECODE_SVM1_INST_CJUMP_NEQ_FR_PCR_S32(source, value) \
1165   DECODE_FLOAT_REGISTER (source); \
1166   DECODE_SIGNED_32 (value)
1167 
1168 #define SVM1_INST_CJUMP_LT_FR_PCR_S32 0x89
1169 #define DECODE_SVM1_INST_CJUMP_LT_FR_PCR_S32(source, value) \
1170   DECODE_FLOAT_REGISTER (source); \
1171   DECODE_SIGNED_32 (value)
1172 
1173 #define SVM1_INST_CJUMP_GT_FR_PCR_S32 0x8a
1174 #define DECODE_SVM1_INST_CJUMP_GT_FR_PCR_S32(source, value) \
1175   DECODE_FLOAT_REGISTER (source); \
1176   DECODE_SIGNED_32 (value)
1177 
1178 #define SVM1_INST_CJUMP_LE_FR_PCR_S32 0x8b
1179 #define DECODE_SVM1_INST_CJUMP_LE_FR_PCR_S32(source, value) \
1180   DECODE_FLOAT_REGISTER (source); \
1181   DECODE_SIGNED_32 (value)
1182 
1183 #define SVM1_INST_CJUMP_GE_FR_PCR_S32 0x8c
1184 #define DECODE_SVM1_INST_CJUMP_GE_FR_PCR_S32(source, value) \
1185   DECODE_FLOAT_REGISTER (source); \
1186   DECODE_SIGNED_32 (value)
1187 
1188 #define SVM1_INST_CJUMP_CMP_FR_PCR_S32 0x8d
1189 #define DECODE_SVM1_INST_CJUMP_CMP_FR_PCR_S32(source, value) \
1190   DECODE_FLOAT_REGISTER (source); \
1191   DECODE_SIGNED_32 (value)
1192 
1193 #define SVM1_INST_CJUMP_NCMP_FR_PCR_S32 0x8e
1194 #define DECODE_SVM1_INST_CJUMP_NCMP_FR_PCR_S32(source, value) \
1195   DECODE_FLOAT_REGISTER (source); \
1196   DECODE_SIGNED_32 (value)
1197 
1198 #define SVM1_INST_TRAP_TRAP_0 0x8f
1199 #define DECODE_SVM1_INST_TRAP_TRAP_0(code) \
1200   DECODE_TRAP_0 (code)
1201 
1202 #define SVM1_INST_TRAP_TRAP_1_WR 0x90
1203 #define DECODE_SVM1_INST_TRAP_TRAP_1_WR(code, arg0) \
1204   DECODE_TRAP_1 (code); \
1205   DECODE_WORD_REGISTER (arg0)
1206 
1207 #define SVM1_INST_TRAP_TRAP_2_WR 0x91
1208 #define DECODE_SVM1_INST_TRAP_TRAP_2_WR(code, arg0, arg1) \
1209   DECODE_TRAP_2 (code); \
1210   DECODE_WORD_REGISTER (arg0); \
1211   DECODE_WORD_REGISTER (arg1)
1212 
1213 #define SVM1_INST_TRAP_TRAP_3_WR 0x92
1214 #define DECODE_SVM1_INST_TRAP_TRAP_3_WR(code, arg0, arg1, arg2) \
1215   DECODE_TRAP_3 (code); \
1216   DECODE_WORD_REGISTER (arg0); \
1217   DECODE_WORD_REGISTER (arg1); \
1218   DECODE_WORD_REGISTER (arg2)
1219 
1220 #define SVM1_INST_INTERRUPT_TEST_PROCEDURE 0x93
1221 
1222 #define SVM1_INST_INTERRUPT_TEST_DYNAMIC_LINK 0x94
1223 
1224 #define SVM1_INST_INTERRUPT_TEST_IC_PROCEDURE 0x95
1225 
1226 #define SVM1_INST_INTERRUPT_TEST_CONTINUATION 0x96
1227 
1228 #define SVM1_INST_FLONUM_HEADER_U8 0x97
1229 #define DECODE_SVM1_INST_FLONUM_HEADER_U8(target, value) \
1230   DECODE_WORD_REGISTER (target); \
1231   DECODE_UNSIGNED_8 (value)
1232 
1233 #define SVM1_INST_FLONUM_HEADER_U16 0x98
1234 #define DECODE_SVM1_INST_FLONUM_HEADER_U16(target, value) \
1235   DECODE_WORD_REGISTER (target); \
1236   DECODE_UNSIGNED_16 (value)
1237 
1238 #define SVM1_INST_FLONUM_HEADER_U32 0x99
1239 #define DECODE_SVM1_INST_FLONUM_HEADER_U32(target, value) \
1240   DECODE_WORD_REGISTER (target); \
1241   DECODE_UNSIGNED_32 (value)
1242 
1243 #define SVM1_INST_FLONUM_HEADER 0x9a
1244 #define DECODE_SVM1_INST_FLONUM_HEADER(target, n_elts) \
1245   DECODE_WORD_REGISTER (target); \
1246   DECODE_WORD_REGISTER (n_elts)
1247 
1248 #define SVM1_INST_COPY_WR 0x9b
1249 #define DECODE_SVM1_INST_COPY_WR(target, source) \
1250   DECODE_WORD_REGISTER (target); \
1251   DECODE_WORD_REGISTER (source)
1252 
1253 #define SVM1_INST_COPY_FR 0x9c
1254 #define DECODE_SVM1_INST_COPY_FR(target, source) \
1255   DECODE_FLOAT_REGISTER (target); \
1256   DECODE_FLOAT_REGISTER (source)
1257 
1258 #define SVM1_INST_NEGATE_WR 0x9d
1259 #define DECODE_SVM1_INST_NEGATE_WR(target, source) \
1260   DECODE_WORD_REGISTER (target); \
1261   DECODE_WORD_REGISTER (source)
1262 
1263 #define SVM1_INST_NEGATE_FR 0x9e
1264 #define DECODE_SVM1_INST_NEGATE_FR(target, source) \
1265   DECODE_FLOAT_REGISTER (target); \
1266   DECODE_FLOAT_REGISTER (source)
1267 
1268 #define SVM1_INST_INCREMENT_WR 0x9f
1269 #define DECODE_SVM1_INST_INCREMENT_WR(target, source) \
1270   DECODE_WORD_REGISTER (target); \
1271   DECODE_WORD_REGISTER (source)
1272 
1273 #define SVM1_INST_INCREMENT_FR 0xa0
1274 #define DECODE_SVM1_INST_INCREMENT_FR(target, source) \
1275   DECODE_FLOAT_REGISTER (target); \
1276   DECODE_FLOAT_REGISTER (source)
1277 
1278 #define SVM1_INST_DECREMENT_WR 0xa1
1279 #define DECODE_SVM1_INST_DECREMENT_WR(target, source) \
1280   DECODE_WORD_REGISTER (target); \
1281   DECODE_WORD_REGISTER (source)
1282 
1283 #define SVM1_INST_DECREMENT_FR 0xa2
1284 #define DECODE_SVM1_INST_DECREMENT_FR(target, source) \
1285   DECODE_FLOAT_REGISTER (target); \
1286   DECODE_FLOAT_REGISTER (source)
1287 
1288 #define SVM1_INST_ABS_WR 0xa3
1289 #define DECODE_SVM1_INST_ABS_WR(target, source) \
1290   DECODE_WORD_REGISTER (target); \
1291   DECODE_WORD_REGISTER (source)
1292 
1293 #define SVM1_INST_ABS_FR 0xa4
1294 #define DECODE_SVM1_INST_ABS_FR(target, source) \
1295   DECODE_FLOAT_REGISTER (target); \
1296   DECODE_FLOAT_REGISTER (source)
1297 
1298 #define SVM1_INST_OBJECT_TYPE 0xa5
1299 #define DECODE_SVM1_INST_OBJECT_TYPE(target, source) \
1300   DECODE_WORD_REGISTER (target); \
1301   DECODE_WORD_REGISTER (source)
1302 
1303 #define SVM1_INST_OBJECT_DATUM 0xa6
1304 #define DECODE_SVM1_INST_OBJECT_DATUM(target, source) \
1305   DECODE_WORD_REGISTER (target); \
1306   DECODE_WORD_REGISTER (source)
1307 
1308 #define SVM1_INST_OBJECT_ADDRESS 0xa7
1309 #define DECODE_SVM1_INST_OBJECT_ADDRESS(target, source) \
1310   DECODE_WORD_REGISTER (target); \
1311   DECODE_WORD_REGISTER (source)
1312 
1313 #define SVM1_INST_FIXNUM_TO_INTEGER 0xa8
1314 #define DECODE_SVM1_INST_FIXNUM_TO_INTEGER(target, source) \
1315   DECODE_WORD_REGISTER (target); \
1316   DECODE_WORD_REGISTER (source)
1317 
1318 #define SVM1_INST_INTEGER_TO_FIXNUM 0xa9
1319 #define DECODE_SVM1_INST_INTEGER_TO_FIXNUM(target, source) \
1320   DECODE_WORD_REGISTER (target); \
1321   DECODE_WORD_REGISTER (source)
1322 
1323 #define SVM1_INST_NOT 0xaa
1324 #define DECODE_SVM1_INST_NOT(target, source) \
1325   DECODE_WORD_REGISTER (target); \
1326   DECODE_WORD_REGISTER (source)
1327 
1328 #define SVM1_INST_FLONUM_ALIGN 0xab
1329 #define DECODE_SVM1_INST_FLONUM_ALIGN(target, source) \
1330   DECODE_WORD_REGISTER (target); \
1331   DECODE_WORD_REGISTER (source)
1332 
1333 #define SVM1_INST_FLONUM_LENGTH 0xac
1334 #define DECODE_SVM1_INST_FLONUM_LENGTH(target, source) \
1335   DECODE_WORD_REGISTER (target); \
1336   DECODE_WORD_REGISTER (source)
1337 
1338 #define SVM1_INST_SQRT 0xad
1339 #define DECODE_SVM1_INST_SQRT(target, source) \
1340   DECODE_FLOAT_REGISTER (target); \
1341   DECODE_FLOAT_REGISTER (source)
1342 
1343 #define SVM1_INST_ROUND 0xae
1344 #define DECODE_SVM1_INST_ROUND(target, source) \
1345   DECODE_FLOAT_REGISTER (target); \
1346   DECODE_FLOAT_REGISTER (source)
1347 
1348 #define SVM1_INST_CEILING 0xaf
1349 #define DECODE_SVM1_INST_CEILING(target, source) \
1350   DECODE_FLOAT_REGISTER (target); \
1351   DECODE_FLOAT_REGISTER (source)
1352 
1353 #define SVM1_INST_FLOOR 0xb0
1354 #define DECODE_SVM1_INST_FLOOR(target, source) \
1355   DECODE_FLOAT_REGISTER (target); \
1356   DECODE_FLOAT_REGISTER (source)
1357 
1358 #define SVM1_INST_TRUNCATE 0xb1
1359 #define DECODE_SVM1_INST_TRUNCATE(target, source) \
1360   DECODE_FLOAT_REGISTER (target); \
1361   DECODE_FLOAT_REGISTER (source)
1362 
1363 #define SVM1_INST_LOG 0xb2
1364 #define DECODE_SVM1_INST_LOG(target, source) \
1365   DECODE_FLOAT_REGISTER (target); \
1366   DECODE_FLOAT_REGISTER (source)
1367 
1368 #define SVM1_INST_EXP 0xb3
1369 #define DECODE_SVM1_INST_EXP(target, source) \
1370   DECODE_FLOAT_REGISTER (target); \
1371   DECODE_FLOAT_REGISTER (source)
1372 
1373 #define SVM1_INST_COS 0xb4
1374 #define DECODE_SVM1_INST_COS(target, source) \
1375   DECODE_FLOAT_REGISTER (target); \
1376   DECODE_FLOAT_REGISTER (source)
1377 
1378 #define SVM1_INST_SIN 0xb5
1379 #define DECODE_SVM1_INST_SIN(target, source) \
1380   DECODE_FLOAT_REGISTER (target); \
1381   DECODE_FLOAT_REGISTER (source)
1382 
1383 #define SVM1_INST_TAN 0xb6
1384 #define DECODE_SVM1_INST_TAN(target, source) \
1385   DECODE_FLOAT_REGISTER (target); \
1386   DECODE_FLOAT_REGISTER (source)
1387 
1388 #define SVM1_INST_ACOS 0xb7
1389 #define DECODE_SVM1_INST_ACOS(target, source) \
1390   DECODE_FLOAT_REGISTER (target); \
1391   DECODE_FLOAT_REGISTER (source)
1392 
1393 #define SVM1_INST_ASIN 0xb8
1394 #define DECODE_SVM1_INST_ASIN(target, source) \
1395   DECODE_FLOAT_REGISTER (target); \
1396   DECODE_FLOAT_REGISTER (source)
1397 
1398 #define SVM1_INST_ATAN 0xb9
1399 #define DECODE_SVM1_INST_ATAN(target, source) \
1400   DECODE_FLOAT_REGISTER (target); \
1401   DECODE_FLOAT_REGISTER (source)
1402 
1403 #define SVM1_INST_ADD_WR 0xba
1404 #define DECODE_SVM1_INST_ADD_WR(target, source1, source2) \
1405   DECODE_WORD_REGISTER (target); \
1406   DECODE_WORD_REGISTER (source1); \
1407   DECODE_WORD_REGISTER (source2)
1408 
1409 #define SVM1_INST_ADD_FR 0xbb
1410 #define DECODE_SVM1_INST_ADD_FR(target, source1, source2) \
1411   DECODE_FLOAT_REGISTER (target); \
1412   DECODE_FLOAT_REGISTER (source1); \
1413   DECODE_FLOAT_REGISTER (source2)
1414 
1415 #define SVM1_INST_SUBTRACT_WR 0xbc
1416 #define DECODE_SVM1_INST_SUBTRACT_WR(target, source1, source2) \
1417   DECODE_WORD_REGISTER (target); \
1418   DECODE_WORD_REGISTER (source1); \
1419   DECODE_WORD_REGISTER (source2)
1420 
1421 #define SVM1_INST_SUBTRACT_FR 0xbd
1422 #define DECODE_SVM1_INST_SUBTRACT_FR(target, source1, source2) \
1423   DECODE_FLOAT_REGISTER (target); \
1424   DECODE_FLOAT_REGISTER (source1); \
1425   DECODE_FLOAT_REGISTER (source2)
1426 
1427 #define SVM1_INST_MULTIPLY_WR 0xbe
1428 #define DECODE_SVM1_INST_MULTIPLY_WR(target, source1, source2) \
1429   DECODE_WORD_REGISTER (target); \
1430   DECODE_WORD_REGISTER (source1); \
1431   DECODE_WORD_REGISTER (source2)
1432 
1433 #define SVM1_INST_MULTIPLY_FR 0xbf
1434 #define DECODE_SVM1_INST_MULTIPLY_FR(target, source1, source2) \
1435   DECODE_FLOAT_REGISTER (target); \
1436   DECODE_FLOAT_REGISTER (source1); \
1437   DECODE_FLOAT_REGISTER (source2)
1438 
1439 #define SVM1_INST_PRODUCT 0xc0
1440 #define DECODE_SVM1_INST_PRODUCT(target, source1, source2) \
1441   DECODE_WORD_REGISTER (target); \
1442   DECODE_WORD_REGISTER (source1); \
1443   DECODE_WORD_REGISTER (source2)
1444 
1445 #define SVM1_INST_QUOTIENT 0xc1
1446 #define DECODE_SVM1_INST_QUOTIENT(target, source1, source2) \
1447   DECODE_WORD_REGISTER (target); \
1448   DECODE_WORD_REGISTER (source1); \
1449   DECODE_WORD_REGISTER (source2)
1450 
1451 #define SVM1_INST_REMAINDER 0xc2
1452 #define DECODE_SVM1_INST_REMAINDER(target, source1, source2) \
1453   DECODE_WORD_REGISTER (target); \
1454   DECODE_WORD_REGISTER (source1); \
1455   DECODE_WORD_REGISTER (source2)
1456 
1457 #define SVM1_INST_LSH 0xc3
1458 #define DECODE_SVM1_INST_LSH(target, source1, source2) \
1459   DECODE_WORD_REGISTER (target); \
1460   DECODE_WORD_REGISTER (source1); \
1461   DECODE_WORD_REGISTER (source2)
1462 
1463 #define SVM1_INST_AND 0xc4
1464 #define DECODE_SVM1_INST_AND(target, source1, source2) \
1465   DECODE_WORD_REGISTER (target); \
1466   DECODE_WORD_REGISTER (source1); \
1467   DECODE_WORD_REGISTER (source2)
1468 
1469 #define SVM1_INST_ANDC 0xc5
1470 #define DECODE_SVM1_INST_ANDC(target, source1, source2) \
1471   DECODE_WORD_REGISTER (target); \
1472   DECODE_WORD_REGISTER (source1); \
1473   DECODE_WORD_REGISTER (source2)
1474 
1475 #define SVM1_INST_OR 0xc6
1476 #define DECODE_SVM1_INST_OR(target, source1, source2) \
1477   DECODE_WORD_REGISTER (target); \
1478   DECODE_WORD_REGISTER (source1); \
1479   DECODE_WORD_REGISTER (source2)
1480 
1481 #define SVM1_INST_XOR 0xc7
1482 #define DECODE_SVM1_INST_XOR(target, source1, source2) \
1483   DECODE_WORD_REGISTER (target); \
1484   DECODE_WORD_REGISTER (source1); \
1485   DECODE_WORD_REGISTER (source2)
1486 
1487 #define SVM1_INST_MAX_UNSIGNED 0xc8
1488 #define DECODE_SVM1_INST_MAX_UNSIGNED(target, source1, source2) \
1489   DECODE_WORD_REGISTER (target); \
1490   DECODE_WORD_REGISTER (source1); \
1491   DECODE_WORD_REGISTER (source2)
1492 
1493 #define SVM1_INST_MIN_UNSIGNED 0xc9
1494 #define DECODE_SVM1_INST_MIN_UNSIGNED(target, source1, source2) \
1495   DECODE_WORD_REGISTER (target); \
1496   DECODE_WORD_REGISTER (source1); \
1497   DECODE_WORD_REGISTER (source2)
1498 
1499 #define SVM1_INST_DIVIDE 0xca
1500 #define DECODE_SVM1_INST_DIVIDE(target, source1, source2) \
1501   DECODE_FLOAT_REGISTER (target); \
1502   DECODE_FLOAT_REGISTER (source1); \
1503   DECODE_FLOAT_REGISTER (source2)
1504 
1505 #define SVM1_INST_ATAN2 0xcb
1506 #define DECODE_SVM1_INST_ATAN2(target, source1, source2) \
1507   DECODE_FLOAT_REGISTER (target); \
1508   DECODE_FLOAT_REGISTER (source1); \
1509   DECODE_FLOAT_REGISTER (source2)
1510 
1511 #define SVM1_TRAP_0_START_CODE 0x01
1512 #define SVM1_TRAP_0_END_CODE 0x20
1513 
1514 #define SVM1_TRAP_0_BINDINGS(binder) \
1515   binder (SVM1_TRAP_0_ADD, add); \
1516   binder (SVM1_TRAP_0_DECREMENT, decrement); \
1517   binder (SVM1_TRAP_0_DIVIDE, divide); \
1518   binder (SVM1_TRAP_0_EQUAL_P, equal_p); \
1519   binder (SVM1_TRAP_0_GREATER_P, greater_p); \
1520   binder (SVM1_TRAP_0_INCREMENT, increment); \
1521   binder (SVM1_TRAP_0_LESS_P, less_p); \
1522   binder (SVM1_TRAP_0_MODULO, modulo); \
1523   binder (SVM1_TRAP_0_MULTIPLY, multiply); \
1524   binder (SVM1_TRAP_0_NEGATIVE_P, negative_p); \
1525   binder (SVM1_TRAP_0_OPERATOR_1_0, operator_1_0); \
1526   binder (SVM1_TRAP_0_OPERATOR_2_0, operator_2_0); \
1527   binder (SVM1_TRAP_0_OPERATOR_2_1, operator_2_1); \
1528   binder (SVM1_TRAP_0_OPERATOR_3_0, operator_3_0); \
1529   binder (SVM1_TRAP_0_OPERATOR_3_1, operator_3_1); \
1530   binder (SVM1_TRAP_0_OPERATOR_3_2, operator_3_2); \
1531   binder (SVM1_TRAP_0_OPERATOR_4_0, operator_4_0); \
1532   binder (SVM1_TRAP_0_OPERATOR_4_1, operator_4_1); \
1533   binder (SVM1_TRAP_0_OPERATOR_4_2, operator_4_2); \
1534   binder (SVM1_TRAP_0_OPERATOR_4_3, operator_4_3); \
1535   binder (SVM1_TRAP_0_OPERATOR_APPLY, operator_apply); \
1536   binder (SVM1_TRAP_0_OPERATOR_LEXPR, operator_lexpr); \
1537   binder (SVM1_TRAP_0_OPERATOR_LOOKUP, operator_lookup); \
1538   binder (SVM1_TRAP_0_OPERATOR_PRIMITIVE, operator_primitive); \
1539   binder (SVM1_TRAP_0_POSITIVE_P, positive_p); \
1540   binder (SVM1_TRAP_0_QUOTIENT, quotient); \
1541   binder (SVM1_TRAP_0_REFLECT_TO_INTERFACE, reflect_to_interface); \
1542   binder (SVM1_TRAP_0_REMAINDER, remainder); \
1543   binder (SVM1_TRAP_0_RETURN_TO_INTERPRETER, return_to_interpreter); \
1544   binder (SVM1_TRAP_0_SUBTRACT, subtract); \
1545   binder (SVM1_TRAP_0_ZERO_P, zero_p)
1546 
1547 #define SVM1_TRAP_0_ADD 0x01
1548 #define SVM1_TRAP_0_DECREMENT 0x02
1549 #define SVM1_TRAP_0_DIVIDE 0x03
1550 #define SVM1_TRAP_0_EQUAL_P 0x04
1551 #define SVM1_TRAP_0_GREATER_P 0x05
1552 #define SVM1_TRAP_0_INCREMENT 0x06
1553 #define SVM1_TRAP_0_LESS_P 0x07
1554 #define SVM1_TRAP_0_MODULO 0x08
1555 #define SVM1_TRAP_0_MULTIPLY 0x09
1556 #define SVM1_TRAP_0_NEGATIVE_P 0x0a
1557 #define SVM1_TRAP_0_OPERATOR_1_0 0x0b
1558 #define SVM1_TRAP_0_OPERATOR_2_0 0x0c
1559 #define SVM1_TRAP_0_OPERATOR_2_1 0x0d
1560 #define SVM1_TRAP_0_OPERATOR_3_0 0x0e
1561 #define SVM1_TRAP_0_OPERATOR_3_1 0x0f
1562 #define SVM1_TRAP_0_OPERATOR_3_2 0x10
1563 #define SVM1_TRAP_0_OPERATOR_4_0 0x11
1564 #define SVM1_TRAP_0_OPERATOR_4_1 0x12
1565 #define SVM1_TRAP_0_OPERATOR_4_2 0x13
1566 #define SVM1_TRAP_0_OPERATOR_4_3 0x14
1567 #define SVM1_TRAP_0_OPERATOR_APPLY 0x15
1568 #define SVM1_TRAP_0_OPERATOR_LEXPR 0x16
1569 #define SVM1_TRAP_0_OPERATOR_LOOKUP 0x17
1570 #define SVM1_TRAP_0_OPERATOR_PRIMITIVE 0x18
1571 #define SVM1_TRAP_0_POSITIVE_P 0x19
1572 #define SVM1_TRAP_0_QUOTIENT 0x1a
1573 #define SVM1_TRAP_0_REFLECT_TO_INTERFACE 0x1b
1574 #define SVM1_TRAP_0_REMAINDER 0x1c
1575 #define SVM1_TRAP_0_RETURN_TO_INTERPRETER 0x1d
1576 #define SVM1_TRAP_0_SUBTRACT 0x1e
1577 #define SVM1_TRAP_0_ZERO_P 0x1f
1578 
1579 #define SVM1_TRAP_1_START_CODE 0x01
1580 #define SVM1_TRAP_1_END_CODE 0x07
1581 
1582 #define SVM1_TRAP_1_BINDINGS(binder) \
1583   binder (SVM1_TRAP_1_ERROR, error); \
1584   binder (SVM1_TRAP_1_LOOKUP, lookup); \
1585   binder (SVM1_TRAP_1_PRIMITIVE_APPLY, primitive_apply); \
1586   binder (SVM1_TRAP_1_PRIMITIVE_LEXPR_APPLY, primitive_lexpr_apply); \
1587   binder (SVM1_TRAP_1_SAFE_LOOKUP, safe_lookup); \
1588   binder (SVM1_TRAP_1_UNASSIGNED_P, unassigned_p)
1589 
1590 #define SVM1_TRAP_1_ERROR 0x01
1591 #define SVM1_TRAP_1_LOOKUP 0x02
1592 #define SVM1_TRAP_1_PRIMITIVE_APPLY 0x03
1593 #define SVM1_TRAP_1_PRIMITIVE_LEXPR_APPLY 0x04
1594 #define SVM1_TRAP_1_SAFE_LOOKUP 0x05
1595 #define SVM1_TRAP_1_UNASSIGNED_P 0x06
1596 
1597 #define SVM1_TRAP_2_START_CODE 0x01
1598 #define SVM1_TRAP_2_END_CODE 0x05
1599 
1600 #define SVM1_TRAP_2_BINDINGS(binder) \
1601   binder (SVM1_TRAP_2_APPLY, apply); \
1602   binder (SVM1_TRAP_2_ASSIGNMENT, assignment); \
1603   binder (SVM1_TRAP_2_LEXPR_APPLY, lexpr_apply); \
1604   binder (SVM1_TRAP_2_PRIMITIVE_ERROR, primitive_error)
1605 
1606 #define SVM1_TRAP_2_APPLY 0x01
1607 #define SVM1_TRAP_2_ASSIGNMENT 0x02
1608 #define SVM1_TRAP_2_LEXPR_APPLY 0x03
1609 #define SVM1_TRAP_2_PRIMITIVE_ERROR 0x04
1610 
1611 #define SVM1_TRAP_3_START_CODE 0x01
1612 #define SVM1_TRAP_3_END_CODE 0x03
1613 
1614 #define SVM1_TRAP_3_BINDINGS(binder) \
1615   binder (SVM1_TRAP_3_CACHE_REFERENCE_APPLY, cache_reference_apply); \
1616   binder (SVM1_TRAP_3_LINK, link)
1617 
1618 #define SVM1_TRAP_3_CACHE_REFERENCE_APPLY 0x01
1619 #define SVM1_TRAP_3_LINK 0x02
1620 
1621 #endif /* not SCM_SVM1_DEFNS_H */
1622