2 * opcodes.h -- part of ZilUtils/ZilAsm
4 * Copyright (C) 2016 Jason Self <j@jxself.org>
6 * Based on ZILF (c) 2010, 2015 Jesse McGrew
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation, either version 3 of the
11 * License, or (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>
21 * SPDX-License-Identifier: GPL-3.0-or-later
24 #ifndef ZILASM_OPCODES
25 #define ZILASM_OPCODES 1
31 Zop_store = 1, // ..stores a result
32 Zop_branch = 2, // ..branches to a label
33 Zop_extra = 4, // ..takes an extra operand type byte, for a total of 8 possible operands
34 Zop_varargs = 8, // ..is nominally 2OP but can take up to 4 operands
35 Zop_string = 16, // ..has a string literal operand
36 Zop_label = 32, // ..can take a local label operand
37 Zop_indvar = 64, // ..first operand is an indirect variable number
38 Zop_call = 128, // ..first operand is a packed routine address
39 Zop_term = 256 // ..control flow does not pass to the following instruction
47 extern Symtable *Opcodes;
49 void init_opcodes(int version, int inform_syntax);
51 #endif /* ifndef ZILASM_OPCODES */