mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-05-31 08:41:11 +00:00
get unsigned mostly working
This commit is contained in:
parent
9210829573
commit
dd9ab1e050
8 changed files with 165 additions and 24 deletions
|
@ -327,9 +327,11 @@ PR_ExecuteProgram (progs_t * pr, func_t fnum)
|
|||
OPC.integer_var = OPA.integer_var << OPB.integer_var;
|
||||
break;
|
||||
case OP_SHR_I:
|
||||
case OP_SHR_U:
|
||||
OPC.integer_var = OPA.integer_var >> OPB.integer_var;
|
||||
break;
|
||||
case OP_SHR_U:
|
||||
OPC.uinteger_var = OPA.uinteger_var >> OPB.uinteger_var;
|
||||
break;
|
||||
case OP_GE_F:
|
||||
OPC.float_var = OPA.float_var >= OPB.float_var;
|
||||
break;
|
||||
|
|
|
@ -694,11 +694,11 @@ opcode_t pr_opcodes[] = {
|
|||
"%Ga, %Gb",
|
||||
},
|
||||
|
||||
{"&&", "and", OP_AND, false,
|
||||
{"&&", "and.f", OP_AND, false,
|
||||
ev_float, ev_float, ev_integer,
|
||||
PROG_ID_VERSION,
|
||||
},
|
||||
{"||", "or", OP_OR, false,
|
||||
{"||", "or.f", OP_OR, false,
|
||||
ev_float, ev_float, ev_integer,
|
||||
PROG_ID_VERSION,
|
||||
},
|
||||
|
@ -766,6 +766,35 @@ opcode_t pr_opcodes[] = {
|
|||
PROG_VERSION,
|
||||
},
|
||||
|
||||
{"+", "add.u", OP_ADD_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_uinteger,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"-", "sub.u", OP_SUB_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_uinteger,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"*", "mul.u", OP_MUL_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_uinteger,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"/", "div.u", OP_DIV_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_uinteger,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"%", "mod_u", OP_MOD_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_uinteger,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"&", "bitand.u", OP_BITAND_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_uinteger,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"|", "bitor.u", OP_BITOR_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_uinteger,
|
||||
PROG_VERSION,
|
||||
},
|
||||
|
||||
{"%", "mod.f", OP_MOD_F, false,
|
||||
ev_float, ev_float, ev_float,
|
||||
PROG_VERSION,
|
||||
|
@ -809,6 +838,27 @@ opcode_t pr_opcodes[] = {
|
|||
PROG_VERSION,
|
||||
},
|
||||
|
||||
{"&&", "and.u", OP_AND_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_integer,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"||", "or.u", OP_OR_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_integer,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"!", "not.u", OP_NOT_U, false,
|
||||
ev_uinteger, ev_void, ev_integer,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"==", "eq.u", OP_EQ_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_integer,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"!=", "ne.u", OP_NE_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_integer,
|
||||
PROG_VERSION,
|
||||
},
|
||||
|
||||
{">=", "ge.u", OP_GE_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_integer,
|
||||
PROG_VERSION,
|
||||
|
@ -842,6 +892,14 @@ opcode_t pr_opcodes[] = {
|
|||
ev_integer, ev_void, ev_integer,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"^", "bitxor.u", OP_BITXOR_U, false,
|
||||
ev_uinteger, ev_uinteger, ev_uinteger,
|
||||
PROG_VERSION,
|
||||
},
|
||||
{"~", "bitnot.u", OP_BITNOT_U, false,
|
||||
ev_uinteger, ev_void, ev_uinteger,
|
||||
PROG_VERSION,
|
||||
},
|
||||
|
||||
{">=", "ge.p", OP_GE_P, false,
|
||||
ev_pointer, ev_pointer, ev_integer,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue