X-Git-Url: https://jxself.org/git/?p=zilutils.git;a=blobdiff_plain;f=zilasm%2Fopcodes.h;h=53e350912f42ba17cd68b4292ddf62e388e1ee28;hp=21e8ac0d0c9140eb45feb57b00ecf2673093a7d8;hb=HEAD;hpb=37d32bd49e745a5c1686b6495f60172b24222361 diff --git a/zilasm/opcodes.h b/zilasm/opcodes.h index 21e8ac0..95a0f4f 100644 --- a/zilasm/opcodes.h +++ b/zilasm/opcodes.h @@ -1,7 +1,7 @@ /* * opcodes.h -- part of ZilUtils/ZilAsm * - * Copyright (C) 2016 Jason Self + * Copyright (C) 2016, 2019, 2020 Jason Self * * Based on ZILF (c) 2010, 2015 Jesse McGrew * @@ -26,26 +26,45 @@ #include "symtable.h" -typedef enum { - Zop_none = 0, - Zop_store = 1, // ..stores a result - Zop_branch = 2, // ..branches to a label - Zop_extra = 4, // ..takes an extra operand type byte, for a total of 8 possible operands - Zop_varargs = 8, // ..is nominally 2OP but can take up to 4 operands - Zop_string = 16, // ..has a string literal operand - Zop_label = 32, // ..can take a local label operand - Zop_indvar = 64, // ..first operand is an indirect variable number - Zop_call = 128, // ..first operand is a packed routine address - Zop_term = 256 // ..control flow does not pass to the following instruction +typedef enum +{ + Zop_none = 0, + Zop_store = 1, // ..stores a result + Zop_branch = 2, // ..branches to a label + Zop_extra = 4, // ..takes an extra operand type byte, for a total of 8 possible operands + Zop_varargs = 8, // ..is nominally 2OP but can take up to 4 operands + Zop_string = 16, // ..has a string literal operand + Zop_label = 32, // ..can take a local label operand + Zop_indvar = 64, // ..first operand is an indirect variable number + Zop_call = 128, // ..first operand is a packed routine address + Zop_term = 256 // ..control flow does not pass to the following instruction } ZOpcode_flags; -typedef struct { - unsigned opcode; - ZOpcode_flags flags; +typedef struct +{ + unsigned opcode; + ZOpcode_flags flags; } ZOpcode; extern Symtable *Opcodes; -void init_opcodes(int version, int inform_syntax); +void init_opcodes (int version, int inform_syntax); -#endif /* ifndef ZILASM_OPCODES */ +enum Opcodes +{ + Opcode_ADD = 20, + Opcode_ASHIFT = 259, + Opcode_ASSIGNED = 255, + Opcode_BAND = 9, + Opcode_CRLF = 187, + Opcode_ICALL1 = 143, + Opcode_ICALL2 = 26, + Opcode_PRINT = 141, + Opcode_PRINTI = 178, + Opcode_PRINTR = 179, + Opcode_QUIT = 186, + Opcode_RTRUE = 176 +}; + + +#endif /* ifndef ZILASM_OPCODES */