I'm trying to figure out what the assembly instruction actually does
addsd -8(%rbp), %xmm0
I know that it's a floating point addition on an x86-64 machine with SSE2. Also, I know that %xmm0 is a register. However, what I'm not sure of is what -8(%rbp) means. The manuals are a bit confusing on that.
Basically, the question is, does -8(%rbp) mean that it's taking a value from a register (maybe the last 8 bytes of rbp) or is it taking a value from memory (floating point value at an offset of -8 from the address contained in rbp).
Your second guess is correct. It's accessing the value at -8
bytes offset from address rbp
.
Assuming AT&T syntax, this instruction loads an 8-byte double
from address rbp - 8
and adds it to the value in the lower half of xmm0
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With