Hi,
On Sun, 20 Mar 2016, Phillip McNallen wrote:
> Functions with floating point arguments(in x86-64) don't use the proper
> calling convention.
>
> Float values should be passed in XMM0 - XMM3
>
> double sum(double a, double b) {
> return (a+b);
> }
>
> Generates this:
> mov qword ptr [rbp+10h],rcx
> mov qword ptr [rbp+18h],rdx
> movq xmm0,mmword ptr [rbp+10h]
> addsd xmm0,mmword ptr [rbp+18h]
Which TCC version? Current mob branch generates correct code (for linux
and windows):
b: movq %xmm0,-0x8(%rbp)
10: movq %xmm1,-0x10(%rbp)
15: movq -0x8(%rbp),%xmm0
1a: addsd -0x10(%rbp),%xmm0
Ciao,
Michael.
_______________________________________________
Tinycc-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel