...So lazarus uses the XMM registers for float arguments, is there a bit more info on this?...
How can I load a const into an XMM register?...
Quote from: PascalDragon on February 10, 2022, 09:06:11 amNo, EBX is not the default for the register calling convention. The registers used are EAX, EDX and ECX (in that order) as is mentioned here as well.You did not understand me. Those registers are free to use (scratch). EBX is NOT free to use since it holds self. (At least in Delphi 32 bit, tested with D7)
No, EBX is not the default for the register calling convention. The registers used are EAX, EDX and ECX (in that order) as is mentioned here as well.
The register convention uses up to three CPU registers to pass parameters, while the other conventions pass all parameters on the stack.
Use the __fastcall modifier to declare functions that expect parameters to be passed in registers. The first three parameters are passed (from left to right) in EAX, EDX, and ECX, if they fit in the register. The registers are not used if the parameter is a floating-point or struct type.
I'm trying to get some code I wrote for Delphi running but I can't figure out how to write the data into Self from the record constructor.So how do I get my XMM0 written to the Data array with a single instruction?