> > For some reason, clang assumes the stack is aligned on a 16 byte > > boundary, as for the first iteration v0 is computed as (v1 or 8), > > while further iterations use (v1 plus 8). > > > I guess it defaults to 16 for N64? > https://reviews.llvm.org/D35874
Indeed. And the kernel makes sure to use 16 byte alignment, so there must be a bug creeping somewhere which causes a wrong offset to be applied... > Wonder if it would be worth testing a run with clang -mstack-alignment=8 > just to confirm this? This ought to sweep the issue under the rug.