quakeforge/libs/gamecode
Bill Currie b9e32ee2f5 [gamecode] Rework call and return instructions
The call1-8 instructions have been removed as they are really not needed
(they were put in when I had plans of simple translation of v6p progs to
ruamoko, but they joined the dinosaurs).

The call instruction lost mode A (that is now return) and its mode B is
just the regular function access. The important thing is op_c (with
support for with-bases) specifies the location of the return def.

The return instruction packs both its addressing mode and return value
size into st->c as a 3.5 value: 3 bits for the mode (it supports all
five addressing modes with entity.field being mode 4) and 5 for the
size, limiting return sizes to 32 words, which is enough for one 4x4
double matrix.

This, especially with the following convert patch, frees up a lot of
instructions.
2022-01-10 11:53:14 +09:00
..
test [gamecode] Rename ifnot and if to be less confusing 2022-01-10 11:27:57 +09:00
Makemodule.am [gamecode] Generate the new opcodes enum too 2022-01-09 01:04:51 +09:00
opcodes.py [gamecode] Rework call and return instructions 2022-01-10 11:53:14 +09:00
pr_builtins.c [gamecode] Remove the wart from def and function names 2021-12-31 15:02:31 +09:00
pr_debug.c [gamecode] Move progs auxiliary headers into a subdirectory 2022-01-09 00:26:52 +09:00
pr_edict.c [gamecode] Switch to using type parameter op macros 2022-01-02 20:46:32 +09:00
pr_exec.c [gamecode] Rework call and return instructions 2022-01-10 11:53:14 +09:00
pr_load.c [gamecode] Remove PR_Opcode_Init 2022-01-07 19:25:34 +09:00
pr_opcode.c [gamecode] Implement ruamoko opcode lookup 2022-01-06 11:47:05 +09:00
pr_parse.c [gamecode] Remove the wart from def and function names 2021-12-31 15:02:31 +09:00
pr_resolve.c [gamecode] Bail if PR_SearchDefs is given 0 defs 2020-03-16 14:24:48 +09:00
pr_resource.c [util] Make hash-tables semi-thread-safe 2020-03-25 15:43:16 +09:00
pr_strings.c [gamecode] Add PROG_V6P_VERSION and bump PROG_VERSION 2022-01-03 13:56:43 +09:00
pr_v6p_opcode.c [gamecode] Move progs auxiliary headers into a subdirectory 2022-01-09 00:26:52 +09:00
pr_zone.c [gamecode] Conform with libc malloc for pr zone 2021-09-26 12:03:44 +09:00
swizzle.py [gamecode] Implement 4-component 32-bit swizzle 2022-01-03 23:27:01 +09:00