quakeforge/tools/qfcc/source
Bill Currie 4135849903 [qfcc] Apply algebraic rules to products of negatives
Any geometric algebra product of two negatives cancels out the negative,
and if the result is negative (because only one operand was negative),
the negation is migrated to above the operation. This resulted in
removing 2 instructions from one if my mini-tests (went from 74 to 78
with the addition/subtraction change, but this takes it back to 76
instructions).
2023-09-02 13:18:27 +09:00
..
.indent.pro indent whitespace cleanup. not perfect, but a bit more consistent now 2001-12-06 19:49:40 +00:00
algebra.c [qfcc] Fix some more multi-vectors type issues 2023-08-30 15:45:44 +09:00
attribute.c [qfcc] Support multiple parameters for attributes 2023-08-25 22:13:54 +09:00
class.c [qfcc] Differentiate symtabs by intended use 2023-02-14 12:45:04 +09:00
codespace.c [gamecode] Move progs auxiliary headers into a subdirectory 2022-01-09 00:26:52 +09:00
constfold.c [qfcc] Correct handling of 64-bit comparisons 2023-08-26 23:04:34 +09:00
cpp.c Get QF cross-compiling using MXE/mingw32 2021-03-27 20:09:37 +09:00
dags.c [qfcc] Search for alias nodes 2023-09-02 10:43:32 +09:00
debug.c [util] Record allocated blocs for ALLOC 2023-03-05 18:31:30 +09:00
def.c [qfcc] Fix adjusted swizzles for the same def 2023-08-26 23:08:55 +09:00
defspace.c [util] Record allocated blocs for ALLOC 2023-03-05 18:31:30 +09:00
diagnostic.c [qfcc] Include C function in diagnostic messages 2023-08-21 17:47:55 +09:00
disassemble.c [gamecode] Rename parm to param 2022-01-27 10:55:06 +09:00
dot.c [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
dot_dag.c [qfcc] Keep track of reachable dag nodes 2021-06-29 09:41:03 +09:00
dot_expr.c [qfcc] Use the new 2d wedge and 2-component swizzles 2023-08-31 20:22:59 +09:00
dot_flow.c [qfcc] Create du-chains from ud-chains 2023-06-04 11:24:52 +09:00
dot_sblock.c [qfcc] Make it a little easier to see extra info 2021-12-27 14:15:51 +09:00
dot_type.c [gamecode] Rename ev_pointer to ev_ptr 2022-01-18 14:36:06 +09:00
dump_globals.c [qfcc] Start work on implementing geometric algebra 2023-08-21 17:58:20 +09:00
dump_lines.c [gamecode] Use a struct for offset/count pairs 2022-01-26 19:30:25 +09:00
dump_modules.c [gamecode] Use a struct for offset/count pairs 2022-01-26 19:30:25 +09:00
dump_strings.c [qfprogs] Dump hex for non-ascii chars 2022-12-10 21:53:00 +09:00
emit.c [qfcc] Use the new 2d wedge and 2-component swizzles 2023-08-31 20:22:59 +09:00
evaluate.c [qfcc] Use the progs VM to help with constant folding 2023-08-21 17:47:55 +09:00
expr.c [qfcc] Use the new 2d wedge and 2-component swizzles 2023-08-31 20:22:59 +09:00
expr_algebra.c [qfcc] Apply algebraic rules to products of negatives 2023-09-02 13:18:27 +09:00
expr_assign.c [qfcc] Use scatter-gather for multivec expressions 2023-08-23 15:38:32 +09:00
expr_binary.c [gamecode] Switch dot products to give a scalar 2023-08-31 15:32:52 +09:00
expr_bool.c [qfcc] Handle more vector type tests 2023-08-30 14:52:38 +09:00
expr_cast.c [qfcc] Correct handling of 64-bit comparisons 2023-08-26 23:04:34 +09:00
expr_compound.c [qfcc] Implement designated initializers 2023-05-27 12:47:33 +09:00
expr_obj.c [qfcc] Make is_function_call a little more useful 2022-02-05 19:30:08 +09:00
expr_vector.c [qfcc] Start work on implementing geometric algebra 2023-08-21 17:58:20 +09:00
flow.c [qfcc] Handle aliased temps better 2023-09-01 11:59:47 +09:00
function.c [qfcc] Fix declarators for pointers/functions/arrays 2023-03-09 02:22:23 +09:00
grab.c [util] Record allocated blocs for ALLOC 2023-03-05 18:31:30 +09:00
idstuff.c [gamecode] Use a struct for offset/count pairs 2022-01-26 19:30:25 +09:00
linker.c [util] Record allocated blocs for ALLOC 2023-03-05 18:31:30 +09:00
Makemodule.am [qfcc] Start work on implementing geometric algebra 2023-08-21 17:58:20 +09:00
method.c [qfcc] Don't free duplicate method when merging 2022-09-19 16:39:25 +01:00
obj_file.c [qfcc] Start work on implementing geometric algebra 2023-08-21 17:58:20 +09:00
obj_type.c [qfcc] Start work on implementing geometric algebra 2023-08-21 17:58:20 +09:00
opcodes.c [qfcc] Always initialize Ruamoko opcodes 2023-09-01 14:40:05 +09:00
options.c [qfcc] Clean up default option handling 2023-09-01 14:18:54 +09:00
pragma.c [qfcc] Allow #pragma to control warning options 2023-08-26 23:47:00 +09:00
qc-lex.l [qfcc] Add some basic 3d PGA tests 2023-08-30 17:32:02 +09:00
qc-parse.y [qfcc] Implement the regressive product 2023-08-28 20:35:03 +09:00
qfcc.c [qfcc] Clean up default option handling 2023-09-01 14:18:54 +09:00
qfpreqcc Better handling of progs.dat and line numbers. 2012-11-15 15:04:51 +09:00
qfprogs.c [util] Support utf-8 strings in Sys_Printf 2023-08-23 21:40:50 +09:00
qp-lex.l [gamecode] Rename ev_integer to ev_int 2022-01-18 13:27:19 +09:00
qp-parse.y [qfcc] Use a hidden local variable for pascal functions 2022-02-01 16:08:58 +09:00
reloc.c [util] Record allocated blocs for ALLOC 2023-03-05 18:31:30 +09:00
shared.c [gamecode] Rename ev_integer to ev_int 2022-01-18 13:27:19 +09:00
statements.c [qfcc] Handle aliased temps better 2023-09-01 11:59:47 +09:00
strpool.c [qfcc] Ensure non-unicode char string is terminated 2022-12-10 21:53:45 +09:00
struct.c [qfcc] Apply member alignment to union size 2023-08-29 08:25:19 +09:00
stub.c [qfcc] Use scatter-gather for multivec expressions 2023-08-23 15:38:32 +09:00
switch.c [qfcc] Rework the functionality of address expressions 2022-01-25 23:39:17 +09:00
symtab.c [qfcc] Allow symbol tables to have procedural symbols 2023-08-21 17:47:55 +09:00
type.c [qfcc] Use the new 2d wedge and 2-component swizzles 2023-08-31 20:22:59 +09:00
value.c [qfcc] Use the progs VM to help with constant folding 2023-08-21 17:47:55 +09:00