[fpc-pascal] Currency and Int64 casting

LacaK lacak at zoznam.sk
Fri May 18 07:54:41 CEST 2018


> Linux 64-bit Lazarus 1.9.0 r57948M FPC 3.1.1 x86_64-linux-qt gives
>
>  1.000000000000000000E+00 10000
>
What is dissassembly for:
   i:=Int64(c);?

I have for Win32:
test_curr_int64.lpr:19            i1 := Int64(c);
0040158D a100c04200               mov    0x42c000,%eax
00401592 a310c04200               mov    %eax,0x42c010
00401597 a104c04200               mov    0x42c004,%eax
0040159C a314c04200               mov    %eax,0x42c014

and for Win64:
test_curr_int64.lpr:19                    i1 := Int64(c);
00000001000015BD 488b0d3caa0300           mov 0x3aa3c(%rip),%rcx        
# 0x10003c000
00000001000015C4 48b84b598638d6c56d34     movabs $0x346dc5d63886594b,%rax
00000001000015CE 48f7e9                   imul   %rcx
00000001000015D1 48c1fa0b                 sar    $0xb,%rdx
00000001000015D5 48c1e93f                 shr    $0x3f,%rcx
00000001000015D9 4801ca                   add    %rcx,%rdx
00000001000015DC 4889152daa0300           mov %rdx,0x3aa2d(%rip)        
# 0x10003c010


L.
>
> ______________________________________________________________
> > Od: LacaK <lacak at zoznam.sk>
> > Komu: FPC-Pascal users discussions <fpc-pascal at lists.freepascal.org>
> > Datum: 17.05.2018 13:33
> > Předmět: [fpc-pascal] Currency and Int64 casting
> >
>
> Hi,
>
> consider following program:
>
> var
>   c: currency;
>
> begin
>   c := 1;
>   writeln(c,' ',Int64(c));
>   readln;
> end.
>
> FPC 3.0.4
> On Win32/x86 I get: 1, 1000  (what I am expecting)
> On Win64/x86_64 I get: 1, 1
>
> Is is as expected ?
>
> Is there safe way for both platforms how to get 1000 (beside that I can
> use: i: int64 absolute c;)
>
> Thanks
>
> -Laco.
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20180518/a36295ad/attachment.html>


More information about the fpc-pascal mailing list