w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

action.c
Go to the documentation of this file.
1 /* Action code -- generated by iset.tcl */
2 
3  ACTION(PUSH_x1)
4  ALSO(PUSH_x1+1)
5  ALSO(PUSH_x1+2)
6  ALSO(PUSH_x1+3)
7  ALSO(PUSH_x1+4)
8  ALSO(PUSH_x1+5)
9  ALSO(PUSH_x1+6)
10  ALSO(PUSH_x1+7)
11  ALSO(PUSH_x1+8)
12  ALSO(PUSH_x1+9)
13  ALSO(PUSH_x1+10)
14  ALSO(PUSH_x1+11)
15  pc = pc0 + 1;
16  sp--; sp[0].i = (ir-2);
18 
19  ACTION(PUSH_1)
20  pc = pc0 + 2;
21  sp--; sp[0].i = (get1(pc0+1));
22  NEXT;
23 
24  ACTION(PUSH_2)
25  pc = pc0 + 3;
26  sp--; sp[0].i = (get2(pc0+1));
27  NEXT;
28 
29  ACTION(LDKW_1)
30  pc = pc0 + 2;
31  sp--; sp[0].i = const((get1(pc0+1))).i;
32  NEXT;
33 
34  ACTION(LDKW_2)
35  pc = pc0 + 3;
36  sp--; sp[0].i = const((get2(pc0+1))).i;
37  NEXT;
38 
39  ACTION(LDKF_1)
40  pc = pc0 + 2;
41  sp--; sp[0].f = const((get1(pc0+1))).f;
42  NEXT;
43 
44  ACTION(LDKF_2)
45  pc = pc0 + 3;
46  sp--; sp[0].f = const((get2(pc0+1))).f;
47  NEXT;
48 
49  ACTION(LOCAL_x1)
50  pc = pc0 + 1;
51  sp--; sp[0].a = stkaddr(local((0)));
52  NEXT;
53 
54  ACTION(LOCAL_1)
55  pc = pc0 + 2;
56  sp--; sp[0].a = stkaddr(local((get1(pc0+1))));
57  NEXT;
58 
59  ACTION(LOCAL_2)
60  pc = pc0 + 3;
61  sp--; sp[0].a = stkaddr(local((get2(pc0+1))));
62  NEXT;
63 
64  ACTION(OFFSET)
65  pc = pc0 + 1;
66  sp[1].a = sp[1].a + sp[0].i; sp++;
67  NEXT;
68 
69  ACTION(INDEXS)
70  pc = pc0 + 1;
71  sp[1].a = sp[1].a + (sp[0].i<<1); sp++;
72  NEXT;
73 
74  ACTION(INDEXW)
75  pc = pc0 + 1;
76  sp[1].a = sp[1].a + (sp[0].i<<2); sp++;
77  NEXT;
78 
79  ACTION(INDEXD)
80  pc = pc0 + 1;
81  sp[1].a = sp[1].a + (sp[0].i<<3); sp++;
82  NEXT;
83 
84  ACTION(LOADS)
85  pc = pc0 + 1;
86  sp[0].i = load(sp[0], short);
87  NEXT;
88 
89  ACTION(LOADC)
90  pc = pc0 + 1;
91  sp[0].i = load(sp[0], uchar);
92  NEXT;
93 
94  ACTION(LOADF)
95  pc = pc0 + 1;
96  sp[0].f = load(sp[0], float);
97  NEXT;
98 
99  ACTION(STORES)
100  pc = pc0 + 1;
101  store(sp[1].i, sp[0], short); sp += 2;
102  NEXT;
103 
104  ACTION(STOREC)
105  pc = pc0 + 1;
106  store(sp[1].i, sp[0], uchar); sp += 2;
107  NEXT;
108 
109  ACTION(STOREF)
110  pc = pc0 + 1;
111  store(sp[1].f, sp[0], float); sp += 2;
112  NEXT;
113 
114  ACTION(LDLW_x1)
115  ALSO(LDLW_x1+1)
116  ALSO(LDLW_x1+2)
117  ALSO(LDLW_x1+3)
118  ALSO(LDLW_x1+4)
119  ALSO(LDLW_x1+5)
120  pc = pc0 + 1;
121  sp--; sp[0].i = ldl((ir*4-152), int);
122  NEXT;
123 
124  ACTION(LDLW_x2)
125  ALSO(LDLW_x2+1)
126  ALSO(LDLW_x2+2)
127  ALSO(LDLW_x2+3)
128  ALSO(LDLW_x2+4)
129  ALSO(LDLW_x2+5)
130  pc = pc0 + 1;
131  sp--; sp[0].i = ldl((ir*4-140), int);
132  NEXT;
133 
134  ACTION(LDLW_1)
135  pc = pc0 + 2;
136  sp--; sp[0].i = ldl((get1(pc0+1)), int);
137  NEXT;
138 
139  ACTION(LDLW_2)
140  pc = pc0 + 3;
141  sp--; sp[0].i = ldl((get2(pc0+1)), int);
142  NEXT;
143 
144  ACTION(LDLS_1)
145  pc = pc0 + 2;
146  sp--; sp[0].i = ldl((get1(pc0+1)), short);
147  NEXT;
148 
149  ACTION(LDLS_2)
150  pc = pc0 + 3;
151  sp--; sp[0].i = ldl((get2(pc0+1)), short);
152  NEXT;
153 
154  ACTION(LDLC_1)
155  pc = pc0 + 2;
156  sp--; sp[0].i = ldl((get1(pc0+1)), uchar);
157  NEXT;
158 
159  ACTION(LDLC_2)
160  pc = pc0 + 3;
161  sp--; sp[0].i = ldl((get2(pc0+1)), uchar);
162  NEXT;
163 
164  ACTION(LDLF_1)
165  pc = pc0 + 2;
166  sp--; sp[0].f = ldl((get1(pc0+1)), float);
167  NEXT;
168 
169  ACTION(LDLF_2)
170  pc = pc0 + 3;
171  sp--; sp[0].f = ldl((get2(pc0+1)), float);
172  NEXT;
173 
174  ACTION(STLW_x1)
175  ALSO(STLW_x1+1)
176  ALSO(STLW_x1+2)
177  ALSO(STLW_x1+3)
178  ALSO(STLW_x1+4)
179  ALSO(STLW_x1+5)
180  pc = pc0 + 1;
181  stl((ir*4-232), sp[0].i, int); sp += 1;
182  NEXT;
183 
184  ACTION(STLW_x2)
185  ALSO(STLW_x2+1)
186  ALSO(STLW_x2+2)
187  ALSO(STLW_x2+3)
188  ALSO(STLW_x2+4)
189  ALSO(STLW_x2+5)
190  pc = pc0 + 1;
191  stl((ir*4-220), sp[0].i, int); sp += 1;
192  NEXT;
193 
194  ACTION(STLW_1)
195  pc = pc0 + 2;
196  stl((get1(pc0+1)), sp[0].i, int); sp += 1;
197  NEXT;
198 
199  ACTION(STLW_2)
200  pc = pc0 + 3;
201  stl((get2(pc0+1)), sp[0].i, int); sp += 1;
202  NEXT;
203 
204  ACTION(STLS_1)
205  pc = pc0 + 2;
206  stl((get1(pc0+1)), sp[0].i, short); sp += 1;
207  NEXT;
208 
209  ACTION(STLS_2)
210  pc = pc0 + 3;
211  stl((get2(pc0+1)), sp[0].i, short); sp += 1;
212  NEXT;
213 
214  ACTION(STLC_1)
215  pc = pc0 + 2;
216  stl((get1(pc0+1)), sp[0].i, uchar); sp += 1;
217  NEXT;
218 
219  ACTION(STLC_2)
220  pc = pc0 + 3;
221  stl((get2(pc0+1)), sp[0].i, uchar); sp += 1;
222  NEXT;
223 
224  ACTION(STLF_1)
225  pc = pc0 + 2;
226  stl((get1(pc0+1)), sp[0].f, float); sp += 1;
227  NEXT;
228 
229  ACTION(STLF_2)
230  pc = pc0 + 3;
231  stl((get2(pc0+1)), sp[0].f, float); sp += 1;
232  NEXT;
233 
234  ACTION(LDGW_K)
235  pc = pc0 + 2;
236  sp--; sp[0].i = ldg((get1(pc0+1)), int);
237  NEXT;
238 
239  ACTION(LDGW_L)
240  pc = pc0 + 3;
241  sp--; sp[0].i = ldg((get2(pc0+1)), int);
242  NEXT;
243 
244  ACTION(LDGS_K)
245  pc = pc0 + 2;
246  sp--; sp[0].i = ldg((get1(pc0+1)), short);
247  NEXT;
248 
249  ACTION(LDGS_L)
250  pc = pc0 + 3;
251  sp--; sp[0].i = ldg((get2(pc0+1)), short);
252  NEXT;
253 
254  ACTION(LDGC_K)
255  pc = pc0 + 2;
256  sp--; sp[0].i = ldg((get1(pc0+1)), uchar);
257  NEXT;
258 
259  ACTION(LDGC_L)
260  pc = pc0 + 3;
261  sp--; sp[0].i = ldg((get2(pc0+1)), uchar);
262  NEXT;
263 
264  ACTION(LDGF_K)
265  pc = pc0 + 2;
266  sp--; sp[0].f = ldg((get1(pc0+1)), float);
267  NEXT;
268 
269  ACTION(LDGF_L)
270  pc = pc0 + 3;
271  sp--; sp[0].f = ldg((get2(pc0+1)), float);
272  NEXT;
273 
274  ACTION(STGW_K)
275  pc = pc0 + 2;
276  stg((get1(pc0+1)), sp[0].i, int); sp += 1;
277  NEXT;
278 
279  ACTION(STGW_L)
280  pc = pc0 + 3;
281  stg((get2(pc0+1)), sp[0].i, int); sp += 1;
282  NEXT;
283 
284  ACTION(STGS_K)
285  pc = pc0 + 2;
286  stg((get1(pc0+1)), sp[0].i, short); sp += 1;
287  NEXT;
288 
289  ACTION(STGS_L)
290  pc = pc0 + 3;
291  stg((get2(pc0+1)), sp[0].i, short); sp += 1;
292  NEXT;
293 
294  ACTION(STGC_K)
295  pc = pc0 + 2;
296  stg((get1(pc0+1)), sp[0].i, uchar); sp += 1;
297  NEXT;
298 
299  ACTION(STGC_L)
300  pc = pc0 + 3;
301  stg((get2(pc0+1)), sp[0].i, uchar); sp += 1;
302  NEXT;
303 
304  ACTION(STGF_K)
305  pc = pc0 + 2;
306  stg((get1(pc0+1)), sp[0].f, float); sp += 1;
307  NEXT;
308 
309  ACTION(STGF_L)
310  pc = pc0 + 3;
311  stg((get2(pc0+1)), sp[0].f, float); sp += 1;
312  NEXT;
313 
314  ACTION(LDNW_x1)
315  ALSO(LDNW_x1+1)
316  ALSO(LDNW_x1+2)
317  ALSO(LDNW_x1+3)
318  ALSO(LDNW_x1+4)
319  ALSO(LDNW_x1+5)
320  ALSO(LDNW_x1+6)
321  ALSO(LDNW_x1+7)
322  ALSO(LDNW_x1+8)
323  ALSO(LDNW_x1+9)
324  ALSO(LDNW_x1+10)
325  ALSO(LDNW_x1+11)
326  ALSO(LDNW_x1+12)
327  pc = pc0 + 1;
328  sp[0].i = ldn((ir*4-368), sp[0]);
329  NEXT;
330 
331  ACTION(LDNW_1)
332  pc = pc0 + 2;
333  sp[0].i = ldn((get1(pc0+1)), sp[0]);
334  NEXT;
335 
336  ACTION(LDNW_2)
337  pc = pc0 + 3;
338  sp[0].i = ldn((get2(pc0+1)), sp[0]);
339  NEXT;
340 
341  ACTION(STNW_x1)
342  ALSO(STNW_x1+1)
343  ALSO(STNW_x1+2)
344  ALSO(STNW_x1+3)
345  ALSO(STNW_x1+4)
346  ALSO(STNW_x1+5)
347  ALSO(STNW_x1+6)
348  ALSO(STNW_x1+7)
349  ALSO(STNW_x1+8)
350  ALSO(STNW_x1+9)
351  ALSO(STNW_x1+10)
352  ALSO(STNW_x1+11)
353  ALSO(STNW_x1+12)
354  pc = pc0 + 1;
355  stn((ir*4-428), sp[1].i, sp[0]); sp += 2;
356  NEXT;
357 
358  ACTION(STNW_1)
359  pc = pc0 + 2;
360  stn((get1(pc0+1)), sp[1].i, sp[0]); sp += 2;
361  NEXT;
362 
363  ACTION(STNW_2)
364  pc = pc0 + 3;
365  stn((get2(pc0+1)), sp[1].i, sp[0]); sp += 2;
366  NEXT;
367 
368  ACTION(LDIW)
369  pc = pc0 + 1;
370  sp[1].i = ldi(sp[1], sp[0], int); sp++;
371  NEXT;
372 
373  ACTION(LDIS)
374  pc = pc0 + 1;
375  sp[1].i = ldi(sp[1], sp[0], short); sp++;
376  NEXT;
377 
378  ACTION(LDIC)
379  pc = pc0 + 1;
380  sp[1].i = ldi(sp[1], sp[0], uchar); sp++;
381  NEXT;
382 
383  ACTION(LDIF)
384  pc = pc0 + 1;
385  sp[1].f = ldi(sp[1], sp[0], float); sp++;
386  NEXT;
387 
388  ACTION(STIW)
389  pc = pc0 + 1;
390  sti(sp[2].i, sp[1], sp[0], int); sp += 3;
391  NEXT;
392 
393  ACTION(STIS)
394  pc = pc0 + 1;
395  sti(sp[2].i, sp[1], sp[0], short); sp += 3;
396  NEXT;
397 
398  ACTION(STIC)
399  pc = pc0 + 1;
400  sti(sp[2].i, sp[1], sp[0], uchar); sp += 3;
401  NEXT;
402 
403  ACTION(STIF)
404  pc = pc0 + 1;
405  sti(sp[2].f, sp[1], sp[0], float); sp += 3;
406  NEXT;
407 
408  ACTION(LOADD)
409  pc = pc0 + 1;
410  sp--; putdbl(&sp[0], getdbl(valptr(sp[1])));
411  NEXT;
412 
413  ACTION(STORED)
414  pc = pc0 + 1;
415  putdbl(valptr(sp[0]), getdbl(&sp[1])); sp += 3;
416  NEXT;
417 
418  ACTION(LDKD_1)
419  pc = pc0 + 2;
420  sp -= 2; putdbl(&sp[0], getdbl(&const((get1(pc0+1)))));
421  NEXT;
422 
423  ACTION(LDKD_2)
424  pc = pc0 + 3;
425  sp -= 2; putdbl(&sp[0], getdbl(&const((get2(pc0+1)))));
426  NEXT;
427 
428  ACTION(LOADQ)
429  pc = pc0 + 1;
430  sp--; putlong(&sp[0], getlong(valptr(sp[1])));
431  NEXT;
432 
433  ACTION(STOREQ)
434  pc = pc0 + 1;
435  putlong(valptr(sp[0]), getlong(&sp[1])); sp += 3;
436  NEXT;
437 
438  ACTION(LDKQ_1)
439  pc = pc0 + 2;
440  sp -= 2; putlong(&sp[0], getlong(&const((get1(pc0+1)))));
441  NEXT;
442 
443  ACTION(LDKQ_2)
444  pc = pc0 + 3;
445  sp -= 2; putlong(&sp[0], getlong(&const((get2(pc0+1)))));
446  NEXT;
447 
448  ACTION(INCL_1)
449  pc = pc0 + 2;
450  { indir(local((get1(pc0+1))), int)++; }
451  NEXT;
452 
453  ACTION(DECL_1)
454  pc = pc0 + 2;
455  { indir(local((get1(pc0+1))), int)--; }
456  NEXT;
457 
458  ACTION(DUP)
459  ALSO(DUP+1)
460  ALSO(DUP+2)
461  pc = pc0 + 1;
462  { dup((ir-136), sp); }
463  NEXT;
464 
465  ACTION(SWAP)
466  pc = pc0 + 1;
467  { swap(sp); }
468  NEXT;
469 
470  ACTION(POP_1)
471  pc = pc0 + 2;
472  { sp += (get1(pc0+1)); }
473  NEXT;
474 
475  ACTION(PLUS)
476  pc = pc0 + 1;
477  sp[1].i = sp[1].i + sp[0].i; sp++;
478  NEXT;
479 
480  ACTION(MINUS)
481  pc = pc0 + 1;
482  sp[1].i = sp[1].i - sp[0].i; sp++;
483  NEXT;
484 
485  ACTION(TIMES)
486  pc = pc0 + 1;
487  sp[1].i = sp[1].i * sp[0].i; sp++;
488  NEXT;
489 
490  ACTION(UMINUS)
491  pc = pc0 + 1;
492  sp[0].i = - sp[0].i;
493  NEXT;
494 
495  ACTION(AND)
496  pc = pc0 + 1;
497  sp[1].i = sp[1].i && sp[0].i; sp++;
498  NEXT;
499 
500  ACTION(OR)
501  pc = pc0 + 1;
502  sp[1].i = sp[1].i || sp[0].i; sp++;
503  NEXT;
504 
505  ACTION(NOT)
506  pc = pc0 + 1;
507  sp[0].i = ! sp[0].i;
508  NEXT;
509 
510  ACTION(INC)
511  pc = pc0 + 1;
512  sp[0].i = sp[0].i + 1;
513  NEXT;
514 
515  ACTION(DEC)
516  pc = pc0 + 1;
517  sp[0].i = sp[0].i - 1;
518  NEXT;
519 
520  ACTION(BITAND)
521  pc = pc0 + 1;
522  sp[1].i = sp[1].i & sp[0].i; sp++;
523  NEXT;
524 
525  ACTION(BITOR)
526  pc = pc0 + 1;
527  sp[1].i = sp[1].i | sp[0].i; sp++;
528  NEXT;
529 
530  ACTION(BITXOR)
531  pc = pc0 + 1;
532  sp[1].i = sp[1].i ^ sp[0].i; sp++;
533  NEXT;
534 
535  ACTION(BITNOT)
536  pc = pc0 + 1;
537  sp[0].i = ~~ sp[0].i;
538  NEXT;
539 
540  ACTION(LSL)
541  pc = pc0 + 1;
542  sp[1].i = sp[1].i << sp[0].i; sp++;
543  NEXT;
544 
545  ACTION(LSR)
546  pc = pc0 + 1;
547  sp[1].i = (unsigned) sp[1].i>>sp[0].i; sp++;
548  NEXT;
549 
550  ACTION(ASR)
551  pc = pc0 + 1;
552  sp[1].i = sp[1].i >> sp[0].i; sp++;
553  NEXT;
554 
555  ACTION(ROR)
556  pc = pc0 + 1;
557  sp[1].i = ror(sp[1].i, sp[0].i); sp++;
558  NEXT;
559 
560  ACTION(DIV)
561  pc = pc0 + 1;
562  int_div(sp); sp++;
563  NEXT;
564 
565  ACTION(MOD)
566  pc = pc0 + 1;
567  int_mod(sp); sp++;
568  NEXT;
569 
570  ACTION(EQ)
571  pc = pc0 + 1;
572  sp[1].i = sp[1].i == sp[0].i; sp++;
573  NEXT;
574 
575  ACTION(LT)
576  pc = pc0 + 1;
577  sp[1].i = sp[1].i < sp[0].i; sp++;
578  NEXT;
579 
580  ACTION(GT)
581  pc = pc0 + 1;
582  sp[1].i = sp[1].i > sp[0].i; sp++;
583  NEXT;
584 
585  ACTION(LEQ)
586  pc = pc0 + 1;
587  sp[1].i = sp[1].i <= sp[0].i; sp++;
588  NEXT;
589 
590  ACTION(GEQ)
591  pc = pc0 + 1;
592  sp[1].i = sp[1].i >= sp[0].i; sp++;
593  NEXT;
594 
595  ACTION(NEQ)
596  pc = pc0 + 1;
597  sp[1].i = sp[1].i != sp[0].i; sp++;
598  NEXT;
599 
600  ACTION(JEQ_S)
601  pc = pc0 + 2;
602  if (sp[1].i == sp[0].i) jump((get1(pc0+1))); sp += 2;
603  NEXT;
604 
605  ACTION(JEQ_R)
606  pc = pc0 + 3;
607  if (sp[1].i == sp[0].i) jump((get2(pc0+1))); sp += 2;
608  NEXT;
609 
610  ACTION(JLT_S)
611  pc = pc0 + 2;
612  if (sp[1].i < sp[0].i) jump((get1(pc0+1))); sp += 2;
613  NEXT;
614 
615  ACTION(JLT_R)
616  pc = pc0 + 3;
617  if (sp[1].i < sp[0].i) jump((get2(pc0+1))); sp += 2;
618  NEXT;
619 
620  ACTION(JGT_S)
621  pc = pc0 + 2;
622  if (sp[1].i > sp[0].i) jump((get1(pc0+1))); sp += 2;
623  NEXT;
624 
625  ACTION(JGT_R)
626  pc = pc0 + 3;
627  if (sp[1].i > sp[0].i) jump((get2(pc0+1))); sp += 2;
628  NEXT;
629 
630  ACTION(JLEQ_S)
631  pc = pc0 + 2;
632  if (sp[1].i <= sp[0].i) jump((get1(pc0+1))); sp += 2;
633  NEXT;
634 
635  ACTION(JLEQ_R)
636  pc = pc0 + 3;
637  if (sp[1].i <= sp[0].i) jump((get2(pc0+1))); sp += 2;
638  NEXT;
639 
640  ACTION(JGEQ_S)
641  pc = pc0 + 2;
642  if (sp[1].i >= sp[0].i) jump((get1(pc0+1))); sp += 2;
643  NEXT;
644 
645  ACTION(JGEQ_R)
646  pc = pc0 + 3;
647  if (sp[1].i >= sp[0].i) jump((get2(pc0+1))); sp += 2;
648  NEXT;
649 
650  ACTION(JNEQ_S)
651  pc = pc0 + 2;
652  if (sp[1].i != sp[0].i) jump((get1(pc0+1))); sp += 2;
653  NEXT;
654 
655  ACTION(JNEQ_R)
656  pc = pc0 + 3;
657  if (sp[1].i != sp[0].i) jump((get2(pc0+1))); sp += 2;
658  NEXT;
659 
660  ACTION(JLTZ_S)
661  pc = pc0 + 2;
662  if (sp[0].i < 0) jump((get1(pc0+1))); sp += 1;
663  NEXT;
664 
665  ACTION(JGTZ_S)
666  pc = pc0 + 2;
667  if (sp[0].i > 0) jump((get1(pc0+1))); sp += 1;
668  NEXT;
669 
670  ACTION(JLEQZ_S)
671  pc = pc0 + 2;
672  if (sp[0].i <= 0) jump((get1(pc0+1))); sp += 1;
673  NEXT;
674 
675  ACTION(JGEQZ_S)
676  pc = pc0 + 2;
677  if (sp[0].i >= 0) jump((get1(pc0+1))); sp += 1;
678  NEXT;
679 
680  ACTION(JNEQZ_S)
681  pc = pc0 + 2;
682  if (sp[0].i != 0) jump((get1(pc0+1))); sp += 1;
683  NEXT;
684 
685  ACTION(JNEQZ_R)
686  pc = pc0 + 3;
687  if (sp[0].i != 0) jump((get2(pc0+1))); sp += 1;
688  NEXT;
689 
690  ACTION(JEQZ_S)
691  pc = pc0 + 2;
692  if (sp[0].i == 0) jump((get1(pc0+1))); sp += 1;
693  NEXT;
694 
695  ACTION(JEQZ_R)
696  pc = pc0 + 3;
697  if (sp[0].i == 0) jump((get2(pc0+1))); sp += 1;
698  NEXT;
699 
700  ACTION(JUMP_S)
701  pc = pc0 + 2;
702  { jump((get1(pc0+1))); }
703  NEXT;
704 
705  ACTION(JUMP_R)
706  pc = pc0 + 3;
707  { jump((get2(pc0+1))); }
708  NEXT;
709 
710  ACTION(QPLUS)
711  pc = pc0 + 1;
712  putlong(&sp[2], getlong(&sp[2]) + getlong(&sp[0])); sp += 2;
713  NEXT;
714 
715  ACTION(QMINUS)
716  pc = pc0 + 1;
717  putlong(&sp[2], getlong(&sp[2]) - getlong(&sp[0])); sp += 2;
718  NEXT;
719 
720  ACTION(QTIMES)
721  pc = pc0 + 1;
722  putlong(&sp[2], getlong(&sp[2]) * getlong(&sp[0])); sp += 2;
723  NEXT;
724 
725  ACTION(QUMINUS)
726  pc = pc0 + 1;
727  putlong(&sp[0], - getlong(&sp[0]));
728  NEXT;
729 
730  ACTION(QDIV)
731  pc = pc0 + 1;
732  long_div(sp); sp += 2;
733  NEXT;
734 
735  ACTION(QMOD)
736  pc = pc0 + 1;
737  long_mod(sp); sp += 2;
738  NEXT;
739 
740  ACTION(QCMP)
741  pc = pc0 + 1;
742  sp[3].i = lcmp(getlong(&sp[2]), getlong(&sp[0])); sp += 3;
743  NEXT;
744 
745  ACTION(JCASE_1)
746  pc = pc0 + 2;
747  if ((unsigned) sp[0].i < (unsigned) (get1(pc0+1)))
748  pc0 = pc + 2*sp[0].i, jump(get2(pc0)); else pc += 2*(get1(pc0+1)); sp += 1;
749  NEXT;
750 
751  ACTION(JRANGE_S)
752  pc = pc0 + 2;
753  if (sp[2].i >= sp[1].i && sp[2].i <= sp[0].i) jump((get1(pc0+1))); sp += 3;
754  NEXT;
755 
756  ACTION(JRANGE_R)
757  pc = pc0 + 3;
758  if (sp[2].i >= sp[1].i && sp[2].i <= sp[0].i) jump((get2(pc0+1))); sp += 3;
759  NEXT;
760 
761  ACTION(TESTGEQ_S)
762  pc = pc0 + 2;
763  if (sp[1].i >= sp[0].i) jump((get1(pc0+1))); sp++;
764  NEXT;
765 
766  ACTION(TESTGEQ_R)
767  pc = pc0 + 3;
768  if (sp[1].i >= sp[0].i) jump((get2(pc0+1))); sp++;
769  NEXT;
770 
771  ACTION(FPLUS)
772  pc = pc0 + 1;
773  sp[1].f = sp[1].f + sp[0].f; sp++;
774  NEXT;
775 
776  ACTION(FMINUS)
777  pc = pc0 + 1;
778  sp[1].f = sp[1].f - sp[0].f; sp++;
779  NEXT;
780 
781  ACTION(FTIMES)
782  pc = pc0 + 1;
783  sp[1].f = sp[1].f * sp[0].f; sp++;
784  NEXT;
785 
786  ACTION(FDIV)
787  pc = pc0 + 1;
788  sp[1].f = sp[1].f / sp[0].f; sp++;
789  NEXT;
790 
791  ACTION(FUMINUS)
792  pc = pc0 + 1;
793  sp[0].f = - sp[0].f;
794  NEXT;
795 
796  ACTION(FCMPL)
797  pc = pc0 + 1;
798  sp[1].i = fcmpl(sp[1].f, sp[0].f); sp++;
799  NEXT;
800 
801  ACTION(FCMPG)
802  pc = pc0 + 1;
803  sp[1].i = fcmpg(sp[1].f, sp[0].f); sp++;
804  NEXT;
805 
806  ACTION(DPLUS)
807  pc = pc0 + 1;
808  putdbl(&sp[2], getdbl(&sp[2]) + getdbl(&sp[0])); sp += 2;
809  NEXT;
810 
811  ACTION(DMINUS)
812  pc = pc0 + 1;
813  putdbl(&sp[2], getdbl(&sp[2]) - getdbl(&sp[0])); sp += 2;
814  NEXT;
815 
816  ACTION(DTIMES)
817  pc = pc0 + 1;
818  putdbl(&sp[2], getdbl(&sp[2]) * getdbl(&sp[0])); sp += 2;
819  NEXT;
820 
821  ACTION(DDIV)
822  pc = pc0 + 1;
823  putdbl(&sp[2], getdbl(&sp[2]) / getdbl(&sp[0])); sp += 2;
824  NEXT;
825 
826  ACTION(DUMINUS)
827  pc = pc0 + 1;
828  putdbl(&sp[0], - getdbl(&sp[0]));
829  NEXT;
830 
831  ACTION(DCMPL)
832  pc = pc0 + 1;
833  sp[3].i = fcmpl(getdbl(&sp[2]), getdbl(&sp[0])); sp += 3;
834  NEXT;
835 
836  ACTION(DCMPG)
837  pc = pc0 + 1;
838  sp[3].i = fcmpg(getdbl(&sp[2]), getdbl(&sp[0])); sp += 3;
839  NEXT;
840 
841  ACTION(CONVNF)
842  pc = pc0 + 1;
843  sp[0].f = flo_conv(sp[0].i);
844  NEXT;
845 
846  ACTION(CONVND)
847  pc = pc0 + 1;
848  sp--; putdbl(&sp[0], flo_conv(sp[1].i));
849  NEXT;
850 
851  ACTION(CONVFN)
852  pc = pc0 + 1;
853  sp[0].i = (int) sp[0].f;
854  NEXT;
855 
856  ACTION(CONVDN)
857  pc = pc0 + 1;
858  sp[1].i = (int) getdbl(&sp[0]); sp++;
859  NEXT;
860 
861  ACTION(CONVFD)
862  pc = pc0 + 1;
863  sp--; putdbl(&sp[0], sp[1].f);
864  NEXT;
865 
866  ACTION(CONVDF)
867  pc = pc0 + 1;
868  sp[1].f = (float) getdbl(&sp[0]); sp++;
869  NEXT;
870 
871  ACTION(CONVNC)
872  pc = pc0 + 1;
873  sp[0].i = sp[0].i & 0xff;
874  NEXT;
875 
876  ACTION(CONVNS)
877  pc = pc0 + 1;
878  sp[0].i = (short) sp[0].i;
879  NEXT;
880 
881  ACTION(CONVNQ)
882  pc = pc0 + 1;
883  sp--; putlong(&sp[0], sp[1].i);
884  NEXT;
885 
886  ACTION(CONVQN)
887  pc = pc0 + 1;
888  sp[1].i = (int) getlong(&sp[0]); sp++;
889  NEXT;
890 
891  ACTION(CONVQD)
892  pc = pc0 + 1;
893  putdbl(&sp[0], flo_convq(getlong(&sp[0])));
894  NEXT;
895 
896  ACTION(BOUND_2)
897  pc = pc0 + 3;
898  if ((unsigned) sp[1].i >= (unsigned) sp[0].i) error(E_BOUND, (get2(pc0+1))); sp++;
899  NEXT;
900 
901  ACTION(NCHECK_2)
902  pc = pc0 + 3;
903  if (pointer(sp[0]) == NULL) error(E_NULL, (get2(pc0+1)));
904  NEXT;
905 
906  ACTION(GCHECK_2)
907  pc = pc0 + 3;
908  if (valptr(sp[0]) != NULL) error(E_GLOB, (get2(pc0+1))); sp += 1;
909  NEXT;
910 
911  ACTION(ZCHECK_2)
912  pc = pc0 + 3;
913  if (sp[0].i == 0) error(E_DIV, (get2(pc0+1)));
914  NEXT;
915 
916  ACTION(FZCHECK_2)
917  pc = pc0 + 3;
918  if (sp[0].f == 0.0) error(E_FDIV, (get2(pc0+1)));
919  NEXT;
920 
921  ACTION(DZCHECK_2)
922  pc = pc0 + 3;
923  if (get_double(&sp[0]) == 0.0) error(E_FDIV, (get2(pc0+1)));
924  NEXT;
925 
926  ACTION(QZCHECK_2)
927  pc = pc0 + 3;
928  if (get_long(&sp[0]) == 0) error(E_DIV, (get2(pc0+1)));
929  NEXT;
930 
931  ACTION(ERROR_12)
932  pc = pc0 + 4;
933  { error((get1(pc0+1)), (get2(pc0+2))); }
934  NEXT;
935 
936  ACTION(ALIGNC)
937  pc = pc0 + 1;
938  sp[0].i = alignx(sp[0].i, 8);
939  NEXT;
940 
941  ACTION(ALIGNS)
942  pc = pc0 + 1;
943  sp[0].i = alignx(sp[0].i, 16);
944  NEXT;
945 
946  ACTION(FIXCOPY)
947  pc = pc0 + 1;
948  prof_charge(sp[0].i/4);
949  memcpy(pointer(sp[2]), pointer(sp[1]), sp[0].i); sp += 3;
950  NEXT;
951 
952  ACTION(FLEXCOPY)
953  pc = pc0 + 1;
954  { value *d = pointer(sp[1]); int size = sp[0].i;
955  int sizew = (size+3)/4; prof_charge(sizew);
956  sp -= sizew - 2;
957  if ((uchar *) sp < stack + SLIMIT) error(E_STACK, 0);
958  memcpy(sp, pointer(d[0]), size);
959  d[0].a = stkaddr(sp); }
960  NEXT;
961 
962  ACTION(STATLINK)
963  pc = pc0 + 1;
964  { sp[1-HEAD+SL].a = sp[0].a; sp++; }
965  NEXT;
966 
967  ACTION(SAVELINK)
968  pc = pc0 + 1;
969  { }
970  NEXT;
971 
972  ACTION(JPROC)
973  pc = pc0 + 1;
974  { value *p = valptr(sp[0]);
975  sp -= HEAD-1;
976  sp[BP].a = stkaddr(bp);
977  sp[PC].a = codeaddr(pc);
978 
979  if (interpreted(p)) {
980  cp = p; pc = codeptr(cp[CP_CODE].a);
981  goto enter;
982  }
983 
984 #ifdef PROFILE
985  /* Calling a native-code routine */
986  prof_enter(dsegaddr(p), ticks, PROF_PRIM);
987  ticks = 0;
988 #endif
989 #ifdef OBXDEB
990  prim_bp = sp;
991 #endif
993 #ifdef OBXDEB
994  prim_bp = NULL;
995 #endif
996  }
997  NEXT;
998 
999  ACTION(SLIDE_1)
1000  pc = pc0 + 2;
1001  { slide((get1(pc0+1))); }
1002  NEXT;
1003 
1004  ACTION(SLIDEW_1)
1005  pc = pc0 + 2;
1006  { slide((get1(pc0+1))); sp--; sp[0].i = (*rp).i; }
1007  NEXT;
1008 
1009  ACTION(SLIDEF_1)
1010  pc = pc0 + 2;
1011  { slide((get1(pc0+1))); sp--; sp[0].f = (*rp).f; }
1012  NEXT;
1013 
1014  ACTION(SLIDED_1)
1015  pc = pc0 + 2;
1016  { slide((get1(pc0+1))); sp -= 2; putdbl(&sp[0], getdbl(rp)); }
1017  NEXT;
1018 
1019  ACTION(SLIDEQ_1)
1020  pc = pc0 + 2;
1021  { slide((get1(pc0+1))); sp -= 2; putlong(&sp[0], getlong(rp)); }
1022  NEXT;
1023 
1024  ACTION(RETURN)
1025  pc = pc0 + 1;
1026  { if (bp == base) {
1027  level--;
1028 #ifdef PROFILE
1029  prof_exit(0, ticks);
1030 #endif
1031  return sp;
1032  }
1033 
1034  rp = sp; sp = bp; pc = codeptr(sp[PC].a);
1035  bp = valptr(sp[BP]); cp = valptr(bp[CP]);
1037 #ifdef PROFILE
1038  prof_exit(dsegaddr(cp), ticks);
1039  ticks = 0;
1040 #endif
1042  NEXT;
1043 
1044  ACTION(LNUM_2)
1045  pc = pc0 + 3;
1046  {
1047 #ifdef PROFILE
1048  if (lflag) {
1049  static module m = NULL; /* Cache most recent module */
1050  ticks--;
1051  if (m == NULL || dsegaddr(cp) < m->m_addr
1052  || dsegaddr(cp) >= m->m_addr + m->m_length) {
1053  m = find_module(dsegaddr(cp));
1054  }
1055  m->m_lcount[(get2(pc0+1))-1]++;
1056  }
1057 #endif
1058 #ifdef OBXDEB
1059  if (intflag)
1060  debug_break(cp, bp, pc0, "interrupt");
1061  else if (one_shot)
1062  debug_break(cp, bp, pc0, "line");
1063 #endif
1064  }
1065  NEXT;
1066 
1067  ACTION(BREAK_2)
1068  pc = pc0 + 3;
1069  {
1070 #ifdef OBXDEB
1071  debug_break(cp, bp, pc0, "break");
1072 #endif
1073  }
1074  NEXT;
1075 
NEXT
Definition: action.c:17
get2(pc0+1)))
int_div(sp)
int_mod(sp)
sti(sp[2].i, sp[1], sp[0], int)
jump(get2(pc0))
cond_break()
stl((ir *4-232), sp[0].i, int)
long_mod(sp)
stg((get1(pc0+1)), sp[0].i, int)
rp
Definition: action.c:992
int size
Definition: action.c:954
stn((ir *4-428), sp[1].i, sp[0])
sp
Definition: action.c:16
int sizew
Definition: action.c:955
memcpy(pointer(sp[2]), pointer(sp[1]), sp[0].i)
sp[0] i
Definition: action.c:16
sp[0] f
Definition: action.c:41
do_find_proc
Definition: action.c:1036
putdbl(valptr(sp[0]), getdbl(&sp[1]))
putlong(valptr(sp[0]), getlong(&sp[1]))
sp[0] a
Definition: action.c:51
long_div(sp)
prof_charge(sp[0].i/4)
bp
Definition: action.c:1035
pc
Definition: action.c:15
cp
Definition: action.c:1035
store(sp[1].i, sp[0], short)
int level
Definition: afm2pl.c:1694
#define get1()
Definition: disdvi.c:84
int getlong(long *dest, int *j, const char *str)
Definition: dvi2tty.c:666
#define EQ(a, b)
Definition: dvi2xx.h:107
#define error(a)
Definition: dviinfo.c:48
#define LT(l, r)
Definition: ffi.c:2419
#define d(n)
Definition: gpos-common.c:151
int base
Definition: gsftopk.c:1502
#define RETURN(rrr)
Definition: decompress.c:40
unsigned char uchar
Definition: unzcrash.c:37
#define NULL
Definition: ftobjs.h:61
small capitals from c petite p
Definition: afcover.h:72
#define const
Definition: ftzconf.h:91
@ STORED
Definition: infutil.h:17
#define local
Definition: zutil.h:30
#define MOD(a)
Definition: adler32.c:57
#define ror(x, n)
Definition: dpxcrypt.c:48
#define DIV
Definition: mpost.c:318
#define get_long()
Definition: writettf.h:62
int dup()
#define SWAP(t, a, b)
Definition: tif_fax3.c:1359
#define E_BOUND
Definition: obcommon.h:114
#define E_GLOB
Definition: obcommon.h:119
#define E_STACK
Definition: obcommon.h:118
#define PC
Definition: obcommon.h:75
#define CP
Definition: obcommon.h:76
#define E_NULL
Definition: obcommon.h:115
#define E_FDIV
Definition: obcommon.h:117
#define BP
Definition: obcommon.h:74
#define E_DIV
Definition: obcommon.h:116
#define SL
Definition: obcommon.h:77
#define CP_CODE
Definition: obcommon.h:83
#define pointer(v)
Definition: obx.h:58
double flo_conv(int)
Definition: support.c:212
#define codeptr(v)
Definition: obx.h:93
#define valptr(v)
Definition: obx.h:57
#define SLIMIT
Definition: obx.h:42
#define find_module(cp)
Definition: obx.h:269
#define primcall(p, sp)
Definition: obx.h:144
#define dsegaddr(p)
Definition: obx.h:68
#define stkaddr(p)
Definition: obx.h:67
double get_double(value *v)
Definition: support.c:236
double flo_convq(longint)
Definition: support.c:216
#define codeaddr(p)
Definition: obx.h:92
#define interpreted(p)
Definition: obx.h:141
set set set set set set set set set set set set set set set set set set set set *set set set macro pixldst op &r &cond WK op &r &cond WK op &r &cond WK else op &m &cond &ia op &r &cond WK else op &m &cond &ia elseif elseif else error unsupported base if elseif elseif else error unsupported unaligned pixldst unaligned endm macro pixst base base else pixldst base endif endm macro PF base if bpp PF set OFFSET
#define DUP
Definition: pmakempx.c:108
#define ldl(a, t)
Definition: interp.c:113
#define swap(sp)
Definition: interp.c:123
#define alignx(a, n)
Definition: interp.c:135
#define ACTION(op)
#define slide(nargs)
Definition: interp.c:124
#define ALSO(op)
#define lcmp(a, b)
Definition: interp.c:130
#define load(x, t)
Definition: interp.c:111
#define fcmpg(a, b)
Definition: interp.c:129
#define ldg(a, t)
Definition: interp.c:115
#define ldi(x, y, t)
Definition: interp.c:119
#define indir(p, t)
Definition: interp.c:106
#define fcmpl(a, b)
Definition: interp.c:128
static __inline double getdbl(value *v)
Definition: interp.c:71
#define ldn(a, x)
Definition: interp.c:117
Definition: tables.h:296
Definition: lsr.h:16
Definition: obx.h:117
Definition: spc_misc.c:56
m
Definition: tex4ht.c:3990
return() int(((double) *(font_tbl[cur_fnt].wtbl+(int)(*(font_tbl[cur_fnt].char_wi+(int)(ch - font_tbl[cur_fnt].char_f)% 256)))/(double)(1L<< 20)) *(double) font_tbl[cur_fnt].scale)
#define FMINUS
Definition: sprintf.c:128
#define FPLUS
Definition: sprintf.c:129
#define PLUS
Definition: ucnv_u7.cpp:92
#define MINUS
Definition: ucnv_u7.cpp:93
Definition: obx.h:51
#define ticks
Definition: utmscale.cpp:16