2012/10/3 Jonas Maebe <jonas.ma...@elis.ugent.be>

>
> On 03 Oct 2012, at 03:29, luiz americo pereira camara wrote:
>
>
> at the line
>         // Load XMM5 with the bias value.
>        MOVD        XMM5, [Bias]  //Bias = Integer
>
> Is it a know issue or a limitation of linux version?
>
>
> Win64 uses a different calling convention compared to every other x86-64
> operating system (Microsoft probably started working on it before the
> x86-64 ABI was finalized). One of the differences is that only passes the
> first three integer parameters in registers, while other operating systems
> pass the first six integer parameters in registers. This means that on
> Win64, the above translates into
>
>   movd xmm5, [rpb + some_offset]
>
> while on other platforms, it translates into
>
>   movd xmm5, [r8d]
>
> So you are creating a reference with r8d as base register, which is
> invalid (because it's a 32 bit register)
>
>
Why it compiles and works with fpc 2.6.0 64bit under windows (and also
Delphi)?


Luiz


>
> Jonas
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel@lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
>
>
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to