*** empty log message ***
[chuck-blob.git] / v1 / chuck_instr.h
blobfbdc280cf6a9163016c7eb3786898cbe75653e9f
1 /*----------------------------------------------------------------------------
2 ChucK Concurrent, On-the-fly Audio Programming Language
3 Compiler and Virtual Machine
5 Copyright (c) 2004 Ge Wang and Perry R. Cook. All rights reserved.
6 http://chuck.cs.princeton.edu/
7 http://soundlab.cs.princeton.edu/
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
22 U.S.A.
23 -----------------------------------------------------------------------------*/
25 //-----------------------------------------------------------------------------
26 // file: chuck_instr.h
27 // desc: ...
29 // author: Ge Wang (gewang@cs.princeton.edu)
30 // Perry R. Cook (prc@cs.princeton.edu)
31 // date: Autumn 2002
32 //-----------------------------------------------------------------------------
33 #ifndef __CHUCK_INSTR_H__
34 #define __CHUCK_INSTR_H__
36 #include <stdio.h>
41 // forward reference
42 class Chuck_VM;
43 class Chuck_VM_Shred;
45 // define
46 #define sint long
47 #define uint unsigned long
52 //-----------------------------------------------------------------------------
53 // name: class Chuck_Instr
54 // desc: ...
55 //-----------------------------------------------------------------------------
56 class Chuck_Instr
58 public:
59 virtual ~Chuck_Instr() { }
61 public:
62 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred ) = 0;
64 public:
65 virtual const char * name() const;
66 virtual const char * params() const
67 { return ""; }
73 //-----------------------------------------------------------------------------
74 // name: class Chuck_Instr_Branch_Op
75 // desc: ...
76 //-----------------------------------------------------------------------------
77 class Chuck_Instr_Branch_Op : public Chuck_Instr
79 public:
80 inline void set( uint jmp ) { m_jmp = jmp; }
82 public:
83 virtual const char * params() const
84 { static char buffer[256]; sprintf( buffer, "%d", m_jmp ); return buffer; }
86 protected:
87 uint m_jmp;
93 //-----------------------------------------------------------------------------
94 // name: class Chuck_Instr_Unary_Op
95 // desc: ...
96 //-----------------------------------------------------------------------------
97 class Chuck_Instr_Unary_Op : public Chuck_Instr
99 public:
100 inline void set( uint val ) { m_val = val; }
101 inline uint get() { return m_val; }
103 public:
104 virtual const char * params() const
105 { static char buffer[256]; sprintf( buffer, "%d", m_val ); return buffer; }
107 protected:
108 uint m_val;
114 //-----------------------------------------------------------------------------
115 // name: class Chuck_Instr_Unary_Op2
116 // desc: ...
117 //-----------------------------------------------------------------------------
118 class Chuck_Instr_Unary_Op2 : public Chuck_Instr
120 public:
121 inline void set( double val ) { m_val = val; }
122 inline double get() { return m_val; }
124 public:
125 virtual const char * params() const
126 { static char buffer[256]; sprintf( buffer, "%.6f", m_val ); return buffer; }
128 protected:
129 double m_val;
135 //-----------------------------------------------------------------------------
136 // name: class Chuck_Instr_Binary_Op
137 // desc: ...
138 //-----------------------------------------------------------------------------
139 class Chuck_Instr_Binary_Op : public Chuck_Instr
140 { };
145 //-----------------------------------------------------------------------------
146 // name: class Chuck_Instr_Add_int
147 // desc: ...
148 //-----------------------------------------------------------------------------
149 class Chuck_Instr_Add_int : public Chuck_Instr_Binary_Op
151 public:
152 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
158 //-----------------------------------------------------------------------------
159 // name: class Chuck_Instr_Inc_int
160 // desc: ...
161 //-----------------------------------------------------------------------------
162 class Chuck_Instr_Inc_int : public Chuck_Instr
164 public:
165 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
172 //-----------------------------------------------------------------------------
173 // name: class Chuck_Instr_Dec_int
174 // desc: ...
175 //-----------------------------------------------------------------------------
176 class Chuck_Instr_Dec_int : public Chuck_Instr
178 public:
179 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
185 //-----------------------------------------------------------------------------
186 // name: class Chuck_Instr_Complement_int
187 // desc: ...
188 //-----------------------------------------------------------------------------
189 class Chuck_Instr_Complement_int : public Chuck_Instr
191 public:
192 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
198 //-----------------------------------------------------------------------------
199 // name: class Chuck_Instr_Mod_int
200 // desc: ...
201 //-----------------------------------------------------------------------------
202 class Chuck_Instr_Mod_int : public Chuck_Instr_Binary_Op
204 public:
205 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
211 //-----------------------------------------------------------------------------
212 // name: class Chuck_Instr_Minus_int
213 // desc: ...
214 //-----------------------------------------------------------------------------
215 class Chuck_Instr_Minus_int : public Chuck_Instr_Binary_Op
217 public:
218 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
224 //-----------------------------------------------------------------------------
225 // name: class Chuck_Instr_Times_int
226 // desc: ...
227 //-----------------------------------------------------------------------------
228 class Chuck_Instr_Times_int : public Chuck_Instr_Binary_Op
230 public:
231 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
237 //-----------------------------------------------------------------------------
238 // name: class Chuck_Instr_Divide_int
239 // desc: ...
240 //-----------------------------------------------------------------------------
241 class Chuck_Instr_Divide_int : public Chuck_Instr_Binary_Op
243 public:
244 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
250 //-----------------------------------------------------------------------------
251 // name: class Chuck_Instr_Add_uint
252 // desc: ...
253 //-----------------------------------------------------------------------------
254 class Chuck_Instr_Add_uint : public Chuck_Instr_Binary_Op
256 public:
257 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
263 //-----------------------------------------------------------------------------
264 // name: class Chuck_Instr_Inc_uint
265 // desc: ...
266 //-----------------------------------------------------------------------------
267 class Chuck_Instr_Inc_uint : public Chuck_Instr
269 public:
270 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
277 //-----------------------------------------------------------------------------
278 // name: class Chuck_Instr_Dec_uint
279 // desc: ...
280 //-----------------------------------------------------------------------------
281 class Chuck_Instr_Dec_uint : public Chuck_Instr
283 public:
284 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
290 //-----------------------------------------------------------------------------
291 // name: class Chuck_Instr_Complement_uint
292 // desc: ...
293 //-----------------------------------------------------------------------------
294 class Chuck_Instr_Complement_uint : public Chuck_Instr
296 public:
297 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
303 //-----------------------------------------------------------------------------
304 // name: class Chuck_Instr_Mod_uint
305 // desc: ...
306 //-----------------------------------------------------------------------------
307 class Chuck_Instr_Mod_uint : public Chuck_Instr_Binary_Op
309 public:
310 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
316 //-----------------------------------------------------------------------------
317 // name: class Chuck_Instr_Minus_uint
318 // desc: ...
319 //-----------------------------------------------------------------------------
320 class Chuck_Instr_Minus_uint : public Chuck_Instr_Binary_Op
322 public:
323 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
329 //-----------------------------------------------------------------------------
330 // name: class Chuck_Instr_Times_uint
331 // desc: ...
332 //-----------------------------------------------------------------------------
333 class Chuck_Instr_Times_uint : public Chuck_Instr_Binary_Op
335 public:
336 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
342 //-----------------------------------------------------------------------------
343 // name: class Chuck_Instr_Divide_uint
344 // desc: ...
345 //-----------------------------------------------------------------------------
346 class Chuck_Instr_Divide_uint : public Chuck_Instr_Binary_Op
348 public:
349 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
355 //-----------------------------------------------------------------------------
356 // name: class Chuck_Instr_Add_single
357 // desc: ...
358 //-----------------------------------------------------------------------------
359 class Chuck_Instr_Add_single : public Chuck_Instr_Binary_Op
361 public:
362 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
368 //-----------------------------------------------------------------------------
369 // name: class Chuck_Instr_Minus_single
370 // desc: ...
371 //-----------------------------------------------------------------------------
372 class Chuck_Instr_Minus_single : public Chuck_Instr_Binary_Op
374 public:
375 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
381 //-----------------------------------------------------------------------------
382 // name: class Chuck_Instr_Times_single
383 // desc: ...
384 //-----------------------------------------------------------------------------
385 class Chuck_Instr_Times_single : public Chuck_Instr_Binary_Op
387 public:
388 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
394 //-----------------------------------------------------------------------------
395 // name: class Chuck_Instr_Divide_single
396 // desc: ...
397 //-----------------------------------------------------------------------------
398 class Chuck_Instr_Divide_single : public Chuck_Instr_Binary_Op
400 public:
401 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
407 //-----------------------------------------------------------------------------
408 // name: class Chuck_Instr_Mod_single
409 // desc: ...
410 //-----------------------------------------------------------------------------
411 class Chuck_Instr_Mod_single : public Chuck_Instr_Binary_Op
413 public:
414 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
420 //-----------------------------------------------------------------------------
421 // name: class Chuck_Instr_Add_double
422 // desc: ...
423 //-----------------------------------------------------------------------------
424 class Chuck_Instr_Add_double : public Chuck_Instr_Binary_Op
426 public:
427 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
433 //-----------------------------------------------------------------------------
434 // name: class Chuck_Instr_Minus_double
435 // desc: ...
436 //-----------------------------------------------------------------------------
437 class Chuck_Instr_Minus_double : public Chuck_Instr_Binary_Op
439 public:
440 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
446 //-----------------------------------------------------------------------------
447 // name: class Chuck_Instr_Times_double
448 // desc: ...
449 //-----------------------------------------------------------------------------
450 class Chuck_Instr_Times_double : public Chuck_Instr_Binary_Op
452 public:
453 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
459 //-----------------------------------------------------------------------------
460 // name: class Chuck_Instr_Divide_double
461 // desc: ...
462 //-----------------------------------------------------------------------------
463 class Chuck_Instr_Divide_double : public Chuck_Instr_Binary_Op
465 public:
466 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
472 //-----------------------------------------------------------------------------
473 // name: class Chuck_Instr_Mod_double
474 // desc: ...
475 //-----------------------------------------------------------------------------
476 class Chuck_Instr_Mod_double : public Chuck_Instr_Binary_Op
478 public:
479 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
485 //-----------------------------------------------------------------------------
486 // name: class Chuck_Instr_Add_dur
487 // desc: ...
488 //-----------------------------------------------------------------------------
489 class Chuck_Instr_Add_dur : public Chuck_Instr_Binary_Op
491 public:
492 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
498 //-----------------------------------------------------------------------------
499 // name: class Chuck_Instr_Add_dur_time
500 // desc: ...
501 //-----------------------------------------------------------------------------
502 class Chuck_Instr_Add_dur_time : public Chuck_Instr_Binary_Op
504 public:
505 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
511 //-----------------------------------------------------------------------------
512 // name: class Chuck_Instr_Branch_Lt_int
513 // desc: ...
514 //-----------------------------------------------------------------------------
515 class Chuck_Instr_Branch_Lt_int : public Chuck_Instr_Branch_Op
517 public:
518 Chuck_Instr_Branch_Lt_int( uint jmp ) { this->set( jmp ); }
519 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
525 //-----------------------------------------------------------------------------
526 // name: class Chuck_Instr_Branch_Gt_int
527 // desc: ...
528 //-----------------------------------------------------------------------------
529 class Chuck_Instr_Branch_Gt_int : public Chuck_Instr_Branch_Op
531 public:
532 Chuck_Instr_Branch_Gt_int( uint jmp ) { this->set( jmp ); }
533 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
539 //-----------------------------------------------------------------------------
540 // name: class Chuck_Instr_Branch_Le_int
541 // desc: ...
542 //-----------------------------------------------------------------------------
543 class Chuck_Instr_Branch_Le_int : public Chuck_Instr_Branch_Op
545 public:
546 Chuck_Instr_Branch_Le_int( uint jmp ) { this->set( jmp ); }
547 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
553 //-----------------------------------------------------------------------------
554 // name: class Chuck_Instr_Branch_Ge_int
555 // desc: ...
556 //-----------------------------------------------------------------------------
557 class Chuck_Instr_Branch_Ge_int : public Chuck_Instr_Branch_Op
559 public:
560 Chuck_Instr_Branch_Ge_int( uint jmp ) { this->set( jmp ); }
561 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
567 //-----------------------------------------------------------------------------
568 // name: class Chuck_Instr_Branch_Eq_int
569 // desc: ...
570 //-----------------------------------------------------------------------------
571 class Chuck_Instr_Branch_Eq_int : public Chuck_Instr_Branch_Op
573 public:
574 Chuck_Instr_Branch_Eq_int( uint jmp ) { this->set( jmp ); }
575 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
581 //-----------------------------------------------------------------------------
582 // name: class Chuck_Instr_Branch_Neq_int
583 // desc: ...
584 //-----------------------------------------------------------------------------
585 class Chuck_Instr_Branch_Neq_int : public Chuck_Instr_Branch_Op
587 public:
588 Chuck_Instr_Branch_Neq_int( uint jmp ) { this->set( jmp ); }
589 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
595 //-----------------------------------------------------------------------------
596 // name: class Chuck_Instr_Branch_Lt_uint
597 // desc: ...
598 //-----------------------------------------------------------------------------
599 class Chuck_Instr_Branch_Lt_uint : public Chuck_Instr_Branch_Op
601 public:
602 Chuck_Instr_Branch_Lt_uint( uint jmp ) { this->set( jmp ); }
603 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
609 //-----------------------------------------------------------------------------
610 // name: class Chuck_Instr_Branch_Gt_uint
611 // desc: ...
612 //-----------------------------------------------------------------------------
613 class Chuck_Instr_Branch_Gt_uint : public Chuck_Instr_Branch_Op
615 public:
616 Chuck_Instr_Branch_Gt_uint( uint jmp ) { this->set( jmp ); }
617 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
623 //-----------------------------------------------------------------------------
624 // name: class Chuck_Instr_Branch_Le_uint
625 // desc: ...
626 //-----------------------------------------------------------------------------
627 class Chuck_Instr_Branch_Le_uint : public Chuck_Instr_Branch_Op
629 public:
630 Chuck_Instr_Branch_Le_uint( uint jmp ) { this->set( jmp ); }
631 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
637 //-----------------------------------------------------------------------------
638 // name: class Chuck_Instr_Branch_Ge_uint
639 // desc: ...
640 //-----------------------------------------------------------------------------
641 class Chuck_Instr_Branch_Ge_uint : public Chuck_Instr_Branch_Op
643 public:
644 Chuck_Instr_Branch_Ge_uint( uint jmp ) { this->set( jmp ); }
645 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
651 //-----------------------------------------------------------------------------
652 // name: class Chuck_Instr_Branch_Eq_uint
653 // desc: ...
654 //-----------------------------------------------------------------------------
655 class Chuck_Instr_Branch_Eq_uint : public Chuck_Instr_Branch_Op
657 public:
658 Chuck_Instr_Branch_Eq_uint( uint jmp ) { this->set( jmp ); }
659 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
665 //-----------------------------------------------------------------------------
666 // name: class Chuck_Instr_Branch_Neq_uint
667 // desc: ...
668 //-----------------------------------------------------------------------------
669 class Chuck_Instr_Branch_Neq_uint : public Chuck_Instr_Branch_Op
671 public:
672 Chuck_Instr_Branch_Neq_uint( uint jmp ) { this->set( jmp ); }
673 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
679 //-----------------------------------------------------------------------------
680 // name: class Chuck_Instr_Branch_Lt_single
681 // desc: ...
682 //-----------------------------------------------------------------------------
683 class Chuck_Instr_Branch_Lt_single : public Chuck_Instr_Branch_Op
685 public:
686 Chuck_Instr_Branch_Lt_single( uint jmp ) { this->set( jmp ); }
687 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
693 //-----------------------------------------------------------------------------
694 // name: class Chuck_Instr_Branch_Gt_single
695 // desc: ...
696 //-----------------------------------------------------------------------------
697 class Chuck_Instr_Branch_Gt_single : public Chuck_Instr_Branch_Op
699 public:
700 Chuck_Instr_Branch_Gt_single( uint jmp ) { this->set( jmp ); }
701 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
707 //-----------------------------------------------------------------------------
708 // name: class Chuck_Instr_Branch_Le_single
709 // desc: ...
710 //-----------------------------------------------------------------------------
711 class Chuck_Instr_Branch_Le_single : public Chuck_Instr_Branch_Op
713 public:
714 Chuck_Instr_Branch_Le_single( uint jmp ) { this->set( jmp ); }
715 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
721 //-----------------------------------------------------------------------------
722 // name: class Chuck_Instr_Branch_Ge_single
723 // desc: ...
724 //-----------------------------------------------------------------------------
725 class Chuck_Instr_Branch_Ge_single : public Chuck_Instr_Branch_Op
727 public:
728 Chuck_Instr_Branch_Ge_single( uint jmp ) { this->set( jmp ); }
729 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
735 //-----------------------------------------------------------------------------
736 // name: class Chuck_Instr_Branch_Eq_single
737 // desc: ...
738 //-----------------------------------------------------------------------------
739 class Chuck_Instr_Branch_Eq_single : public Chuck_Instr_Branch_Op
741 public:
742 Chuck_Instr_Branch_Eq_single( uint jmp ) { this->set( jmp ); }
743 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
749 //-----------------------------------------------------------------------------
750 // name: class Chuck_Instr_Branch_Neq_single
751 // desc: ...
752 //-----------------------------------------------------------------------------
753 class Chuck_Instr_Branch_Neq_single : public Chuck_Instr_Branch_Op
755 public:
756 Chuck_Instr_Branch_Neq_single( uint jmp ) { this->set( jmp ); }
757 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
763 //-----------------------------------------------------------------------------
764 // name: class Chuck_Instr_Branch_Lt_double
765 // desc: ...
766 //-----------------------------------------------------------------------------
767 class Chuck_Instr_Branch_Lt_double : public Chuck_Instr_Branch_Op
769 public:
770 Chuck_Instr_Branch_Lt_double( uint jmp ) { this->set( jmp ); }
771 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
777 //-----------------------------------------------------------------------------
778 // name: class Chuck_Instr_Branch_Gt_double
779 // desc: ...
780 //-----------------------------------------------------------------------------
781 class Chuck_Instr_Branch_Gt_double : public Chuck_Instr_Branch_Op
783 public:
784 Chuck_Instr_Branch_Gt_double( uint jmp ) { this->set( jmp ); }
785 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
791 //-----------------------------------------------------------------------------
792 // name: class Chuck_Instr_Branch_Le_double
793 // desc: ...
794 //-----------------------------------------------------------------------------
795 class Chuck_Instr_Branch_Le_double : public Chuck_Instr_Branch_Op
797 public:
798 Chuck_Instr_Branch_Le_double( uint jmp ) { this->set( jmp ); }
799 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
805 //-----------------------------------------------------------------------------
806 // name: class Chuck_Instr_Branch_Ge_double
807 // desc: ...
808 //-----------------------------------------------------------------------------
809 class Chuck_Instr_Branch_Ge_double : public Chuck_Instr_Branch_Op
811 public:
812 Chuck_Instr_Branch_Ge_double( uint jmp ) { this->set( jmp ); }
813 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
819 //-----------------------------------------------------------------------------
820 // name: class Chuck_Instr_Branch_Eq_double
821 // desc: ...
822 //-----------------------------------------------------------------------------
823 class Chuck_Instr_Branch_Eq_double : public Chuck_Instr_Branch_Op
825 public:
826 Chuck_Instr_Branch_Eq_double( uint jmp ) { this->set( jmp ); }
827 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
833 //-----------------------------------------------------------------------------
834 // name: class Chuck_Instr_Branch_Neq_double
835 // desc: ...
836 //-----------------------------------------------------------------------------
837 class Chuck_Instr_Branch_Neq_double : public Chuck_Instr_Branch_Op
839 public:
840 Chuck_Instr_Branch_Neq_double( uint jmp ) { this->set( jmp ); }
841 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
847 //-----------------------------------------------------------------------------
848 // name: class Chuck_Instr_Lt_int
849 // desc: ...
850 //-----------------------------------------------------------------------------
851 class Chuck_Instr_Lt_int : public Chuck_Instr_Binary_Op
853 public:
854 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
860 //-----------------------------------------------------------------------------
861 // name: class Chuck_Instr_Gt_int
862 // desc: ...
863 //-----------------------------------------------------------------------------
864 class Chuck_Instr_Gt_int : public Chuck_Instr_Binary_Op
866 public:
867 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
873 //-----------------------------------------------------------------------------
874 // name: class Chuck_Instr_Le_int
875 // desc: ...
876 //-----------------------------------------------------------------------------
877 class Chuck_Instr_Le_int : public Chuck_Instr_Binary_Op
879 public:
880 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
886 //-----------------------------------------------------------------------------
887 // name: class Chuck_Instr_Ge_int
888 // desc: ...
889 //-----------------------------------------------------------------------------
890 class Chuck_Instr_Ge_int : public Chuck_Instr_Binary_Op
892 public:
893 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
899 //-----------------------------------------------------------------------------
900 // name: class Chuck_Instr_Eq_int
901 // desc: ...
902 //-----------------------------------------------------------------------------
903 class Chuck_Instr_Eq_int : public Chuck_Instr_Binary_Op
905 public:
906 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
912 //-----------------------------------------------------------------------------
913 // name: class Chuck_Instr_Neq_int
914 // desc: ...
915 //-----------------------------------------------------------------------------
916 class Chuck_Instr_Neq_int : public Chuck_Instr_Binary_Op
918 public:
919 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
925 //-----------------------------------------------------------------------------
926 // name: class Chuck_Instr_Not_int
927 // desc: ...
928 //-----------------------------------------------------------------------------
929 class Chuck_Instr_Not_int : public Chuck_Instr
931 public:
932 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
938 //-----------------------------------------------------------------------------
939 // name: class Chuck_Instr_Negate_int
940 // desc: ...
941 //-----------------------------------------------------------------------------
942 class Chuck_Instr_Negate_int : public Chuck_Instr
944 public:
945 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
951 //-----------------------------------------------------------------------------
952 // name: class Chuck_Instr_Negate_uint
953 // desc: ...
954 //-----------------------------------------------------------------------------
955 class Chuck_Instr_Negate_uint : public Chuck_Instr
957 public:
958 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
964 //-----------------------------------------------------------------------------
965 // name: class Chuck_Instr_Negate_single
966 // desc: ...
967 //-----------------------------------------------------------------------------
968 class Chuck_Instr_Negate_single : public Chuck_Instr
970 public:
971 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
977 //-----------------------------------------------------------------------------
978 // name: class Chuck_Instr_Negate_double
979 // desc: ...
980 //-----------------------------------------------------------------------------
981 class Chuck_Instr_Negate_double : public Chuck_Instr
983 public:
984 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
990 //-----------------------------------------------------------------------------
991 // name: class Chuck_Instr_Lt_uint
992 // desc: ...
993 //-----------------------------------------------------------------------------
994 class Chuck_Instr_Lt_uint : public Chuck_Instr_Binary_Op
996 public:
997 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1003 //-----------------------------------------------------------------------------
1004 // name: class Chuck_Instr_Gt_uint
1005 // desc: ...
1006 //-----------------------------------------------------------------------------
1007 class Chuck_Instr_Gt_uint : public Chuck_Instr_Binary_Op
1009 public:
1010 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1016 //-----------------------------------------------------------------------------
1017 // name: class Chuck_Instr_Le_uint
1018 // desc: ...
1019 //-----------------------------------------------------------------------------
1020 class Chuck_Instr_Le_uint : public Chuck_Instr_Binary_Op
1022 public:
1023 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1029 //-----------------------------------------------------------------------------
1030 // name: class Chuck_Instr_Ge_uint
1031 // desc: ...
1032 //-----------------------------------------------------------------------------
1033 class Chuck_Instr_Ge_uint : public Chuck_Instr_Binary_Op
1035 public:
1036 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1042 //-----------------------------------------------------------------------------
1043 // name: class Chuck_Instr_Eq_uint
1044 // desc: ...
1045 //-----------------------------------------------------------------------------
1046 class Chuck_Instr_Eq_uint : public Chuck_Instr_Binary_Op
1048 public:
1049 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1055 //-----------------------------------------------------------------------------
1056 // name: class Chuck_Instr_Neq_uint
1057 // desc: ...
1058 //-----------------------------------------------------------------------------
1059 class Chuck_Instr_Neq_uint : public Chuck_Instr_Binary_Op
1061 public:
1062 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1068 //-----------------------------------------------------------------------------
1069 // name: class Chuck_Instr_Lt_single
1070 // desc: ...
1071 //-----------------------------------------------------------------------------
1072 class Chuck_Instr_Lt_single : public Chuck_Instr_Binary_Op
1074 public:
1075 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1081 //-----------------------------------------------------------------------------
1082 // name: class Chuck_Instr_Gt_single
1083 // desc: ...
1084 //-----------------------------------------------------------------------------
1085 class Chuck_Instr_Gt_single : public Chuck_Instr_Binary_Op
1087 public:
1088 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1094 //-----------------------------------------------------------------------------
1095 // name: class Chuck_Instr_Le_single
1096 // desc: ...
1097 //-----------------------------------------------------------------------------
1098 class Chuck_Instr_Le_single : public Chuck_Instr_Binary_Op
1100 public:
1101 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1107 //-----------------------------------------------------------------------------
1108 // name: class Chuck_Instr_Ge_single
1109 // desc: ...
1110 //-----------------------------------------------------------------------------
1111 class Chuck_Instr_Ge_single : public Chuck_Instr_Binary_Op
1113 public:
1114 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1120 //-----------------------------------------------------------------------------
1121 // name: class Chuck_Instr_Eq_single
1122 // desc: ...
1123 //-----------------------------------------------------------------------------
1124 class Chuck_Instr_Eq_single : public Chuck_Instr_Binary_Op
1126 public:
1127 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1133 //-----------------------------------------------------------------------------
1134 // name: class Chuck_Instr_Neq_single
1135 // desc: ...
1136 //-----------------------------------------------------------------------------
1137 class Chuck_Instr_Neq_single : public Chuck_Instr_Binary_Op
1139 public:
1140 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1146 //-----------------------------------------------------------------------------
1147 // name: class Chuck_Instr_Lt_double
1148 // desc: ...
1149 //-----------------------------------------------------------------------------
1150 class Chuck_Instr_Lt_double : public Chuck_Instr_Binary_Op
1152 public:
1153 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1159 //-----------------------------------------------------------------------------
1160 // name: class Chuck_Instr_Gt_double
1161 // desc: ...
1162 //-----------------------------------------------------------------------------
1163 class Chuck_Instr_Gt_double : public Chuck_Instr_Binary_Op
1165 public:
1166 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1172 //-----------------------------------------------------------------------------
1173 // name: class Chuck_Instr_Le_double
1174 // desc: ...
1175 //-----------------------------------------------------------------------------
1176 class Chuck_Instr_Le_double : public Chuck_Instr_Binary_Op
1178 public:
1179 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1185 //-----------------------------------------------------------------------------
1186 // name: class Chuck_Instr_Ge_double
1187 // desc: ...
1188 //-----------------------------------------------------------------------------
1189 class Chuck_Instr_Ge_double : public Chuck_Instr_Binary_Op
1191 public:
1192 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1198 //-----------------------------------------------------------------------------
1199 // name: class Chuck_Instr_Eq_double
1200 // desc: ...
1201 //-----------------------------------------------------------------------------
1202 class Chuck_Instr_Eq_double : public Chuck_Instr_Binary_Op
1204 public:
1205 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1211 //-----------------------------------------------------------------------------
1212 // name: class Chuck_Instr_Neq_double
1213 // desc: ...
1214 //-----------------------------------------------------------------------------
1215 class Chuck_Instr_Neq_double : public Chuck_Instr_Binary_Op
1217 public:
1218 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1224 //-----------------------------------------------------------------------------
1225 // name: class Chuck_Instr_Binary_And
1226 // desc: ...
1227 //-----------------------------------------------------------------------------
1228 class Chuck_Instr_Binary_And : public Chuck_Instr_Binary_Op
1230 public:
1231 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1237 //-----------------------------------------------------------------------------
1238 // name: class Chuck_Instr_Binary_Or
1239 // desc: ...
1240 //-----------------------------------------------------------------------------
1241 class Chuck_Instr_Binary_Or : public Chuck_Instr_Binary_Op
1243 public:
1244 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1250 //-----------------------------------------------------------------------------
1251 // name: class Chuck_Instr_Binary_Xor
1252 // desc: ...
1253 //-----------------------------------------------------------------------------
1254 class Chuck_Instr_Binary_Xor : public Chuck_Instr_Binary_Op
1256 public:
1257 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1263 //-----------------------------------------------------------------------------
1264 // name: class Chuck_Instr_Binary_Shift_Right
1265 // desc: ...
1266 //-----------------------------------------------------------------------------
1267 class Chuck_Instr_Binary_Shift_Right : public Chuck_Instr_Binary_Op
1269 public:
1270 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1276 //-----------------------------------------------------------------------------
1277 // name: class Chuck_Instr_Binary_Shift_Left
1278 // desc: ...
1279 //-----------------------------------------------------------------------------
1280 class Chuck_Instr_Binary_Shift_Left : public Chuck_Instr_Binary_Op
1282 public:
1283 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1289 //-----------------------------------------------------------------------------
1290 // name: class Chuck_Instr_And
1291 // desc: ...
1292 //-----------------------------------------------------------------------------
1293 class Chuck_Instr_And : public Chuck_Instr_Binary_Op
1295 public:
1296 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1302 //-----------------------------------------------------------------------------
1303 // name: class Chuck_Instr_Or
1304 // desc: ...
1305 //-----------------------------------------------------------------------------
1306 class Chuck_Instr_Or : public Chuck_Instr_Binary_Op
1308 public:
1309 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1315 //-----------------------------------------------------------------------------
1316 // name: class Chuck_Instr_Goto
1317 // desc: ...
1318 //-----------------------------------------------------------------------------
1319 class Chuck_Instr_Goto : public Chuck_Instr_Branch_Op
1321 public:
1322 Chuck_Instr_Goto( uint jmp ) { this->set( jmp ); }
1323 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1329 //-----------------------------------------------------------------------------
1330 // name: class Chuck_Instr_Reg_Pop_Word
1331 // desc: pop word from reg stack
1332 //-----------------------------------------------------------------------------
1333 class Chuck_Instr_Reg_Pop_Word : public Chuck_Instr
1335 public:
1336 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1342 //-----------------------------------------------------------------------------
1343 // name: class Chuck_Instr_Reg_Pop_Word2
1344 // desc: pop double word from reg stack
1345 //-----------------------------------------------------------------------------
1346 class Chuck_Instr_Reg_Pop_Word2 : public Chuck_Instr
1348 public:
1349 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1355 //-----------------------------------------------------------------------------
1356 // name: class Chuck_Instr_Reg_Pop_Mem
1357 // desc: pop word, and copy it to the mem stack
1358 //-----------------------------------------------------------------------------
1359 class Chuck_Instr_Reg_Pop_Mem: public Chuck_Instr_Unary_Op
1361 public:
1362 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1368 //-----------------------------------------------------------------------------
1369 // name: class Chuck_Instr_Reg_Pop_Mem2
1370 // desc: pop double word, and copy it to the mem stack
1371 //-----------------------------------------------------------------------------
1372 class Chuck_Instr_Reg_Pop_Mem2: public Chuck_Instr_Unary_Op
1374 public:
1375 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1381 //-----------------------------------------------------------------------------
1382 // name: class Chuck_Instr_Reg_Push_Imm
1383 // desc: push immediate to reg stack
1384 //-----------------------------------------------------------------------------
1385 class Chuck_Instr_Reg_Push_Imm : public Chuck_Instr_Unary_Op
1387 public:
1388 Chuck_Instr_Reg_Push_Imm( uint val )
1389 { this->set( val ); }
1391 public:
1392 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1398 //-----------------------------------------------------------------------------
1399 // name: class Chuck_Instr_Reg_Push_Imm2
1400 // desc: push double immediate to reg stack
1401 //-----------------------------------------------------------------------------
1402 class Chuck_Instr_Reg_Push_Imm2 : public Chuck_Instr_Unary_Op2
1404 public:
1405 Chuck_Instr_Reg_Push_Imm2( double val )
1406 { this->set( val ); }
1408 public:
1409 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1415 //-----------------------------------------------------------------------------
1416 // name: class Chuck_Instr_Reg_Push_Now
1417 // desc: push value of now to reg stack
1418 //-----------------------------------------------------------------------------
1419 class Chuck_Instr_Reg_Push_Now : public Chuck_Instr
1421 public:
1422 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1428 //-----------------------------------------------------------------------------
1429 // name: class Chuck_Instr_Reg_Push_Start
1430 // desc: push value of start to reg stack
1431 //-----------------------------------------------------------------------------
1432 class Chuck_Instr_Reg_Push_Start : public Chuck_Instr
1434 public:
1435 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1441 //-----------------------------------------------------------------------------
1442 // name: class Chuck_Instr_Reg_Push_Maybe
1443 // desc: push immediate to reg stack
1444 //-----------------------------------------------------------------------------
1445 class Chuck_Instr_Reg_Push_Maybe : public Chuck_Instr_Unary_Op
1447 public:
1448 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1454 //-----------------------------------------------------------------------------
1455 // name: class Chuck_Instr_Reg_Push_Mem
1456 // desc: push a variable from mem stack to reg stack
1457 //-----------------------------------------------------------------------------
1458 class Chuck_Instr_Reg_Push_Mem : public Chuck_Instr_Unary_Op
1460 public:
1461 Chuck_Instr_Reg_Push_Mem( uint src )
1462 { this->set( src ); }
1464 public:
1465 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1471 //-----------------------------------------------------------------------------
1472 // name: class Chuck_Instr_Reg_Push_Mem2
1473 // desc: push a double variable from mem stack to reg stack
1474 //-----------------------------------------------------------------------------
1475 class Chuck_Instr_Reg_Push_Mem2 : public Chuck_Instr_Unary_Op
1477 public:
1478 Chuck_Instr_Reg_Push_Mem2( uint src )
1479 { this->set( src ); }
1481 public:
1482 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1488 //-----------------------------------------------------------------------------
1489 // name: class Chuck_Instr_Reg_Push_Deref
1490 // desc: push a double variable from main memory to reg stack
1491 //-----------------------------------------------------------------------------
1492 class Chuck_Instr_Reg_Push_Deref : public Chuck_Instr_Unary_Op
1494 public:
1495 Chuck_Instr_Reg_Push_Deref( uint src, uint size )
1496 { this->set( src ); m_size = size; }
1498 public:
1499 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1500 uint m_size;
1506 //-----------------------------------------------------------------------------
1507 // name: class Chuck_Instr_Reg_Push_Deref
1508 // desc: push a double variable from main memory to reg stack
1509 //-----------------------------------------------------------------------------
1510 class Chuck_Instr_Reg_Push_Deref2 : public Chuck_Instr_Unary_Op2
1512 public:
1513 Chuck_Instr_Reg_Push_Deref2( double src )
1514 { this->set( src ); }
1516 public:
1517 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1523 //-----------------------------------------------------------------------------
1524 // name: class Chuck_Instr_Mem_Push_Imm
1525 // desc: push a value unto mem stack
1526 //-----------------------------------------------------------------------------
1527 class Chuck_Instr_Mem_Push_Imm : public Chuck_Instr_Unary_Op
1529 public:
1530 Chuck_Instr_Mem_Push_Imm( uint src )
1531 { this->set( src ); }
1533 public:
1534 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1539 //-----------------------------------------------------------------------------
1540 // name: class Chuck_Instr_Mem_Push_Imm2
1541 // desc: push a double value unto mem stack
1542 //-----------------------------------------------------------------------------
1543 class Chuck_Instr_Mem_Push_Imm2 : public Chuck_Instr_Unary_Op2
1545 public:
1546 Chuck_Instr_Mem_Push_Imm2( double src )
1547 { this->set( src ); }
1549 public:
1550 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1555 //-----------------------------------------------------------------------------
1556 // name: class Chuck_Instr_Mem_Pop_Word
1557 // desc: pop a value from mem stack
1558 //-----------------------------------------------------------------------------
1559 class Chuck_Instr_Mem_Pop_Word : public Chuck_Instr
1561 public:
1562 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1568 //-----------------------------------------------------------------------------
1569 // name: class Chuck_Instr_Mem_Pop_Word2
1570 // desc: pop a value from mem stack
1571 //-----------------------------------------------------------------------------
1572 class Chuck_Instr_Mem_Pop_Word2 : public Chuck_Instr
1574 public:
1575 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1581 //-----------------------------------------------------------------------------
1582 // name: class Chuck_Instr_Nop
1583 // desc: no op
1584 //-----------------------------------------------------------------------------
1585 class Chuck_Instr_Nop : public Chuck_Instr
1587 public:
1588 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1594 //-----------------------------------------------------------------------------
1595 // name: class Chuck_Instr_EOC
1596 // desc: ...
1597 //-----------------------------------------------------------------------------
1598 class Chuck_Instr_EOC : public Chuck_Instr
1600 public:
1601 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1607 //-----------------------------------------------------------------------------
1608 // name: class Chuck_Instr_Chuck_Assign
1609 // desc: ...
1610 //-----------------------------------------------------------------------------
1611 class Chuck_Instr_Chuck_Assign : public Chuck_Instr
1613 public:
1614 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1620 //-----------------------------------------------------------------------------
1621 // name: class Chuck_Instr_Chuck_Assign
1622 // desc: ...
1623 //-----------------------------------------------------------------------------
1624 class Chuck_Instr_Chuck_Assign2 : public Chuck_Instr
1626 public:
1627 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1633 //-----------------------------------------------------------------------------
1634 // name: class Chuck_Instr_Chuck_Assign_Deref
1635 // desc: ...
1636 //-----------------------------------------------------------------------------
1637 class Chuck_Instr_Chuck_Assign_Deref : public Chuck_Instr
1639 public:
1640 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1646 //-----------------------------------------------------------------------------
1647 // name: class Chuck_Instr_Chuck_Assign_Deref2
1648 // desc: ...
1649 //-----------------------------------------------------------------------------
1650 class Chuck_Instr_Chuck_Assign_Deref2 : public Chuck_Instr
1652 public:
1653 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1659 //-----------------------------------------------------------------------------
1660 // name: class Chuck_Instr_Chuck_Assign_Object
1661 // desc: ...
1662 //-----------------------------------------------------------------------------
1663 class Chuck_Instr_Chuck_Assign_Object : public Chuck_Instr
1665 public:
1666 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1672 //-----------------------------------------------------------------------------
1673 // name: class Chuck_Instr_Chuck_Assign_Object_Deref
1674 // desc: ...
1675 //-----------------------------------------------------------------------------
1676 class Chuck_Instr_Chuck_Assign_Object_Deref : public Chuck_Instr
1678 public:
1679 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1685 //-----------------------------------------------------------------------------
1686 // name: class Chuck_Instr_Chuck_Assign_Object2
1687 // desc: ...
1688 //-----------------------------------------------------------------------------
1689 class Chuck_Instr_Chuck_Assign_Object2 : public Chuck_Instr
1691 public:
1692 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1698 //-----------------------------------------------------------------------------
1699 // name: class Chuck_Instr_Chuck_Release_Object
1700 // desc: ...
1701 //-----------------------------------------------------------------------------
1702 class Chuck_Instr_Chuck_Release_Object : public Chuck_Instr
1704 public:
1705 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1711 //-----------------------------------------------------------------------------
1712 // name: class Chuck_Instr_Func_Call
1713 // desc: ...
1714 //-----------------------------------------------------------------------------
1715 class Chuck_Instr_Func_Call : public Chuck_Instr
1717 public:
1718 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1724 //-----------------------------------------------------------------------------
1725 // name: class Chuck_Instr_Func_Call2
1726 // desc: ...
1727 //-----------------------------------------------------------------------------
1728 class Chuck_Instr_Func_Call2 : public Chuck_Instr
1730 public:
1731 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1737 //-----------------------------------------------------------------------------
1738 // name: class Chuck_Instr_Func_Call3
1739 // desc: ...
1740 //-----------------------------------------------------------------------------
1741 class Chuck_Instr_Func_Call3 : public Chuck_Instr
1743 public:
1744 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1750 //-----------------------------------------------------------------------------
1751 // name: class Chuck_Instr_Func_Call0
1752 // desc: ...
1753 //-----------------------------------------------------------------------------
1754 class Chuck_Instr_Func_Call0 : public Chuck_Instr
1756 public:
1757 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1763 //-----------------------------------------------------------------------------
1764 // name: class Chuck_Instr_Func_Return
1765 // desc: ...
1766 //-----------------------------------------------------------------------------
1767 class Chuck_Instr_Func_Return : public Chuck_Instr
1769 public:
1770 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1776 //-----------------------------------------------------------------------------
1777 // name: class Chuck_Instr_Spork
1778 // desc: ...
1779 //-----------------------------------------------------------------------------
1780 class Chuck_Instr_Spork : public Chuck_Instr_Unary_Op
1782 public:
1783 Chuck_Instr_Spork( uint v = 0 ) { this->set( v ); }
1784 public:
1785 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1791 //-----------------------------------------------------------------------------
1792 // name: enum CI_PrintTypeEnum
1793 // desc: ...
1794 //-----------------------------------------------------------------------------
1795 enum CI_PrintTypeEnum
1797 cip_int = 1,
1798 cip_uint,
1799 cip_float,
1800 cip_double,
1801 cip_single,
1802 cip_string,
1803 cip_dur,
1804 cip_time,
1805 cip_object
1811 //-----------------------------------------------------------------------------
1812 // name: class Chuck_Instr_Print_Console
1813 // desc: ...
1814 //-----------------------------------------------------------------------------
1815 class Chuck_Instr_Print_Console : public Chuck_Instr
1817 public:
1818 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1824 //-----------------------------------------------------------------------------
1825 // name: class Chuck_Instr_Print_Console2
1826 // desc: ..
1827 //-----------------------------------------------------------------------------
1828 class Chuck_Instr_Print_Console2 : public Chuck_Instr
1830 public:
1831 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1837 //-----------------------------------------------------------------------------
1838 // name: class Chuck_Instr_Time_Advance
1839 // desc: ...
1840 //-----------------------------------------------------------------------------
1841 class Chuck_Instr_Time_Advance : public Chuck_Instr
1843 public:
1844 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1850 //-----------------------------------------------------------------------------
1851 // name: class Chuck_Instr_Midi_Out
1852 // desc: ...
1853 //-----------------------------------------------------------------------------
1854 class Chuck_Instr_Midi_Out : public Chuck_Instr_Unary_Op
1856 public:
1857 Chuck_Instr_Midi_Out( uint mode )
1858 { this->set(mode); }
1860 public:
1861 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1867 //-----------------------------------------------------------------------------
1868 // name: class Chuck_Instr_Midi_Out_Go
1869 // desc: ...
1870 //-----------------------------------------------------------------------------
1871 class Chuck_Instr_Midi_Out_Go : public Chuck_Instr_Unary_Op
1873 public:
1874 Chuck_Instr_Midi_Out_Go( uint mode )
1875 { this->set( mode ); }
1877 public:
1878 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1884 //-----------------------------------------------------------------------------
1885 // name: class Chuck_Instr_Midi_In
1886 // desc: ...
1887 //-----------------------------------------------------------------------------
1888 class Chuck_Instr_Midi_In : public Chuck_Instr_Unary_Op
1890 public:
1891 Chuck_Instr_Midi_In( uint mode )
1892 { this->set(mode); }
1894 public:
1895 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1901 //-----------------------------------------------------------------------------
1902 // name: class Chuck_Instr_Midi_In_Go
1903 // desc: ...
1904 //-----------------------------------------------------------------------------
1905 class Chuck_Instr_Midi_In_Go : public Chuck_Instr_Unary_Op
1907 public:
1908 Chuck_Instr_Midi_In_Go( uint mode )
1909 { this->set( mode ); }
1911 public:
1912 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1918 //-----------------------------------------------------------------------------
1919 // name: class Chuck_Instr_ADC
1920 // desc: ...
1921 //-----------------------------------------------------------------------------
1922 class Chuck_Instr_ADC : public Chuck_Instr
1924 public:
1925 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1931 //-----------------------------------------------------------------------------
1932 // name: class Chuck_Instr_DAC
1933 // desc: ...
1934 //-----------------------------------------------------------------------------
1935 class Chuck_Instr_DAC : public Chuck_Instr
1937 public:
1938 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1944 //-----------------------------------------------------------------------------
1945 // name: class Chuck_Instr_Bunghole
1946 // desc: ...
1947 //-----------------------------------------------------------------------------
1948 class Chuck_Instr_Bunghole : public Chuck_Instr
1950 public:
1951 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1957 //-----------------------------------------------------------------------------
1958 // name: class Chuck_Instr_UGen_Link
1959 // desc: ...
1960 //-----------------------------------------------------------------------------
1961 class Chuck_Instr_UGen_Link : public Chuck_Instr
1963 public:
1964 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1970 //-----------------------------------------------------------------------------
1971 // name: class Chuck_Instr_UGen_UnLink
1972 // desc: ...
1973 //-----------------------------------------------------------------------------
1974 class Chuck_Instr_UGen_UnLink : public Chuck_Instr
1976 public:
1977 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1983 //-----------------------------------------------------------------------------
1984 // name: class Chuck_Instr_UGen_Alloc
1985 // desc: ...
1986 //-----------------------------------------------------------------------------
1987 class Chuck_Instr_UGen_Alloc : public Chuck_Instr
1989 public:
1990 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
1996 //-----------------------------------------------------------------------------
1997 // name: class Chuck_Instr_UGen_DeAlloc
1998 // desc: ...
1999 //-----------------------------------------------------------------------------
2000 class Chuck_Instr_UGen_DeAlloc : public Chuck_Instr
2002 public:
2003 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2009 //-----------------------------------------------------------------------------
2010 // name: class Chuck_Instr_UGen_Ctrl
2011 // desc: ...
2012 //-----------------------------------------------------------------------------
2013 class Chuck_Instr_UGen_Ctrl : public Chuck_Instr
2015 public:
2016 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2022 //-----------------------------------------------------------------------------
2023 // name: class Chuck_Instr_UGen_CGet
2024 // desc: ...
2025 //-----------------------------------------------------------------------------
2026 class Chuck_Instr_UGen_CGet : public Chuck_Instr
2028 public:
2029 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2035 //-----------------------------------------------------------------------------
2036 // name: class Chuck_Instr_UGen_Ctrl2
2037 // desc: ...
2038 //-----------------------------------------------------------------------------
2039 class Chuck_Instr_UGen_Ctrl2 : public Chuck_Instr
2041 public:
2042 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2048 //-----------------------------------------------------------------------------
2049 // name: class Chuck_Instr_UGen_CGet2
2050 // desc: ...
2051 //-----------------------------------------------------------------------------
2052 class Chuck_Instr_UGen_CGet2 : public Chuck_Instr
2054 public:
2055 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2061 //-----------------------------------------------------------------------------
2062 // name: class Chuck_Instr_UGen_PMsg
2063 // desc: ...
2064 //-----------------------------------------------------------------------------
2065 class Chuck_Instr_UGen_PMsg : public Chuck_Instr
2067 public:
2068 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2074 //-----------------------------------------------------------------------------
2075 // name: class Chuck_Instr_UGen_Ctrl_Op
2076 // desc: ...
2077 //-----------------------------------------------------------------------------
2078 class Chuck_Instr_UGen_Ctrl_Op : public Chuck_Instr
2080 public:
2081 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2087 //-----------------------------------------------------------------------------
2088 // name: class Chuck_Instr_UGen_CGet_Op
2089 // desc: ...
2090 //-----------------------------------------------------------------------------
2091 class Chuck_Instr_UGen_CGet_Op : public Chuck_Instr
2093 public:
2094 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2100 //-----------------------------------------------------------------------------
2101 // name: class Chuck_Instr_UGen_CGet_Gain
2102 // desc: ...
2103 //-----------------------------------------------------------------------------
2104 class Chuck_Instr_UGen_CGet_Gain : public Chuck_Instr
2106 public:
2107 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2113 //-----------------------------------------------------------------------------
2114 // name: class Chuck_Instr_UGen_Ctrl_Gain
2115 // desc: ...
2116 //-----------------------------------------------------------------------------
2117 class Chuck_Instr_UGen_Ctrl_Gain : public Chuck_Instr
2119 public:
2120 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2126 //-----------------------------------------------------------------------------
2127 // name: class Chuck_Instr_UGen_CGet_Last
2128 // desc: ...
2129 //-----------------------------------------------------------------------------
2130 class Chuck_Instr_UGen_CGet_Last : public Chuck_Instr
2132 public:
2133 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2139 //-----------------------------------------------------------------------------
2140 // name: class Chuck_Instr_DLL_Load
2141 // desc: ...
2142 //-----------------------------------------------------------------------------
2143 class Chuck_Instr_DLL_Load : public Chuck_Instr
2145 public:
2146 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2152 //-----------------------------------------------------------------------------
2153 // name: class Chuck_Instr_DLL_Unload
2154 // desc: ...
2155 //-----------------------------------------------------------------------------
2156 class Chuck_Instr_DLL_Unload : public Chuck_Instr
2158 public:
2159 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2165 //-----------------------------------------------------------------------------
2166 // name: class Chuck_Instr_Cast_single2int
2167 // desc: ...
2168 //-----------------------------------------------------------------------------
2169 class Chuck_Instr_Cast_single2int : public Chuck_Instr
2171 public:
2172 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2178 //-----------------------------------------------------------------------------
2179 // name: class Chuck_Instr_Cast_int2single
2180 // desc: ...
2181 //-----------------------------------------------------------------------------
2182 class Chuck_Instr_Cast_int2single : public Chuck_Instr
2184 public:
2185 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2191 //-----------------------------------------------------------------------------
2192 // name: class Chuck_Instr_Cast_double2int
2193 // desc: ...
2194 //-----------------------------------------------------------------------------
2195 class Chuck_Instr_Cast_double2int : public Chuck_Instr
2197 public:
2198 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2204 //-----------------------------------------------------------------------------
2205 // name: class Chuck_Instr_Cast_int2double
2206 // desc: ...
2207 //-----------------------------------------------------------------------------
2208 class Chuck_Instr_Cast_int2double : public Chuck_Instr
2210 public:
2211 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2217 //-----------------------------------------------------------------------------
2218 // name: class Chuck_Instr_Cast_single2double
2219 // desc: ...
2220 //-----------------------------------------------------------------------------
2221 class Chuck_Instr_Cast_single2double : public Chuck_Instr
2223 public:
2224 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2230 //-----------------------------------------------------------------------------
2231 // name: class Chuck_Instr_Cast_double2single
2232 // desc: ...
2233 //-----------------------------------------------------------------------------
2234 class Chuck_Instr_Cast_double2single : public Chuck_Instr
2236 public:
2237 virtual void execute( Chuck_VM * vm, Chuck_VM_Shred * shred );
2243 #endif