Prechádzať zdrojové kódy

# revisions: 33753,33583

git-svn-id: branches/fixes_3_0@33754 -
marco 9 rokov pred
rodič
commit
824dcbded0

+ 1 - 0
.gitattributes

@@ -14417,6 +14417,7 @@ tests/webtbs/tw3004.pp svneol=native#text/plain
 tests/webtbs/tw3005.pp svneol=native#text/plain
 tests/webtbs/tw3010.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/tw3028.pp svneol=native#text/plain
 tests/webtbs/tw3038.pp svneol=native#text/plain

+ 1 - 1
compiler/systems/i_amiga.pas

@@ -37,7 +37,7 @@ unit i_amiga;
             flags        : [tf_files_case_aware,tf_has_winlike_resources];
             cpu          : cpu_m68k;
             unit_env     : '';
-            extradefines : 'HASAMIGA';
+            extradefines : 'HASAMIGA;AMIGA68K';
             exeext       : '';
             defext       : '.def';
             scriptext    : '.sh';

+ 1 - 1
rtl/i386/int64p.inc

@@ -70,7 +70,7 @@
             xchgl %ecx,%eax
             divl %ebx
             movl %ecx,%edx
-            jmp .Lexit
+            jmp .Lmake_sign
 .Lbigdivisor:
             subl $12,%esp
             movl %eax,(%esp)

+ 32 - 0
tests/webtbs/tw30166.pp

@@ -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.