mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 21:09:11 +02:00
* fixed the sign handling of i386 fpc_div_int64 helper (Mantis 30166)
git-svn-id: trunk@33753 -
This commit is contained in:
parent
bffe9480f4
commit
963c4aa1f8
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -15072,6 +15072,7 @@ tests/webtbs/tw3005.pp svneol=native#text/plain
|
|||||||
tests/webtbs/tw30082.pp svneol=native#text/plain
|
tests/webtbs/tw30082.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw3010.pp svneol=native#text/plain
|
tests/webtbs/tw3010.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw3012.pp svneol=native#text/plain
|
tests/webtbs/tw3012.pp svneol=native#text/plain
|
||||||
|
tests/webtbs/tw30166.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw3023.pp svneol=native#text/plain
|
tests/webtbs/tw3023.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw3028.pp svneol=native#text/plain
|
tests/webtbs/tw3028.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw3038.pp svneol=native#text/plain
|
tests/webtbs/tw3038.pp svneol=native#text/plain
|
||||||
|
@ -70,7 +70,7 @@
|
|||||||
xchgl %ecx,%eax
|
xchgl %ecx,%eax
|
||||||
divl %ebx
|
divl %ebx
|
||||||
movl %ecx,%edx
|
movl %ecx,%edx
|
||||||
jmp .Lexit
|
jmp .Lmake_sign
|
||||||
.Lbigdivisor:
|
.Lbigdivisor:
|
||||||
subl $12,%esp
|
subl $12,%esp
|
||||||
movl %eax,(%esp)
|
movl %eax,(%esp)
|
||||||
|
32
tests/webtbs/tw30166.pp
Normal file
32
tests/webtbs/tw30166.pp
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{ Test against Mantis #30166, an issue in the i386 fpc_div_int64 helper. }
|
||||||
|
Uses sysutils;
|
||||||
|
|
||||||
|
Var cc, dd: int64;
|
||||||
|
a, b: int64;
|
||||||
|
|
||||||
|
Begin
|
||||||
|
dd:=int64($0000000A6BB38805);
|
||||||
|
cc:=int64($0000000000142E04);
|
||||||
|
cc:=cc-2822400; { $FF11813BCCC3B114 }
|
||||||
|
dd:=dd*cc;
|
||||||
|
|
||||||
|
{ dd:=int64($FF11813BCCC3B114); }
|
||||||
|
|
||||||
|
a:=dd div int64($00000000002B1100);
|
||||||
|
b:=int64($FF11813BCCC3B114) div int64($00000000002B1100);
|
||||||
|
|
||||||
|
WriteLn(IntToHex(cc,16));
|
||||||
|
WriteLn(IntToHex(dd,16));
|
||||||
|
WriteLn('FF11813BCCC3B114:00000000002B1100='#9, IntToHex(a,16));
|
||||||
|
WriteLn('FF11813BCCC3B114:00000000002B1100='#9, IntToHex(b,16));
|
||||||
|
|
||||||
|
if a<>b then
|
||||||
|
begin
|
||||||
|
writeln('Failed!');
|
||||||
|
halt(1);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
writeln('Passed!');
|
||||||
|
end;
|
||||||
|
End.
|
Loading…
Reference in New Issue
Block a user