Ich möchte unter GNU GCC eine Assemlerprozedur con C aus aufrufen.
Ich hab nun "herausgefunden", dass beim Aufruf zunächst die
Rücksprungadresse in das link register r14 geschrieben wird.
Die Parameter werden mit r0...r3 übergeben. Wenn ich nun den
Funktionsprototypen als
1 | void foo(uint8 par1, uint8 par2)
|
definiere, so übergebe ich ja nur 2x8 Bit. Kommen diese nun nach r0 und
r1, oder wird zunächst r0 aufgefüllt?
Und was passiert, wenn ich ein long long int (=64Bit) übergebe?
Wo ist das ordentlich beschrieben? Ich habe bisher nur ein paar
Beispiele gefunden, wo man sich das zusammenreimen kann...