2001-09-28 06:26:31 +00:00
|
|
|
/*
|
2022-01-04 11:45:45 +00:00
|
|
|
pr_v6p_opcodes.c
|
2001-07-14 02:34:16 +00:00
|
|
|
|
2022-01-04 11:45:45 +00:00
|
|
|
Opcode table and checking for v6+ progs.
|
2001-07-14 02:34:16 +00:00
|
|
|
|
2022-01-04 11:45:45 +00:00
|
|
|
Copyright (C) 1996-1997 Id Software, Inc.
|
|
|
|
Copyright (C) 2001 Bill Currie <bill@taniwha.org>
|
2001-09-28 06:26:31 +00:00
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License
|
|
|
|
as published by the Free Software Foundation; either version 2
|
|
|
|
of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to:
|
|
|
|
|
|
|
|
Free Software Foundation, Inc.
|
|
|
|
59 Temple Place - Suite 330
|
|
|
|
Boston, MA 02111-1307, USA
|
2001-07-14 02:34:16 +00:00
|
|
|
|
|
|
|
*/
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include "config.h"
|
|
|
|
#endif
|
2003-01-15 15:31:36 +00:00
|
|
|
|
2001-07-14 04:12:48 +00:00
|
|
|
#ifdef HAVE_STRING_H
|
|
|
|
# include "string.h"
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_STRINGS_H
|
|
|
|
# include "strings.h"
|
|
|
|
#endif
|
|
|
|
|
2001-12-12 08:39:47 +00:00
|
|
|
#include "QF/cvar.h"
|
2001-11-02 22:41:11 +00:00
|
|
|
#include "QF/progs.h"
|
2010-01-13 06:36:54 +00:00
|
|
|
#include "QF/sys.h"
|
2001-07-14 02:34:16 +00:00
|
|
|
|
2022-01-08 15:26:52 +00:00
|
|
|
#include "QF/progs/pr_comp.h"
|
|
|
|
|
2018-10-11 04:24:03 +00:00
|
|
|
#include "compat.h"
|
|
|
|
|
2003-07-30 22:24:16 +00:00
|
|
|
// default format is "%Ga, %Gb, %gc"
|
2004-01-31 08:34:01 +00:00
|
|
|
// V global_string, contents, void
|
|
|
|
// G global_string, contents
|
|
|
|
// g global_string, no contents
|
2003-07-30 22:24:16 +00:00
|
|
|
// s as short
|
|
|
|
// O address + short
|
2007-04-09 06:16:03 +00:00
|
|
|
// P function parameter
|
|
|
|
// F function (must come before any P)
|
2007-09-15 07:47:31 +00:00
|
|
|
// R return value
|
2010-11-19 15:31:34 +00:00
|
|
|
// E entity + field (%Eab)
|
2022-01-27 04:29:38 +00:00
|
|
|
// M addressing mode, contents
|
|
|
|
// m addressing mode, no contents
|
|
|
|
// takes operand (a,b,c,o (opcode)) and right shift(hex). always masked
|
|
|
|
// by 3
|
|
|
|
// %Mc5 -> contents, operand c, shift right 5 bits
|
|
|
|
// %mo2 -> no contents, opcode, shift right 2 bits
|
|
|
|
// %mo0 -> no contents, opcode, no shift
|
|
|
|
// always uses a and b for the address calculation (Ruamoko convention))
|
2003-07-30 22:24:16 +00:00
|
|
|
//
|
|
|
|
// a operand a
|
|
|
|
// b operand b
|
|
|
|
// c operand c
|
2022-01-27 04:29:38 +00:00
|
|
|
// o opcode
|
2007-04-09 06:16:03 +00:00
|
|
|
// x place holder for P (padding)
|
|
|
|
// 0-7 parameter index (for P)
|
2022-01-02 12:06:14 +00:00
|
|
|
VISIBLE const v6p_opcode_t pr_v6p_opcodes[] = {
|
|
|
|
// OP_DONE_v6p is actually the same as OP_RETURN_v6p, the types are bogus
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_DONE_v6p] = {"done", "done",
|
2022-01-02 10:02:48 +00:00
|
|
|
ev_entity, ev_field, ev_void,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Va",
|
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_D_v6p] = {"mul", "mul.d",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_double, ev_double, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_F_v6p] = {"mul", "mul.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-11-12 11:04:19 +00:00
|
|
|
[OP_MUL_V_v6p] = {"vdot", "mul.v",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_vector, ev_vector, ev_float,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-30 05:47:26 +00:00
|
|
|
[OP_MUL_FV_v6p] = {"scale", "mul.fv",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_vector, ev_vector,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-30 05:47:26 +00:00
|
|
|
[OP_MUL_VF_v6p] = {"scale", "mul.vf",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_vector, ev_float, ev_vector,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_DV_v6p] = {"mul", "mul.dv",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_double, ev_vector, ev_vector,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_VD_v6p] = {"mul", "mul.vd",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_vector, ev_double, ev_vector,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_Q_v6p] = {"mul", "mul.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_quaternion, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_FQ_v6p] = {"mul", "mul.fq",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_float, ev_quaternion, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_QF_v6p] = {"mul", "mul.qf",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_float, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_DQ_v6p] = {"mul", "mul.dq",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_double, ev_quaternion, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_QD_v6p] = {"mul", "mul.qd",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_double, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_QV_v6p] = {"mul", "mul.qv",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_vector, ev_vector,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2012-04-26 01:29:21 +00:00
|
|
|
},
|
2003-07-30 22:24:16 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CONJ_Q_v6p] = {"conj", "conj.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_invalid, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2012-07-19 00:57:03 +00:00
|
|
|
"%Ga, %gc",
|
2004-04-08 04:57:17 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_DIV_F_v6p] = {"div", "div.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_DIV_D_v6p] = {"div", "div.d",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_double, ev_double, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_REM_D_v6p] = {"rem", "rem.d",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_double, ev_double, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MOD_D_v6p] = {"mod", "mod.d",
|
2020-02-16 02:53:56 +00:00
|
|
|
ev_double, ev_double, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-16 02:53:56 +00:00
|
|
|
},
|
2003-07-30 22:24:16 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADD_D_v6p] = {"add", "add.d",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_double, ev_double, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADD_F_v6p] = {"add", "add.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADD_V_v6p] = {"add", "add.v",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_vector, ev_vector, ev_vector,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADD_Q_v6p] = {"add", "add.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_quaternion, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADD_S_v6p] = {"add", "add.s",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_string, ev_string, ev_string,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_SUB_D_v6p] = {"sub", "sub.d",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_double, ev_double, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_SUB_F_v6p] = {"sub", "sub.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_SUB_V_v6p] = {"sub", "sub.v",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_vector, ev_vector, ev_vector,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_SUB_Q_v6p] = {"sub", "sub.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_quaternion, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
},
|
2003-07-30 22:24:16 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_EQ_D_v6p] = {"eq", "eq.d",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_double, ev_double, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_EQ_F_v6p] = {"eq", "eq.f",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_float, ev_float, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_EQ_V_v6p] = {"eq", "eq.v",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_vector, ev_vector, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_EQ_Q_v6p] = {"eq", "eq.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_quaternion, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_EQ_S_v6p] = {"eq", "eq.s",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_string, ev_string, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_EQ_E_v6p] = {"eq", "eq.e",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_entity, ev_entity, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_EQ_FN_v6p] = {"eq", "eq.fn",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_func, ev_func, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NE_D_v6p] = {"ne", "ne.d",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_double, ev_double, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NE_F_v6p] = {"ne", "ne.f",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_float, ev_float, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NE_V_v6p] = {"ne", "ne.v",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_vector, ev_vector, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NE_Q_v6p] = {"ne", "ne.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_quaternion, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
},
|
2022-01-29 09:18:33 +00:00
|
|
|
[OP_NE_S_v6p] = {"cmp", "ne.s",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_string, ev_string, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NE_E_v6p] = {"ne", "ne.e",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_entity, ev_entity, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NE_FN_v6p] = {"ne", "ne.fn",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_func, ev_func, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LE_D_v6p] = {"le", "le.d",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_double, ev_double, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LE_F_v6p] = {"le", "le.f",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_float, ev_float, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GE_D_v6p] = {"ge", "ge.d",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_double, ev_double, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GE_F_v6p] = {"ge", "ge.f",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_float, ev_float, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LE_S_v6p] = {"le", "le.s",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_string, ev_string, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GE_S_v6p] = {"ge", "ge.s",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_string, ev_string, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LT_D_v6p] = {"lt", "lt.d",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_double, ev_double, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LT_F_v6p] = {"lt", "lt.f",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_float, ev_float, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GT_D_v6p] = {"gt", "gt.d",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_double, ev_double, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GT_F_v6p] = {"gt", "gt.f",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_float, ev_float, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LT_S_v6p] = {"lt", "lt.s",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_string, ev_string, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GT_S_v6p] = {"gt", "gt.s",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_string, ev_string, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOAD_F_v6p] = {"load", "load.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_entity, ev_field, ev_float,
|
|
|
|
PROG_ID_VERSION,
|
2010-11-19 15:31:34 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",//FIXME %E more flexible?
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOAD_D_v6p] = {"load", "load.d",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_entity, ev_field, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOAD_V_v6p] = {"load", "load.v",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_entity, ev_field, ev_vector,
|
|
|
|
PROG_ID_VERSION,
|
2010-11-19 15:31:34 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOAD_Q_v6p] = {"load", "load.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_entity, ev_field, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2010-11-19 15:31:34 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",
|
2004-04-08 00:56:30 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOAD_S_v6p] = {"load", "load.s",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_entity, ev_field, ev_string,
|
|
|
|
PROG_ID_VERSION,
|
2010-11-19 15:31:34 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOAD_ENT_v6p] = {"load", "load.ent",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_entity, ev_field, ev_entity,
|
|
|
|
PROG_ID_VERSION,
|
2010-11-19 15:31:34 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOAD_FLD_v6p] = {"load", "load.fld",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_entity, ev_field, ev_field,
|
|
|
|
PROG_ID_VERSION,
|
2010-11-19 15:31:34 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOAD_FN_v6p] = {"load", "load.fn",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_entity, ev_field, ev_func,
|
|
|
|
PROG_ID_VERSION,
|
2010-11-19 15:31:34 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOAD_I_v6p] = {"load", "load.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_entity, ev_field, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2010-11-19 15:31:34 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOAD_P_v6p] = {"load", "load.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_entity, ev_field, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2010-11-19 15:31:34 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADB_D_v6p] = {"load", "loadb.d",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"*(%Ga + %Gb), %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADB_F_v6p] = {"load", "loadb.f",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %Gb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADB_V_v6p] = {"load", "loadb.v",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_vector,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %Gb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADB_Q_v6p] = {"load", "loadb.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_ptr, ev_int, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
"*(%Ga + %Gb), %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADB_S_v6p] = {"load", "loadb.s",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_string,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %Gb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADB_ENT_v6p] = {"load", "loadb.ent",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_entity,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %Gb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADB_FLD_v6p] = {"load", "loadb.fld",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_field,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %Gb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADB_FN_v6p] = {"load", "loadb.fn",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_func,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %Gb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADB_I_v6p] = {"load", "loadb.i",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %Gb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADB_P_v6p] = {"load", "loadb.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %Gb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADBI_D_v6p] = {"load", "loadbi.d",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"*(%Ga + %sb), %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADBI_F_v6p] = {"load", "loadbi.f",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %sb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADBI_V_v6p] = {"load", "loadbi.v",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_vector,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %sb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADBI_Q_v6p] = {"load", "loadbi.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_ptr, ev_short, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
"*(%Ga + %sb), %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADBI_S_v6p] = {"load", "loadbi.s",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_string,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %sb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADBI_ENT_v6p] = {"load", "loadbi.ent",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_entity,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %sb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADBI_FLD_v6p] = {"load", "loadbi.fld",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_field,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %sb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADBI_FN_v6p] = {"load", "loadbi.fn",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_func,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %sb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADBI_I_v6p] = {"load", "loadbi.i",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %sb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LOADBI_P_v6p] = {"load", "loadbi.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"*(%Ga + %sb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_v6p] = {"lea", "address",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_entity, ev_field, ev_ptr,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2013-01-17 07:43:54 +00:00
|
|
|
"%Ga.%Gb(%Ec), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_VOID_v6p] = {"lea", "address",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_void, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2011-03-10 10:28:03 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_D_v6p] = {"lea", "address.d",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_double, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_F_v6p] = {"lea", "address.f",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_float, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_V_v6p] = {"lea", "address.v",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_vector, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_Q_v6p] = {"lea", "address.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_S_v6p] = {"lea", "address.s",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_string, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_ENT_v6p] = {"lea", "address.ent",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_entity, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_FLD_v6p] = {"lea", "address.fld",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_field, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_FN_v6p] = {"lea", "address.fn",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_func, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_I_v6p] = {"lea", "address.i",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_int, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADDRESS_P_v6p] = {"lea", "address.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_invalid, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LEA_v6p] = {"lea", "lea",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-03-15 01:06:37 +00:00
|
|
|
"(%Ga + %Gb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LEAI_v6p] = {"lea", "leai",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-03-15 01:06:37 +00:00
|
|
|
"(%Ga + %sb), %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CONV_IF_v6p] = {"conv", "conv.if",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_invalid, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CONV_FI_v6p] = {"conv", "conv.fi",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_float, ev_invalid, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CONV_ID_v6p] = {"conv", "conv.id",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_invalid, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CONV_DI_v6p] = {"conv", "conv.di",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_double, ev_invalid, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CONV_FD_v6p] = {"conv", "conv.fd",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_float, ev_invalid, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CONV_DF_v6p] = {"conv", "conv.df",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_double, ev_invalid, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2003-07-30 22:24:16 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STORE_D_v6p] = {"assign", "store.d",
|
2020-02-14 07:38:37 +00:00
|
|
|
ev_double, ev_double, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"%Ga, %gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STORE_F_v6p] = {"assign", "store.f",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_float, ev_float, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Ga, %gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STORE_V_v6p] = {"assign", "store.v",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_vector, ev_vector, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Ga, %gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STORE_Q_v6p] = {"assign", "store.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_quaternion, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
"%Ga, %gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STORE_S_v6p] = {"assign", "store.s",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_string, ev_string, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Ga, %gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STORE_ENT_v6p] = {"assign", "store.ent",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_entity, ev_entity, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Ga, %gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STORE_FLD_v6p] = {"assign", "store.fld",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_field, ev_field, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Ga, %gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STORE_FN_v6p] = {"assign", "store.fn",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_func, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Ga, %gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STORE_I_v6p] = {"assign", "store.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STORE_P_v6p] = {"assign", "store.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_ptr, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %gb",
|
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREP_D_v6p] = {"store", "storep.d",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_double, ev_ptr, ev_invalid,
|
2020-02-14 07:38:37 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Ga, *%Gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREP_F_v6p] = {"store", "storep.f",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_float, ev_ptr, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *%Gb",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREP_V_v6p] = {"store", "storep.v",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_vector, ev_ptr, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *%Gb",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREP_Q_v6p] = {"store", "storep.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_ptr, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
"%Ga, *%Gb",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREP_S_v6p] = {"store", "storep.s",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_string, ev_ptr, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *%Gb",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREP_ENT_v6p] = {"store", "storep.ent",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_entity, ev_ptr, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *%Gb",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREP_FLD_v6p] = {"store", "storep.fld",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_field, ev_ptr, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *%Gb",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREP_FN_v6p] = {"store", "storep.fn",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_func, ev_ptr, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *%Gb",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREP_I_v6p] = {"store", "storep.i",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_int, ev_ptr, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *%Gb",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREP_P_v6p] = {"store", "storep.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_ptr, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *%Gb",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREB_D_v6p] = {"store", "storeb.d",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_double, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"%Ga, *(%Gb + %Gc)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREB_F_v6p] = {"store", "storeb.f",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_float, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %Gc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREB_V_v6p] = {"store", "storeb.v",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_vector, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %Gc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREB_Q_v6p] = {"store", "storeb.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
"%Ga, *(%Gb + %Gc)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREB_S_v6p] = {"store", "storeb.s",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_string, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %Gc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREB_ENT_v6p] = {"store", "storeb.ent",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_entity, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %Gc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREB_FLD_v6p] = {"store", "storeb.fld",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_field, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %Gc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREB_FN_v6p] = {"store", "storeb.fn",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_func, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %Gc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREB_I_v6p] = {"store", "storeb.i",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_int, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %Gc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREB_P_v6p] = {"store", "storeb.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %Gc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREBI_D_v6p] = {"store", "storebi.d",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_double, ev_ptr, ev_short,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"%Ga, *(%Gb + %sc)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREBI_F_v6p] = {"store", "storebi.f",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_float, ev_ptr, ev_short,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %sc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREBI_V_v6p] = {"store", "storebi.v",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_vector, ev_ptr, ev_short,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %sc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREBI_Q_v6p] = {"store", "storebi.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_ptr, ev_short,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
"%Ga, *(%Gb + %sc)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREBI_S_v6p] = {"store", "storebi.s",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_string, ev_ptr, ev_short,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %sc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREBI_ENT_v6p] = {"store", "storebi.ent",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_entity, ev_ptr, ev_short,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %sc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREBI_FLD_v6p] = {"store", "storebi.fld",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_field, ev_ptr, ev_short,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %sc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREBI_FN_v6p] = {"store", "storebi.fn",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_func, ev_ptr, ev_short,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %sc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREBI_I_v6p] = {"store", "storebi.i",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_int, ev_ptr, ev_short,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %sc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STOREBI_P_v6p] = {"store", "storebi.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_ptr, ev_short,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-09-04 05:30:55 +00:00
|
|
|
"%Ga, *(%Gb + %sc)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_RETURN_v6p] = {"return", "return",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_void, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2007-09-15 07:47:31 +00:00
|
|
|
"%Ra",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 03:41:01 +00:00
|
|
|
[OP_RETURN_V_v6p] = {"return", "return",
|
2011-01-12 15:29:56 +00:00
|
|
|
ev_invalid, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2011-01-12 15:29:56 +00:00
|
|
|
"",
|
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NOT_D_v6p] = {"not", "not.d",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_double, ev_invalid, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-14 07:38:37 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NOT_F_v6p] = {"not", "not.f",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_float, ev_invalid, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-08-05 17:27:47 +00:00
|
|
|
"%Ga, %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NOT_V_v6p] = {"not", "not.v",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_vector, ev_invalid, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-08-05 17:27:47 +00:00
|
|
|
"%Ga, %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NOT_Q_v6p] = {"not", "not.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_invalid, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-04-08 00:56:30 +00:00
|
|
|
"%Ga, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NOT_S_v6p] = {"not", "not.s",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_string, ev_invalid, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-08-05 17:27:47 +00:00
|
|
|
"%Ga, %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NOT_ENT_v6p] = {"not", "not.ent",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_entity, ev_invalid, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-08-05 17:27:47 +00:00
|
|
|
"%Ga, %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NOT_FN_v6p] = {"not", "not.fn",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_func, ev_invalid, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2003-08-05 17:27:47 +00:00
|
|
|
"%Ga, %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NOT_P_v6p] = {"not", "not.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_invalid, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-08-05 17:27:47 +00:00
|
|
|
"%Ga, %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 03:41:01 +00:00
|
|
|
[OP_IF_v6p] = {"ifnz", "if",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_short, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Ga branch %sb (%Ob)",
|
|
|
|
},
|
2022-01-20 03:41:01 +00:00
|
|
|
[OP_IFNOT_v6p] = {"ifz", "ifnot",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_short, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Ga branch %sb (%Ob)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_IFBE_v6p] = {"ifbe", "ifbe",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_short, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga branch %sb (%Ob)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_IFB_v6p] = {"ifb", "ifb",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_short, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga branch %sb (%Ob)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_IFAE_v6p] = {"ifae", "ifae",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_short, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga branch %sb (%Ob)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_IFA_v6p] = {"ifa", "ifa",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_short, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga branch %sb (%Ob)",
|
|
|
|
},
|
2001-07-14 02:34:16 +00:00
|
|
|
|
|
|
|
// calls returns REG_RETURN
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CALL0_v6p] = {"call0", "call0",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa ()",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CALL1_v6p] = {"call1", "call1",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0x)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CALL2_v6p] = {"call2", "call2",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0x, %P1x)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CALL3_v6p] = {"call3", "call3",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0x, %P1x, %P2x)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CALL4_v6p] = {"call4", "call4",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0x, %P1x, %P2x, %P3x)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CALL5_v6p] = {"call5", "call5",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0x, %P1x, %P2x, %P3x, %P4x)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CALL6_v6p] = {"call6", "call6",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0x, %P1x, %P2x, %P3x, %P4x, %P5x)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CALL7_v6p] = {"call7", "call7",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0x, %P1x, %P2x, %P3x, %P4x, %P5x, %P6x)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_CALL8_v6p] = {"call8", "call8",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0x, %P1x, %P2x, %P3x, %P4x, %P5x, %P6x, %P7x)",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_RCALL0_v6p] = {"rcall0", 0,
|
2021-12-31 10:16:02 +00:00
|
|
|
ev_invalid, ev_invalid, ev_invalid,
|
|
|
|
~0, // not a valid instruction
|
|
|
|
0,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_RCALL1_v6p] = {"rcall1", "rcall1",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_func, ev_void, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0b)",
|
2005-06-12 09:54:01 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_RCALL2_v6p] = {"rcall2", "rcall2",
|
2005-06-12 09:54:01 +00:00
|
|
|
ev_func, ev_void, ev_void,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0b, %P1c)",
|
2005-06-12 09:54:01 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_RCALL3_v6p] = {"rcall3", "rcall3",
|
2005-06-12 09:54:01 +00:00
|
|
|
ev_func, ev_void, ev_void,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0b, %P1c, %P2x)",
|
2005-06-12 09:54:01 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_RCALL4_v6p] = {"rcall4", "rcall4",
|
2005-06-12 09:54:01 +00:00
|
|
|
ev_func, ev_void, ev_void,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0b, %P1c, %P2x, %P3x)",
|
2005-06-12 09:54:01 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_RCALL5_v6p] = {"rcall5", "rcall5",
|
2005-06-12 09:54:01 +00:00
|
|
|
ev_func, ev_void, ev_void,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0b, %P1c, %P2x, %P3x, %P4x)",
|
2005-06-12 09:54:01 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_RCALL6_v6p] = {"rcall6", "rcall6",
|
2005-06-12 09:54:01 +00:00
|
|
|
ev_func, ev_void, ev_void,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0b, %P1c, %P2x, %P3x, %P4x, %P5x)",
|
2005-06-12 09:54:01 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_RCALL7_v6p] = {"rcall7", "rcall7",
|
2005-06-12 09:54:01 +00:00
|
|
|
ev_func, ev_void, ev_void,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0b, %P1c, %P2x, %P3x, %P4x, %P5x, %P6x)",
|
2005-06-12 09:54:01 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_RCALL8_v6p] = {"rcall8", "rcall8",
|
2005-06-12 09:54:01 +00:00
|
|
|
ev_func, ev_void, ev_void,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2007-04-09 06:16:03 +00:00
|
|
|
"%Fa (%P0b, %P1c, %P2x, %P3x, %P4x, %P5x, %P6x, %P7x)",
|
2005-06-12 09:54:01 +00:00
|
|
|
},
|
2003-07-30 22:24:16 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STATE_v6p] = {"state", "state",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_float, ev_func, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"%Ga, %Gb",
|
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_STATE_F_v6p] = {"state", "state.f",
|
2004-02-11 01:43:33 +00:00
|
|
|
ev_float, ev_func, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2004-02-11 01:43:33 +00:00
|
|
|
"%Ga, %Gb, %Gc",
|
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GOTO_v6p] = {"jump", "goto",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_short, ev_invalid, ev_invalid,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
"branch %sa (%Oa)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_JUMP_v6p] = {"jump", "jump",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2022-01-30 13:39:21 +00:00
|
|
|
[OP_JUMPB_v6p] = {"jump", "jump",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_void, ev_int, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2011-01-09 10:41:24 +00:00
|
|
|
"%Ga[%Gb]",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_AND_v6p] = {"and", "and.f",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_float, ev_float, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_OR_v6p] = {"or", "or.f",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_float, ev_float, ev_int,
|
2003-07-30 22:24:16 +00:00
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_SHL_F_v6p] = {"shl", "shl.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_SHR_F_v6p] = {"shr", "shr.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_SHL_I_v6p] = {"shl", "shl.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_SHR_I_v6p] = {"shr", "shr.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_SHR_U_v6p] = {"shr", "shr.u",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_uint, ev_int, ev_uint,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_BITAND_v6p] = {"bitand", "bitand.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_BITOR_v6p] = {"bitor", "bitor.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
|
|
|
PROG_ID_VERSION,
|
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_ADD_I_v6p] = {"add", "add.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_SUB_I_v6p] = {"sub", "sub.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MUL_I_v6p] = {"mul", "mul.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_DIV_I_v6p] = {"div", "div.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_REM_I_v6p] = {"rem", "rem.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MOD_I_v6p] = {"mod", "mod.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-16 02:53:56 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_BITAND_I_v6p] = {"bitand", "bitand.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_BITOR_I_v6p] = {"bitor", "bitor.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_REM_F_v6p] = {"rem", "rem.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MOD_F_v6p] = {"mod", "mod.f",
|
2020-02-16 02:53:56 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-02-16 02:53:56 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GE_I_v6p] = {"ge", "ge.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LE_I_v6p] = {"le", "le.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GT_I_v6p] = {"gt", "gt.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LT_I_v6p] = {"lt", "lt.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_AND_I_v6p] = {"and", "and.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_OR_I_v6p] = {"or", "or.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NOT_I_v6p] = {"not", "not.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_invalid, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-08-05 17:27:47 +00:00
|
|
|
"%Ga, %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_EQ_I_v6p] = {"eq", "eq.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NE_I_v6p] = {"ne", "ne.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GE_U_v6p] = {"ge", "ge.u",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_uint, ev_uint, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2011-04-09 01:07:47 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LE_U_v6p] = {"le", "le.u",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_uint, ev_uint, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2011-04-09 01:07:47 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GT_U_v6p] = {"gt", "gt.u",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_uint, ev_uint, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2011-04-09 01:07:47 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LT_U_v6p] = {"lt", "lt.u",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_uint, ev_uint, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2011-04-09 01:07:47 +00:00
|
|
|
},
|
2003-07-30 22:24:16 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_BITXOR_F_v6p] = {"bitxor", "bitxor.f",
|
2003-07-30 22:24:16 +00:00
|
|
|
ev_float, ev_float, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_BITNOT_F_v6p] = {"bitnot", "bitnot.f",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_float, ev_invalid, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-08-05 17:27:47 +00:00
|
|
|
"%Ga, %gc",
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_BITXOR_I_v6p] = {"bitxor", "bitxor.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_BITNOT_I_v6p] = {"bitnot", "bitnot.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_invalid, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-08-05 17:27:47 +00:00
|
|
|
"%Ga, %gc",
|
2003-08-01 21:20:04 +00:00
|
|
|
},
|
2003-07-30 22:24:16 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GE_P_v6p] = {"ge", "ge.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LE_P_v6p] = {"le", "le.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_GT_P_v6p] = {"gt", "gt.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_LT_P_v6p] = {"lt", "lt.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_EQ_P_v6p] = {"eq", "eq.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_NE_P_v6p] = {"ne", "ne.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_ptr, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
},
|
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MOVEI_v6p] = {"move", "movei",
|
2011-01-09 10:41:24 +00:00
|
|
|
ev_void, ev_short, ev_void,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %sb, %gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MOVEP_v6p] = {"movep", "movep",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2003-07-30 22:24:16 +00:00
|
|
|
"%Ga, %Gb, %Gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MOVEPI_v6p] = {"movep", "movepi",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-03-13 08:50:57 +00:00
|
|
|
"%Ga, %sb, %Gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MEMSETI_v6p] = {"memset", "memseti",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_short, ev_void,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-03-13 08:50:57 +00:00
|
|
|
"%Ga, %sb, %gc",
|
2011-03-09 01:29:24 +00:00
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MEMSETP_v6p] = {"memsetp", "memsetp",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_int, ev_int, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-03-11 13:48:55 +00:00
|
|
|
"%Ga, %Gb, %Gc",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_MEMSETPI_v6p] = {"memsetp", "memsetpi",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_int, ev_short, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2020-03-13 08:50:57 +00:00
|
|
|
"%Ga, %sb, %Gc",
|
2020-03-11 13:48:55 +00:00
|
|
|
},
|
2002-10-16 06:44:41 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSH_S_v6p] = {"push", "push.s",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_string, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSH_F_v6p] = {"push", "push.f",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_float, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSH_V_v6p] = {"push", "push.v",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_vector, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSH_ENT_v6p] = {"push", "push.ent",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_entity, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSH_FLD_v6p] = {"push", "push.fld",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_field, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSH_FN_v6p] = {"push", "push.fn",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSH_P_v6p] = {"push", "push.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSH_Q_v6p] = {"push", "push.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSH_I_v6p] = {"push", "push.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSH_D_v6p] = {"push", "push.d",
|
2021-12-31 10:16:02 +00:00
|
|
|
ev_double, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2021-12-31 10:16:02 +00:00
|
|
|
"%Ga",
|
|
|
|
},
|
2018-10-11 04:24:03 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHB_S_v6p] = {"push", "pushb.s",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_string,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHB_F_v6p] = {"push", "pushb.f",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHB_V_v6p] = {"push", "pushb.v",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_vector,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHB_ENT_v6p] = {"push", "pushb.ent",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_entity,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHB_FLD_v6p] = {"push", "pushb.fld",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_field,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHB_FN_v6p] = {"push", "pushb.fn",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_func,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHB_P_v6p] = {"push", "pushb.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHB_Q_v6p] = {"push", "pushb.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_ptr, ev_int, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHB_I_v6p] = {"push", "pushb.i",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHB_D_v6p] = {"push", "pushb.d",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2021-12-31 10:16:02 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2018-10-11 04:24:03 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHBI_S_v6p] = {"push", "pushbi.s",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_string,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHBI_F_v6p] = {"push", "pushbi.f",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHBI_V_v6p] = {"push", "pushbi.v",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_vector,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHBI_ENT_v6p] = {"push", "pushbi.ent",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_entity,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHBI_FLD_v6p] = {"push", "pushbi.fld",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_field,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHBI_FN_v6p] = {"push", "pushbi.fn",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_func,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHBI_P_v6p] = {"push", "pushbi.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHBI_Q_v6p] = {"push", "pushbi.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_ptr, ev_short, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHBI_I_v6p] = {"push", "pushbi.i",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_PUSHBI_D_v6p] = {"push", "pushbi.d",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2021-12-31 10:16:02 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2018-10-11 04:24:03 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POP_S_v6p] = {"pop", "pop.s",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_string, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POP_F_v6p] = {"pop", "pop.f",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_float, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POP_V_v6p] = {"pop", "pop.v",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_vector, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POP_ENT_v6p] = {"pop", "pop.ent",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_entity, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POP_FLD_v6p] = {"pop", "pop.fld",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_field, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POP_FN_v6p] = {"pop", "pop.fn",
|
2018-10-11 04:24:03 +00:00
|
|
|
ev_func, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POP_P_v6p] = {"pop", "pop.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POP_Q_v6p] = {"pop", "pop.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_quaternion, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POP_I_v6p] = {"pop", "pop.i",
|
2022-01-18 04:21:06 +00:00
|
|
|
ev_int, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"%ga",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POP_D_v6p] = {"pop", "pop.d",
|
2021-12-31 10:16:02 +00:00
|
|
|
ev_double, ev_invalid, ev_invalid,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2021-12-31 10:16:02 +00:00
|
|
|
"%ga",
|
|
|
|
},
|
2018-10-11 04:24:03 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPB_S_v6p] = {"pop", "popb.s",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_string,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPB_F_v6p] = {"pop", "popb.f",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPB_V_v6p] = {"pop", "popb.v",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_vector,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPB_ENT_v6p] = {"pop", "popb.ent",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_entity,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPB_FLD_v6p] = {"pop", "popb.fld",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_field,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPB_FN_v6p] = {"pop", "popb.fn",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_func,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPB_P_v6p] = {"pop", "popb.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPB_Q_v6p] = {"pop", "popb.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_ptr, ev_int, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPB_I_v6p] = {"pop", "popb.i",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPB_D_v6p] = {"pop", "popb.d",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_int, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2021-12-31 10:16:02 +00:00
|
|
|
"*(%Ga + %Gb)",
|
|
|
|
},
|
2018-10-11 04:24:03 +00:00
|
|
|
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPBI_S_v6p] = {"pop", "popbi.s",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_string,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPBI_F_v6p] = {"pop", "popbi.f",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_float,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPBI_V_v6p] = {"pop", "popbi.v",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_vector,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPBI_ENT_v6p] = {"pop", "popbi.ent",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_entity,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPBI_FLD_v6p] = {"pop", "popbi.fld",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_field,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPBI_FN_v6p] = {"pop", "popbi.fn",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_func,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPBI_P_v6p] = {"pop", "popbi.p",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_ptr,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPBI_Q_v6p] = {"pop", "popbi.q",
|
2022-01-18 06:48:43 +00:00
|
|
|
ev_ptr, ev_short, ev_quaternion,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPBI_I_v6p] = {"pop", "popbi.i",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_int,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2018-10-11 04:24:03 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2022-01-20 00:26:01 +00:00
|
|
|
[OP_POPBI_D_v6p] = {"pop", "popbi.d",
|
2022-01-18 05:36:06 +00:00
|
|
|
ev_ptr, ev_short, ev_double,
|
2022-01-03 04:56:43 +00:00
|
|
|
PROG_V6P_VERSION,
|
2021-12-31 10:16:02 +00:00
|
|
|
"*(%Ga + %sb)",
|
|
|
|
},
|
2018-10-11 04:24:03 +00:00
|
|
|
|
2002-01-30 21:20:12 +00:00
|
|
|
// end of table
|
2022-01-02 12:06:14 +00:00
|
|
|
[OP_MEMSETPI_v6p+1] = {0}, //XXX FIXME relies on OP_MEMSETPI_v6p being last
|
2001-07-14 02:34:16 +00:00
|
|
|
};
|
|
|
|
|
2022-01-02 12:06:14 +00:00
|
|
|
const v6p_opcode_t *
|
|
|
|
PR_v6p_Opcode (pr_ushort_t opcode)
|
2001-07-14 02:34:16 +00:00
|
|
|
{
|
2022-01-02 12:06:14 +00:00
|
|
|
size_t opcode_count = sizeof (pr_v6p_opcodes) / sizeof (pr_v6p_opcodes[0]);
|
|
|
|
if (opcode >= opcode_count - 1) {
|
2021-12-31 10:16:02 +00:00
|
|
|
return 0;
|
|
|
|
}
|
2022-01-02 12:06:14 +00:00
|
|
|
return &pr_v6p_opcodes[opcode];
|
2001-07-14 02:34:16 +00:00
|
|
|
}
|
|
|
|
|
2001-11-02 22:41:11 +00:00
|
|
|
static inline void
|
2022-01-02 12:06:14 +00:00
|
|
|
check_branch (progs_t *pr, dstatement_t *st, const v6p_opcode_t *op, short offset)
|
2001-11-02 22:41:11 +00:00
|
|
|
{
|
2007-04-06 00:47:41 +00:00
|
|
|
pr_int_t address = st - pr->pr_statements;
|
2012-05-21 23:23:22 +00:00
|
|
|
|
2001-11-13 19:52:03 +00:00
|
|
|
address += offset;
|
2022-01-26 10:30:25 +00:00
|
|
|
if (address < 0 || (pr_uint_t) address >= pr->progs->statements.count)
|
2002-05-18 00:49:16 +00:00
|
|
|
PR_Error (pr, "PR_Check_Opcodes: invalid branch (statement %ld: %s)",
|
2001-11-18 23:40:01 +00:00
|
|
|
(long)(st - pr->pr_statements), op->opname);
|
2001-11-02 22:41:11 +00:00
|
|
|
}
|
|
|
|
|
2011-08-16 03:10:05 +00:00
|
|
|
static int
|
|
|
|
is_vector_parameter_store (progs_t *pr, dstatement_t *st,
|
|
|
|
unsigned short operand)
|
|
|
|
{
|
|
|
|
int i;
|
|
|
|
|
[gamecode] Add a new Ruamoko instruction set
When it's finalized (most of the conversion operations will go, probably
the float bit ops, maybe (very undecided) the 3-component vector ops,
and likely the CALLN ops), this will be the actual instruction set for
Ruamoko.
Main features:
- Significant reduction in redundant instructions: no more multiple
opcodes to move the one operand size.
- load, store, push, and pop share unified addressing mode encoding
(with the exception of mode 0 for load as that is redundant with mode
0 for store, thus load mode 0 gives quick access to entity.field).
- Full support for both 32 and 64 bit signed integer, unsigned integer,
and floating point values.
- SIMD for 1, 2, (currently) 3, and 4 components. Transfers support up
to 128-bit wide operations (need two operations to transfer a full
4-component double/long vector), but all math operations support both
128-bit (32-bit components) and 256-bit (64-bit components) vectors.
- "Interpreted" operations for the various vector sizes: complex dot
and multiplication, 3d vector dot and cross product, quaternion dot
and multiplication, along with qv and vq shortcuts.
- 4-component swizzles for both sizes (not yet implemented, but the
instructions are allocated), with the option to zero or negate (thus
conjugates for complex and quaternion values) individual components.
- "Based offsets": all relevant instructions include base register
indices for all three operands allowing for direct access to any of
four areas (eg, current entity, current stack frame, Objective-QC
self, ...) instructions to set a register and push/pop the four
registers to/from the stack.
Remaining work:
- Implement swizzle operations and a few other stragglers.
= Make a decision about conversion operations (if any instructions
remain, they'll be just single-component (at 14 meaningful pairs,
that's a lot of instructions to waste on SIMD versions).
- Decide whether to keep CALL1-CALL8: probably little point in
supporting two different calling conventions, and it would free up
another eight instructions.
- Unit tests for the instructions.
- Teach qfcc to generate code for the new instruction set (hah, biggest
job, I'm sure, though hopefully not as crazy as the rewrite eleven
years ago).
2022-01-02 14:15:15 +00:00
|
|
|
if ((pr_opcode_v6p_e) st->op != OP_STORE_V_v6p)
|
2011-08-16 03:10:05 +00:00
|
|
|
return 0;
|
|
|
|
if (operand != st->a)
|
|
|
|
return 0;
|
2022-01-23 05:17:25 +00:00
|
|
|
for (i = 0; i < PR_MAX_PARAMS; i++)
|
2011-08-16 03:10:05 +00:00
|
|
|
if (st->b == pr->pr_params[i] - pr->pr_globals)
|
|
|
|
return 1;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2010-01-13 06:36:54 +00:00
|
|
|
#define ISDENORM(x) ((x) && !((x) & 0x7f800000))
|
|
|
|
|
2001-11-02 22:41:11 +00:00
|
|
|
static inline void
|
2022-01-02 12:06:14 +00:00
|
|
|
check_global (progs_t *pr, dstatement_t *st, const v6p_opcode_t *op, etype_t type,
|
2010-11-20 05:12:40 +00:00
|
|
|
unsigned short operand, int check_denorm)
|
2001-11-02 22:41:11 +00:00
|
|
|
{
|
2002-02-11 19:36:36 +00:00
|
|
|
const char *msg;
|
2020-02-22 13:33:44 +00:00
|
|
|
pr_def_t *def;
|
2002-02-11 19:36:36 +00:00
|
|
|
|
2001-12-07 20:07:38 +00:00
|
|
|
switch (type) {
|
|
|
|
case ev_short:
|
|
|
|
break;
|
2011-01-09 10:41:24 +00:00
|
|
|
case ev_invalid:
|
2002-02-11 19:36:36 +00:00
|
|
|
if (operand) {
|
2011-01-09 10:41:24 +00:00
|
|
|
msg = "non-zero global index in invalid operand";
|
2002-02-11 19:36:36 +00:00
|
|
|
goto error;
|
|
|
|
}
|
2001-12-07 20:07:38 +00:00
|
|
|
break;
|
|
|
|
default:
|
2010-01-13 06:19:50 +00:00
|
|
|
if (operand + (unsigned) pr_type_size[type]
|
2022-01-26 10:30:25 +00:00
|
|
|
> pr->progs->globals.count) {
|
|
|
|
if (operand >= pr->progs->globals.count
|
2011-08-16 03:10:05 +00:00
|
|
|
|| !is_vector_parameter_store (pr, st, operand)) {
|
|
|
|
msg = "out of bounds global index";
|
|
|
|
goto error;
|
|
|
|
}
|
2002-02-11 19:36:36 +00:00
|
|
|
}
|
2010-11-20 05:12:40 +00:00
|
|
|
if (type != ev_float || !check_denorm)
|
|
|
|
break;
|
|
|
|
if (!ISDENORM (G_INT (pr, operand))
|
|
|
|
|| G_UINT(pr, operand) == 0x80000000)
|
|
|
|
break;
|
|
|
|
if ((def = PR_GlobalAtOfs (pr, operand))
|
|
|
|
&& (def->type & ~DEF_SAVEGLOBAL) != ev_float) {
|
|
|
|
// FTEqcc uses store.f parameters of most types :/
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
if (!pr->denorm_found) {
|
2010-01-13 06:36:54 +00:00
|
|
|
pr->denorm_found = 1;
|
[cvar] Make cvars properly typed
This is an extremely extensive patch as it hits every cvar, and every
usage of the cvars. Cvars no longer store the value they control,
instead, they use a cexpr value object to reference the value and
specify the value's type (currently, a null type is used for strings).
Non-string cvars are passed through cexpr, allowing expressions in the
cvars' settings. Also, cvars have returned to an enhanced version of the
original (id quake) registration scheme.
As a minor benefit, relevant code having direct access to the
cvar-controlled variables is probably a slight optimization as it
removed a pointer dereference, and the variables can be located for data
locality.
The static cvar descriptors are made private as an additional safety
layer, though there's nothing stopping external modification via
Cvar_FindVar (which is needed for adding listeners).
While not used yet (partly due to working out the design), cvars can
have a validation function.
Registering a cvar allows a primary listener (and its data) to be
specified: it will always be called first when the cvar is modified. The
combination of proper listeners and direct access to the controlled
variable greatly simplifies the more complex cvar interactions as much
less null checking is required, and there's no need for one cvar's
callback to call another's.
nq-x11 is known to work at least well enough for the demos. More testing
will come.
2022-04-23 03:22:45 +00:00
|
|
|
if (pr_boundscheck) {
|
2010-01-13 06:36:54 +00:00
|
|
|
Sys_Printf ("DENORMAL floats detected, these progs might "
|
|
|
|
"not work. Good luck.\n");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
msg = "DENORMAL float detected. These progs are probably "
|
|
|
|
"using qccx arrays and integers. If just simple arrays "
|
|
|
|
"are being used, then they should work, but if "
|
2021-07-26 04:35:35 +00:00
|
|
|
"internal.qc is used, they most definitely will NOT. To "
|
2010-01-13 06:36:54 +00:00
|
|
|
"allow these progs to be used, set pr_boundscheck to 1.";
|
|
|
|
goto error;
|
|
|
|
}
|
2001-12-07 20:07:38 +00:00
|
|
|
break;
|
2001-11-02 22:41:11 +00:00
|
|
|
}
|
2002-02-11 19:36:36 +00:00
|
|
|
return;
|
|
|
|
error:
|
2004-01-31 04:26:01 +00:00
|
|
|
PR_PrintStatement (pr, st, 0);
|
2002-05-18 00:49:16 +00:00
|
|
|
PR_Error (pr, "PR_Check_Opcodes: %s (statement %ld: %s)", msg,
|
2002-02-11 19:36:36 +00:00
|
|
|
(long)(st - pr->pr_statements), op->opname);
|
2001-11-02 22:41:11 +00:00
|
|
|
}
|
|
|
|
|
2011-05-04 00:31:18 +00:00
|
|
|
static void
|
2022-01-02 12:06:14 +00:00
|
|
|
check_global_size (progs_t *pr, dstatement_t *st, const v6p_opcode_t *op,
|
2010-01-13 06:19:50 +00:00
|
|
|
unsigned short size, unsigned short operand)
|
|
|
|
{
|
|
|
|
const char *msg;
|
2022-01-26 10:30:25 +00:00
|
|
|
if (operand + size > pr->progs->globals.count) {
|
2010-01-13 06:19:50 +00:00
|
|
|
msg = "out of bounds global index";
|
|
|
|
goto error;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
error:
|
|
|
|
PR_PrintStatement (pr, st, 0);
|
|
|
|
PR_Error (pr, "PR_Check_Opcodes: %s (statement %ld: %s)", msg,
|
|
|
|
(long)(st - pr->pr_statements), op->opname);
|
|
|
|
}
|
|
|
|
|
2003-11-20 07:46:56 +00:00
|
|
|
int
|
2022-01-21 11:31:49 +00:00
|
|
|
PR_Check_v6p_Opcodes (progs_t *pr)
|
2001-11-02 22:41:11 +00:00
|
|
|
{
|
2022-01-02 12:06:14 +00:00
|
|
|
const v6p_opcode_t *op;
|
2001-11-02 22:41:11 +00:00
|
|
|
dstatement_t *st;
|
2003-11-20 07:46:56 +00:00
|
|
|
int state_ok = 0;
|
2018-10-11 04:24:03 +00:00
|
|
|
int pushpop_ok = 0;
|
2007-04-06 00:47:41 +00:00
|
|
|
pr_uint_t i;
|
2003-11-20 07:46:56 +00:00
|
|
|
|
2022-01-16 10:32:47 +00:00
|
|
|
if (pr->globals.ftime && pr->globals.self && pr->fields.nextthink != -1
|
2018-10-11 04:24:03 +00:00
|
|
|
&& pr->fields.think != -1 && pr->fields.frame != -1) {
|
2003-11-20 07:46:56 +00:00
|
|
|
state_ok = 1;
|
2018-10-11 04:24:03 +00:00
|
|
|
}
|
|
|
|
if (pr->globals.stack) {
|
|
|
|
pushpop_ok = 1;
|
|
|
|
}
|
2003-11-20 07:46:56 +00:00
|
|
|
|
2010-01-13 06:36:54 +00:00
|
|
|
//FIXME need to decide if I really want to always do static bounds checking
|
|
|
|
// the only problem is that it slows progs load a little, but it's the only
|
|
|
|
// way to check for qccx' evil
|
[cvar] Make cvars properly typed
This is an extremely extensive patch as it hits every cvar, and every
usage of the cvars. Cvars no longer store the value they control,
instead, they use a cexpr value object to reference the value and
specify the value's type (currently, a null type is used for strings).
Non-string cvars are passed through cexpr, allowing expressions in the
cvars' settings. Also, cvars have returned to an enhanced version of the
original (id quake) registration scheme.
As a minor benefit, relevant code having direct access to the
cvar-controlled variables is probably a slight optimization as it
removed a pointer dereference, and the variables can be located for data
locality.
The static cvar descriptors are made private as an additional safety
layer, though there's nothing stopping external modification via
Cvar_FindVar (which is needed for adding listeners).
While not used yet (partly due to working out the design), cvars can
have a validation function.
Registering a cvar allows a primary listener (and its data) to be
specified: it will always be called first when the cvar is modified. The
combination of proper listeners and direct access to the controlled
variable greatly simplifies the more complex cvar interactions as much
less null checking is required, and there's no need for one cvar's
callback to call another's.
nq-x11 is known to work at least well enough for the demos. More testing
will come.
2022-04-23 03:22:45 +00:00
|
|
|
if (0 && !pr_boundscheck) {
|
2022-01-26 10:30:25 +00:00
|
|
|
for (i = 0, st = pr->pr_statements; i < pr->progs->statements.count;
|
2003-11-20 07:46:56 +00:00
|
|
|
st++, i++) {
|
2022-03-30 17:50:03 +00:00
|
|
|
pr_opcode_v6p_e st_op = (pr_opcode_v6p_e) st->op;
|
[gamecode] Add a new Ruamoko instruction set
When it's finalized (most of the conversion operations will go, probably
the float bit ops, maybe (very undecided) the 3-component vector ops,
and likely the CALLN ops), this will be the actual instruction set for
Ruamoko.
Main features:
- Significant reduction in redundant instructions: no more multiple
opcodes to move the one operand size.
- load, store, push, and pop share unified addressing mode encoding
(with the exception of mode 0 for load as that is redundant with mode
0 for store, thus load mode 0 gives quick access to entity.field).
- Full support for both 32 and 64 bit signed integer, unsigned integer,
and floating point values.
- SIMD for 1, 2, (currently) 3, and 4 components. Transfers support up
to 128-bit wide operations (need two operations to transfer a full
4-component double/long vector), but all math operations support both
128-bit (32-bit components) and 256-bit (64-bit components) vectors.
- "Interpreted" operations for the various vector sizes: complex dot
and multiplication, 3d vector dot and cross product, quaternion dot
and multiplication, along with qv and vq shortcuts.
- 4-component swizzles for both sizes (not yet implemented, but the
instructions are allocated), with the option to zero or negate (thus
conjugates for complex and quaternion values) individual components.
- "Based offsets": all relevant instructions include base register
indices for all three operands allowing for direct access to any of
four areas (eg, current entity, current stack frame, Objective-QC
self, ...) instructions to set a register and push/pop the four
registers to/from the stack.
Remaining work:
- Implement swizzle operations and a few other stragglers.
= Make a decision about conversion operations (if any instructions
remain, they'll be just single-component (at 14 meaningful pairs,
that's a lot of instructions to waste on SIMD versions).
- Decide whether to keep CALL1-CALL8: probably little point in
supporting two different calling conventions, and it would free up
another eight instructions.
- Unit tests for the instructions.
- Teach qfcc to generate code for the new instruction set (hah, biggest
job, I'm sure, though hopefully not as crazy as the rewrite eleven
years ago).
2022-01-02 14:15:15 +00:00
|
|
|
op = PR_v6p_Opcode (st_op);
|
2003-11-20 07:46:56 +00:00
|
|
|
if (!op) {
|
|
|
|
PR_Error (pr, "PR_Check_Opcodes: unknown opcode %d at "
|
[gamecode] Add a new Ruamoko instruction set
When it's finalized (most of the conversion operations will go, probably
the float bit ops, maybe (very undecided) the 3-component vector ops,
and likely the CALLN ops), this will be the actual instruction set for
Ruamoko.
Main features:
- Significant reduction in redundant instructions: no more multiple
opcodes to move the one operand size.
- load, store, push, and pop share unified addressing mode encoding
(with the exception of mode 0 for load as that is redundant with mode
0 for store, thus load mode 0 gives quick access to entity.field).
- Full support for both 32 and 64 bit signed integer, unsigned integer,
and floating point values.
- SIMD for 1, 2, (currently) 3, and 4 components. Transfers support up
to 128-bit wide operations (need two operations to transfer a full
4-component double/long vector), but all math operations support both
128-bit (32-bit components) and 256-bit (64-bit components) vectors.
- "Interpreted" operations for the various vector sizes: complex dot
and multiplication, 3d vector dot and cross product, quaternion dot
and multiplication, along with qv and vq shortcuts.
- 4-component swizzles for both sizes (not yet implemented, but the
instructions are allocated), with the option to zero or negate (thus
conjugates for complex and quaternion values) individual components.
- "Based offsets": all relevant instructions include base register
indices for all three operands allowing for direct access to any of
four areas (eg, current entity, current stack frame, Objective-QC
self, ...) instructions to set a register and push/pop the four
registers to/from the stack.
Remaining work:
- Implement swizzle operations and a few other stragglers.
= Make a decision about conversion operations (if any instructions
remain, they'll be just single-component (at 14 meaningful pairs,
that's a lot of instructions to waste on SIMD versions).
- Decide whether to keep CALL1-CALL8: probably little point in
supporting two different calling conventions, and it would free up
another eight instructions.
- Unit tests for the instructions.
- Teach qfcc to generate code for the new instruction set (hah, biggest
job, I'm sure, though hopefully not as crazy as the rewrite eleven
years ago).
2022-01-02 14:15:15 +00:00
|
|
|
"statement %ld", st_op,
|
2003-11-20 07:46:56 +00:00
|
|
|
(long)(st - pr->pr_statements));
|
|
|
|
}
|
[gamecode] Add a new Ruamoko instruction set
When it's finalized (most of the conversion operations will go, probably
the float bit ops, maybe (very undecided) the 3-component vector ops,
and likely the CALLN ops), this will be the actual instruction set for
Ruamoko.
Main features:
- Significant reduction in redundant instructions: no more multiple
opcodes to move the one operand size.
- load, store, push, and pop share unified addressing mode encoding
(with the exception of mode 0 for load as that is redundant with mode
0 for store, thus load mode 0 gives quick access to entity.field).
- Full support for both 32 and 64 bit signed integer, unsigned integer,
and floating point values.
- SIMD for 1, 2, (currently) 3, and 4 components. Transfers support up
to 128-bit wide operations (need two operations to transfer a full
4-component double/long vector), but all math operations support both
128-bit (32-bit components) and 256-bit (64-bit components) vectors.
- "Interpreted" operations for the various vector sizes: complex dot
and multiplication, 3d vector dot and cross product, quaternion dot
and multiplication, along with qv and vq shortcuts.
- 4-component swizzles for both sizes (not yet implemented, but the
instructions are allocated), with the option to zero or negate (thus
conjugates for complex and quaternion values) individual components.
- "Based offsets": all relevant instructions include base register
indices for all three operands allowing for direct access to any of
four areas (eg, current entity, current stack frame, Objective-QC
self, ...) instructions to set a register and push/pop the four
registers to/from the stack.
Remaining work:
- Implement swizzle operations and a few other stragglers.
= Make a decision about conversion operations (if any instructions
remain, they'll be just single-component (at 14 meaningful pairs,
that's a lot of instructions to waste on SIMD versions).
- Decide whether to keep CALL1-CALL8: probably little point in
supporting two different calling conventions, and it would free up
another eight instructions.
- Unit tests for the instructions.
- Teach qfcc to generate code for the new instruction set (hah, biggest
job, I'm sure, though hopefully not as crazy as the rewrite eleven
years ago).
2022-01-02 14:15:15 +00:00
|
|
|
if ((st_op == OP_STATE_v6p || st_op == OP_STATE_F_v6p)
|
|
|
|
&& !state_ok) {
|
2003-11-20 07:46:56 +00:00
|
|
|
PR_Error (pr, "PR_Check_Opcodes: %s used with missing fields "
|
|
|
|
"or globals", op->opname);
|
|
|
|
}
|
2022-01-20 00:26:01 +00:00
|
|
|
if ((strequal(op->name, "push") || strequal(op->name, "pop"))
|
2018-10-11 04:24:03 +00:00
|
|
|
&& !pushpop_ok) {
|
|
|
|
PR_Error (pr, "PR_Check_Opcodes: %s used with missing .stack "
|
|
|
|
"globals", op->opname);
|
|
|
|
}
|
2001-11-02 22:41:11 +00:00
|
|
|
}
|
2003-11-20 07:46:56 +00:00
|
|
|
} else {
|
2022-01-26 10:30:25 +00:00
|
|
|
for (i = 0, st = pr->pr_statements; i < pr->progs->statements.count;
|
2003-11-20 07:46:56 +00:00
|
|
|
st++, i++) {
|
2022-03-30 17:50:03 +00:00
|
|
|
pr_opcode_v6p_e st_op = (pr_opcode_v6p_e) st->op;
|
[gamecode] Add a new Ruamoko instruction set
When it's finalized (most of the conversion operations will go, probably
the float bit ops, maybe (very undecided) the 3-component vector ops,
and likely the CALLN ops), this will be the actual instruction set for
Ruamoko.
Main features:
- Significant reduction in redundant instructions: no more multiple
opcodes to move the one operand size.
- load, store, push, and pop share unified addressing mode encoding
(with the exception of mode 0 for load as that is redundant with mode
0 for store, thus load mode 0 gives quick access to entity.field).
- Full support for both 32 and 64 bit signed integer, unsigned integer,
and floating point values.
- SIMD for 1, 2, (currently) 3, and 4 components. Transfers support up
to 128-bit wide operations (need two operations to transfer a full
4-component double/long vector), but all math operations support both
128-bit (32-bit components) and 256-bit (64-bit components) vectors.
- "Interpreted" operations for the various vector sizes: complex dot
and multiplication, 3d vector dot and cross product, quaternion dot
and multiplication, along with qv and vq shortcuts.
- 4-component swizzles for both sizes (not yet implemented, but the
instructions are allocated), with the option to zero or negate (thus
conjugates for complex and quaternion values) individual components.
- "Based offsets": all relevant instructions include base register
indices for all three operands allowing for direct access to any of
four areas (eg, current entity, current stack frame, Objective-QC
self, ...) instructions to set a register and push/pop the four
registers to/from the stack.
Remaining work:
- Implement swizzle operations and a few other stragglers.
= Make a decision about conversion operations (if any instructions
remain, they'll be just single-component (at 14 meaningful pairs,
that's a lot of instructions to waste on SIMD versions).
- Decide whether to keep CALL1-CALL8: probably little point in
supporting two different calling conventions, and it would free up
another eight instructions.
- Unit tests for the instructions.
- Teach qfcc to generate code for the new instruction set (hah, biggest
job, I'm sure, though hopefully not as crazy as the rewrite eleven
years ago).
2022-01-02 14:15:15 +00:00
|
|
|
op = PR_v6p_Opcode (st_op);
|
2003-11-20 07:46:56 +00:00
|
|
|
if (!op) {
|
|
|
|
PR_Error (pr, "PR_Check_Opcodes: unknown opcode %d at "
|
[gamecode] Add a new Ruamoko instruction set
When it's finalized (most of the conversion operations will go, probably
the float bit ops, maybe (very undecided) the 3-component vector ops,
and likely the CALLN ops), this will be the actual instruction set for
Ruamoko.
Main features:
- Significant reduction in redundant instructions: no more multiple
opcodes to move the one operand size.
- load, store, push, and pop share unified addressing mode encoding
(with the exception of mode 0 for load as that is redundant with mode
0 for store, thus load mode 0 gives quick access to entity.field).
- Full support for both 32 and 64 bit signed integer, unsigned integer,
and floating point values.
- SIMD for 1, 2, (currently) 3, and 4 components. Transfers support up
to 128-bit wide operations (need two operations to transfer a full
4-component double/long vector), but all math operations support both
128-bit (32-bit components) and 256-bit (64-bit components) vectors.
- "Interpreted" operations for the various vector sizes: complex dot
and multiplication, 3d vector dot and cross product, quaternion dot
and multiplication, along with qv and vq shortcuts.
- 4-component swizzles for both sizes (not yet implemented, but the
instructions are allocated), with the option to zero or negate (thus
conjugates for complex and quaternion values) individual components.
- "Based offsets": all relevant instructions include base register
indices for all three operands allowing for direct access to any of
four areas (eg, current entity, current stack frame, Objective-QC
self, ...) instructions to set a register and push/pop the four
registers to/from the stack.
Remaining work:
- Implement swizzle operations and a few other stragglers.
= Make a decision about conversion operations (if any instructions
remain, they'll be just single-component (at 14 meaningful pairs,
that's a lot of instructions to waste on SIMD versions).
- Decide whether to keep CALL1-CALL8: probably little point in
supporting two different calling conventions, and it would free up
another eight instructions.
- Unit tests for the instructions.
- Teach qfcc to generate code for the new instruction set (hah, biggest
job, I'm sure, though hopefully not as crazy as the rewrite eleven
years ago).
2022-01-02 14:15:15 +00:00
|
|
|
"statement %ld", st_op,
|
2003-11-20 07:46:56 +00:00
|
|
|
(long)(st - pr->pr_statements));
|
|
|
|
}
|
[gamecode] Add a new Ruamoko instruction set
When it's finalized (most of the conversion operations will go, probably
the float bit ops, maybe (very undecided) the 3-component vector ops,
and likely the CALLN ops), this will be the actual instruction set for
Ruamoko.
Main features:
- Significant reduction in redundant instructions: no more multiple
opcodes to move the one operand size.
- load, store, push, and pop share unified addressing mode encoding
(with the exception of mode 0 for load as that is redundant with mode
0 for store, thus load mode 0 gives quick access to entity.field).
- Full support for both 32 and 64 bit signed integer, unsigned integer,
and floating point values.
- SIMD for 1, 2, (currently) 3, and 4 components. Transfers support up
to 128-bit wide operations (need two operations to transfer a full
4-component double/long vector), but all math operations support both
128-bit (32-bit components) and 256-bit (64-bit components) vectors.
- "Interpreted" operations for the various vector sizes: complex dot
and multiplication, 3d vector dot and cross product, quaternion dot
and multiplication, along with qv and vq shortcuts.
- 4-component swizzles for both sizes (not yet implemented, but the
instructions are allocated), with the option to zero or negate (thus
conjugates for complex and quaternion values) individual components.
- "Based offsets": all relevant instructions include base register
indices for all three operands allowing for direct access to any of
four areas (eg, current entity, current stack frame, Objective-QC
self, ...) instructions to set a register and push/pop the four
registers to/from the stack.
Remaining work:
- Implement swizzle operations and a few other stragglers.
= Make a decision about conversion operations (if any instructions
remain, they'll be just single-component (at 14 meaningful pairs,
that's a lot of instructions to waste on SIMD versions).
- Decide whether to keep CALL1-CALL8: probably little point in
supporting two different calling conventions, and it would free up
another eight instructions.
- Unit tests for the instructions.
- Teach qfcc to generate code for the new instruction set (hah, biggest
job, I'm sure, though hopefully not as crazy as the rewrite eleven
years ago).
2022-01-02 14:15:15 +00:00
|
|
|
switch (st_op) {
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_IF_v6p:
|
|
|
|
case OP_IFNOT_v6p:
|
2010-11-20 05:12:40 +00:00
|
|
|
check_global (pr, st, op, op->type_a, st->a, 1);
|
2003-11-20 07:46:56 +00:00
|
|
|
check_branch (pr, st, op, st->b);
|
|
|
|
break;
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_GOTO_v6p:
|
2003-11-20 07:46:56 +00:00
|
|
|
check_branch (pr, st, op, st->a);
|
|
|
|
break;
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_DONE_v6p:
|
|
|
|
case OP_RETURN_v6p:
|
2022-01-18 04:21:06 +00:00
|
|
|
check_global (pr, st, op, ev_int, st->a, 1);
|
2010-11-20 05:12:40 +00:00
|
|
|
check_global (pr, st, op, ev_void, st->b, 0);
|
|
|
|
check_global (pr, st, op, ev_void, st->c, 0);
|
2003-11-20 07:46:56 +00:00
|
|
|
break;
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_RCALL1_v6p:
|
2010-11-20 05:12:40 +00:00
|
|
|
check_global (pr, st, op, ev_void, st->c, 1);
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_RCALL2_v6p:
|
|
|
|
case OP_RCALL3_v6p:
|
|
|
|
case OP_RCALL4_v6p:
|
|
|
|
case OP_RCALL5_v6p:
|
|
|
|
case OP_RCALL6_v6p:
|
|
|
|
case OP_RCALL7_v6p:
|
|
|
|
case OP_RCALL8_v6p:
|
[gamecode] Add a new Ruamoko instruction set
When it's finalized (most of the conversion operations will go, probably
the float bit ops, maybe (very undecided) the 3-component vector ops,
and likely the CALLN ops), this will be the actual instruction set for
Ruamoko.
Main features:
- Significant reduction in redundant instructions: no more multiple
opcodes to move the one operand size.
- load, store, push, and pop share unified addressing mode encoding
(with the exception of mode 0 for load as that is redundant with mode
0 for store, thus load mode 0 gives quick access to entity.field).
- Full support for both 32 and 64 bit signed integer, unsigned integer,
and floating point values.
- SIMD for 1, 2, (currently) 3, and 4 components. Transfers support up
to 128-bit wide operations (need two operations to transfer a full
4-component double/long vector), but all math operations support both
128-bit (32-bit components) and 256-bit (64-bit components) vectors.
- "Interpreted" operations for the various vector sizes: complex dot
and multiplication, 3d vector dot and cross product, quaternion dot
and multiplication, along with qv and vq shortcuts.
- 4-component swizzles for both sizes (not yet implemented, but the
instructions are allocated), with the option to zero or negate (thus
conjugates for complex and quaternion values) individual components.
- "Based offsets": all relevant instructions include base register
indices for all three operands allowing for direct access to any of
four areas (eg, current entity, current stack frame, Objective-QC
self, ...) instructions to set a register and push/pop the four
registers to/from the stack.
Remaining work:
- Implement swizzle operations and a few other stragglers.
= Make a decision about conversion operations (if any instructions
remain, they'll be just single-component (at 14 meaningful pairs,
that's a lot of instructions to waste on SIMD versions).
- Decide whether to keep CALL1-CALL8: probably little point in
supporting two different calling conventions, and it would free up
another eight instructions.
- Unit tests for the instructions.
- Teach qfcc to generate code for the new instruction set (hah, biggest
job, I'm sure, though hopefully not as crazy as the rewrite eleven
years ago).
2022-01-02 14:15:15 +00:00
|
|
|
if (st_op > OP_RCALL1_v6p)
|
2022-01-18 04:21:06 +00:00
|
|
|
check_global (pr, st, op, ev_int, st->c, 1);
|
|
|
|
check_global (pr, st, op, ev_int, st->b, 1);
|
2010-11-20 05:12:40 +00:00
|
|
|
check_global (pr, st, op, ev_func, st->a, 1);
|
2005-06-12 09:54:01 +00:00
|
|
|
break;
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_STATE_v6p:
|
|
|
|
case OP_STATE_F_v6p:
|
2003-11-20 07:46:56 +00:00
|
|
|
if (!state_ok) {
|
|
|
|
PR_Error (pr, "PR_Check_Opcodes: %s used with missing "
|
|
|
|
"fields or globals", op->opname);
|
|
|
|
}
|
2010-11-20 05:12:40 +00:00
|
|
|
check_global (pr, st, op, op->type_a, st->a, 1);
|
|
|
|
check_global (pr, st, op, op->type_b, st->b, 1);
|
|
|
|
check_global (pr, st, op, op->type_c, st->c, 1);
|
2003-11-20 07:46:56 +00:00
|
|
|
break;
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_MOVEI_v6p:
|
2010-01-13 06:19:50 +00:00
|
|
|
check_global_size (pr, st, op, st->b, st->a);
|
|
|
|
check_global_size (pr, st, op, st->b, st->c);
|
|
|
|
break;
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_MEMSETI_v6p:
|
2020-03-13 08:50:57 +00:00
|
|
|
check_global_size (pr, st, op, st->b, st->c);
|
|
|
|
break;
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_PUSHB_F_v6p:
|
|
|
|
case OP_PUSHB_S_v6p:
|
|
|
|
case OP_PUSHB_ENT_v6p:
|
|
|
|
case OP_PUSHB_FLD_v6p:
|
|
|
|
case OP_PUSHB_FN_v6p:
|
|
|
|
case OP_PUSHB_I_v6p:
|
|
|
|
case OP_PUSHB_P_v6p:
|
|
|
|
case OP_PUSHB_V_v6p:
|
|
|
|
case OP_PUSHB_Q_v6p:
|
|
|
|
case OP_PUSHBI_F_v6p:
|
|
|
|
case OP_PUSHBI_S_v6p:
|
|
|
|
case OP_PUSHBI_ENT_v6p:
|
|
|
|
case OP_PUSHBI_FLD_v6p:
|
|
|
|
case OP_PUSHBI_FN_v6p:
|
|
|
|
case OP_PUSHBI_I_v6p:
|
|
|
|
case OP_PUSHBI_P_v6p:
|
|
|
|
case OP_PUSHBI_V_v6p:
|
|
|
|
case OP_PUSHBI_Q_v6p:
|
2018-10-11 04:24:03 +00:00
|
|
|
// op->type_c is used for selecting the operator during
|
|
|
|
// compilation, but is invalid when running
|
|
|
|
check_global (pr, st, op, op->type_a, st->a, 1);
|
|
|
|
check_global (pr, st, op, op->type_b, st->b, 1);
|
|
|
|
check_global (pr, st, op, ev_invalid, st->c, 1);
|
|
|
|
break;
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_POP_F_v6p:
|
|
|
|
case OP_POP_FLD_v6p:
|
|
|
|
case OP_POP_ENT_v6p:
|
|
|
|
case OP_POP_S_v6p:
|
|
|
|
case OP_POP_FN_v6p:
|
|
|
|
case OP_POP_I_v6p:
|
|
|
|
case OP_POP_P_v6p:
|
|
|
|
case OP_POP_V_v6p:
|
|
|
|
case OP_POP_Q_v6p:
|
2018-10-11 04:24:03 +00:00
|
|
|
// don't want to check for denormal floats, otherwise
|
2022-01-02 12:06:14 +00:00
|
|
|
// OP_POP__v6p* could use the defualt rule
|
2018-10-11 04:24:03 +00:00
|
|
|
check_global (pr, st, op, op->type_a, st->a, 0);
|
|
|
|
check_global (pr, st, op, ev_invalid, st->b, 1);
|
|
|
|
check_global (pr, st, op, ev_invalid, st->c, 1);
|
|
|
|
break;
|
2022-01-02 12:06:14 +00:00
|
|
|
case OP_POPB_F_v6p:
|
|
|
|
case OP_POPB_S_v6p:
|
|
|
|
case OP_POPB_ENT_v6p:
|
|
|
|
case OP_POPB_FLD_v6p:
|
|
|
|
case OP_POPB_FN_v6p:
|
|
|
|
case OP_POPB_I_v6p:
|
|
|
|
case OP_POPB_P_v6p:
|
|
|
|
case OP_POPB_V_v6p:
|
|
|
|
case OP_POPB_Q_v6p:
|
|
|
|
case OP_POPBI_F_v6p:
|
|
|
|
case OP_POPBI_S_v6p:
|
|
|
|
case OP_POPBI_ENT_v6p:
|
|
|
|
case OP_POPBI_FLD_v6p:
|
|
|
|
case OP_POPBI_FN_v6p:
|
|
|
|
case OP_POPBI_I_v6p:
|
|
|
|
case OP_POPBI_P_v6p:
|
|
|
|
case OP_POPBI_V_v6p:
|
|
|
|
case OP_POPBI_Q_v6p:
|
2018-10-11 04:24:03 +00:00
|
|
|
// op->type_c is used for selecting the operator during
|
|
|
|
// compilation, but is invalid when running
|
|
|
|
check_global (pr, st, op, op->type_a, st->a, 1);
|
|
|
|
check_global (pr, st, op, op->type_b, st->b, 1);
|
|
|
|
check_global (pr, st, op, ev_invalid, st->c, 1);
|
|
|
|
break;
|
2003-11-20 07:46:56 +00:00
|
|
|
default:
|
2010-11-20 05:12:40 +00:00
|
|
|
check_global (pr, st, op, op->type_a, st->a, 1);
|
|
|
|
check_global (pr, st, op, op->type_b, st->b,
|
2022-01-02 12:06:14 +00:00
|
|
|
(op - pr_v6p_opcodes) != OP_STORE_F_v6p);
|
2010-11-20 05:12:40 +00:00
|
|
|
check_global (pr, st, op, op->type_c, st->c, 0);
|
2003-11-20 07:46:56 +00:00
|
|
|
break;
|
|
|
|
}
|
2001-11-02 22:41:11 +00:00
|
|
|
}
|
|
|
|
}
|
2003-11-20 07:46:56 +00:00
|
|
|
return 1;
|
2001-11-02 22:41:11 +00:00
|
|
|
}
|