mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-04-14 21:33:55 +00:00
[qfcc] Add an opcode for outer products
I'm not sure what it's useful for, but GLSL has a function for it thus I decided to add the instruction to the VM, so this is part of the compiler side.
This commit is contained in:
parent
d418c4b8c4
commit
8323868b2c
3 changed files with 5 additions and 2 deletions
|
@ -139,7 +139,7 @@ int yylex (YYSTYPE *yylval, YYLTYPE *yylloc);
|
|||
%left SHL SHR
|
||||
%left '+' '-'
|
||||
%left '*' '/' '%' MOD SCALE GEOMETRIC QMUL QVMUL VQMUL
|
||||
%left HADAMARD CROSS DOT WEDGE REGRESSIVE
|
||||
%left HADAMARD CROSS DOT OUTER WEDGE REGRESSIVE
|
||||
%right <op> SIZEOF UNARY INCOP REVERSE STAR DUAL UNDUAL
|
||||
%left HYPERUNARY
|
||||
%left '.' '(' '['
|
||||
|
|
|
@ -139,7 +139,7 @@ int yylex (YYSTYPE *yylval, YYLTYPE *yylloc);
|
|||
%left SHL SHR
|
||||
%left '+' '-'
|
||||
%left '*' '/' '%' MOD SCALE GEOMETRIC QMUL QVMUL VQMUL
|
||||
%left HADAMARD CROSS DOT WEDGE REGRESSIVE
|
||||
%left HADAMARD CROSS DOT OUTER WEDGE REGRESSIVE
|
||||
%right <op> SIZEOF UNARY INCOP REVERSE STAR DUAL UNDUAL
|
||||
%left HYPERUNARY
|
||||
%left '.' '(' '['
|
||||
|
@ -2101,6 +2101,7 @@ expr
|
|||
| expr HADAMARD expr { $$ = binary_expr (QC_HADAMARD, $1, $3); }
|
||||
| expr CROSS expr { $$ = binary_expr (QC_CROSS, $1, $3); }
|
||||
| expr DOT expr { $$ = binary_expr (QC_DOT, $1, $3); }
|
||||
| expr OUTER expr { $$ = binary_expr (QC_OUTER, $1, $3); }
|
||||
| expr WEDGE expr { $$ = binary_expr (QC_WEDGE, $1, $3); }
|
||||
| expr REGRESSIVE expr { $$ = binary_expr (QC_REGRESSIVE, $1, $3); }
|
||||
;
|
||||
|
@ -2921,6 +2922,7 @@ static keyword_t qf_keywords[] = {
|
|||
{"@hadamard", QC_HADAMARD, },
|
||||
{"@cross", QC_CROSS, },
|
||||
{"@dot", QC_DOT, },
|
||||
{"@outer", QC_OUTER, },
|
||||
{"@wedge", QC_WEDGE, },
|
||||
{"@regressive", QC_REGRESSIVE, },
|
||||
{"@geometric", QC_GEOMETRIC, },
|
||||
|
|
|
@ -607,6 +607,7 @@ convert_op (int op)
|
|||
case QC_CROSS: return "cross";
|
||||
case QC_WEDGE: return "wedge";
|
||||
case QC_DOT: return "dot";
|
||||
case QC_OUTER: return "outer";
|
||||
case QC_HADAMARD: return "mul";
|
||||
case QC_SCALE: return "scale";
|
||||
case QC_QMUL: return "qmul";
|
||||
|
|
Loading…
Reference in a new issue