arm64 assembly
C code snippet:
#include <cstdint>
struct Vec2 {
int64_t x;
int64_t y;
void debugPrint() const;
};
int64_t normSquared(Vec2 v) {
v.debugPrint();
return v.x * v.x + v.y * v.y;
}
clang generated assembly:
sub sp, sp, #32
stp x29, x30, [sp, #16]
add x29, sp, #16
stp x0, x1, [sp]
mov x0, sp
bl Vec2::debugPrint() const
ldp x8, x9, [sp]
ldp x29, x30, [sp, #16]
mul x8, x8, x8
madd x0, x9, x9, x8
add sp, sp, #32
ret