/dev/null - Overig

Return adres bij aarch64 architectuur

25-03-2025, 14:57 door Anoniem, 4 reacties
Waarom staat bij een aarch64 architectuur het returnadres aan de andere kant van de stack ten opzichte van andere architecturen?
Reacties (4)
25-03-2025, 15:15 door Anoniem
misschien loop je tegen de endian aan?
https://nl.wikipedia.org/wiki/Endianness
25-03-2025, 15:32 door Anoniem
De ARM architectuur werkt met een link register. De compiler can zelf kiezen waar deze die op stack opslaat indien nodig. Ruimte reserveren voor de lokale variabelen en daarna link register en frame pointer pushen kan met een enkele STRP instructie.
25-03-2025, 16:26 door Anoniem
Inderdaad een compiler ding. De call instructie van Intel zet het return-adres zelf al op de stack. De bl instructie van Arm (aarch64) slaat het return-adres op in register X30. De compiler zet de instructie voor aarch64 in de volgorde, dat eest de stack wordt vergroot en vervolgens worden de registers X29 en X30 op de stack geplaatst. Waarom deze keuze? Geen idee.
25-03-2025, 18:23 door MathFox
Door Anoniem:
Waarom deze keuze? Geen idee.
De "procedure call standard" voor Aarch64 https://github.com/ARM-software/abi-aa/blob/a82eef0433556b30539c0d4463768d9feb8cfd0b/aapcs64/aapcs64.rst specificeert in paragraaf 6.4.6 dat er een linked list van "frame records" bestaat. (Kan door debuggers gebruikt worden om een backtrace te maken.) Waar dat record in een stack frame geplaatst wordt is aan de assembler programmeur of compiler implementatie.
Reageren
Ondersteunde bbcodes
Bold: [b]bold text[/b]
Italic: [i]italic text[/i]
Underline: [u]underlined text[/u]
Quote: [quote]quoted text[/quote]
URL: [url]https://www.security.nl[/url]
Config: [config]config text[/config]
Code: [code]code text[/code]

Je bent niet en reageert "Anoniem". Dit betekent dat Security.NL geen accountgegevens (e-mailadres en alias) opslaat voor deze reactie. Je reactie wordt niet direct geplaatst maar eerst gemodereerd. Als je nog geen account hebt kun je hier direct een account aanmaken. Wanneer je Anoniem reageert moet je altijd een captchacode opgeven.