quakeforge/tools/qfcc
Bill Currie 52a399daeb [qfcc] Update sizes and alignments for dvec4 and friends
dvec4, lvec4 and ulvec4 need to be aligned to 8 words (32 bytes) in
order to avoid hardware exceptions. Rather than dealing with possibly
mixed alignment when a function has 8-word aligned locals but only
4-word aligned parameters, simply keep the stack frame 8-word aligned at
all times.

As for sizes, the temp def recycler was written before the Ruamoko ISA
was even a pipe dream and thus never expected temp def sizes over 4. At
least now any future adjustments can be done in one place.

My quick and dirty test program works :)

    dvec4 xy = {1d, 2d, 0d, 0.5};
    void printf(string fmt, ...) = #0;
    int main()
    {
	dvec4 u = {3, 4, 3.14};
	dvec4 v = {3, 4, 0, 1};
	dvec4 w = v * xy + u;
	printf ("[%g, %g, %g, %g]\n", w[0], w[1], w[2], w[3]);
	return 0;
    }
2022-02-04 08:46:58 +09:00
..
doc [qfcc] Replace [no-]v6only with target= 2022-01-07 18:34:05 +09:00
include [qfcc] Update sizes and alignments for dvec4 and friends 2022-02-04 08:46:58 +09:00
source [qfcc] Update sizes and alignments for dvec4 and friends 2022-02-04 08:46:58 +09:00
test [qfcc] Ensure ops on globals occur before return 2022-02-03 16:33:42 +09:00
AUTHORS more mailing list corrections 2003-07-12 21:50:22 +00:00
Makemodule.am [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
TODO Throw away function parameter type alias info 2020-02-26 17:46:53 +09:00