terralang / terra

Terra is a low-level system programming language that is embedded in and meta-programmed by the Lua programming language.
terralang.org
Other
2.71k stars 197 forks source link

Fix C calling convention on AArch64 #593

Closed elliottslaughter closed 2 years ago

elliottslaughter commented 2 years ago

Initial commit is a first pass, will clean up once I confirm it's working.

elliottslaughter commented 2 years ago

Passes cconv_more.t in emulation (up to N=23). Cleaned up.

elliottslaughter commented 2 years ago

Test suite results in emulation (compare previous results: https://github.com/terralang/terra/issues/565#issuecomment-1153471338):

=================
= FAILING tests
=================
vars.t
zeroreturn2.t
bf.t
class.t
globals.t
coverage3.t
atomicrmw.t
vars2.t
pthreads.t
luabridge2.t
defercond.t
hasbeenfrozen.t
rvaluerecv.t
teststd.t
simpleglobal.t
vecarith.t
let2.t
class6.t 
cconv.t
zeroreturn.t
vecobj.t
benchmark_fannkuchredux.t 
=================

527 tests passed. 22 tests failed.
elliottslaughter commented 2 years ago

Test suite results from another user on macOS M1 (compare https://github.com/terralang/terra/issues/590#issuecomment-1200448298):

=================
= FAILING tests
=================
cconv_array.t
bug372.t
vararg.t
cconv.t
bug372b.t
class3.t
atomicrmw.t
bug372c.t
class6.t
coverage3.t
vecobj.t
class.t
fakeasm.t
printfarray.t
=================

535 tests passed. 14 tests failed.