* bug #519 fixed

This commit is contained in:
florian 1999-08-28 15:34:16 +00:00
parent ccf87d0937
commit 656d4330cd
9 changed files with 101 additions and 13 deletions

View File

@ -1310,6 +1310,23 @@ implementation
end;
end;
end;
{$ifdef SUPPORT_MMX}
in_mmx_pcmpeqb..in_mmx_pcmpgtw:
begin
if p^.left^.location.loc=LOC_REGISTER then
begin
{!!!!!!!}
end
else if p^.left^.left^.location.loc=LOC_REGISTER then
begin
{!!!!!!!}
end
else
begin
{!!!!!!!}
end;
end;
{$endif SUPPORT_MMX}
else internalerror(9);
end;
{ reset pushedparasize }
@ -1319,7 +1336,10 @@ implementation
end.
{
$Log$
Revision 1.68 1999-08-19 13:08:47 pierre
Revision 1.69 1999-08-28 15:34:16 florian
* bug 519 fixed
Revision 1.68 1999/08/19 13:08:47 pierre
* emit_??? used
Revision 1.67 1999/08/10 13:21:08 pierre

View File

@ -376,6 +376,8 @@ implementation
r : preference;
ai : paicpu;
op : tasmop;
pushed : boolean;
begin
otlabel:=truelabel;
oflabel:=falselabel;
@ -388,6 +390,10 @@ implementation
if codegenerror then
exit;
{$ifdef dummy}
{ we use now the standard mechanism via maybe_push/restore
to do that (FK)
}
case p^.left^.location.loc of
LOC_REFERENCE : begin
{ in case left operator uses to register }
@ -421,6 +427,8 @@ implementation
exit;
end;
end;
{$endif dummy}
loc:=p^.left^.location.loc;
{ lets try to optimize this (PM) }
{ define a dest_loc that is the location }
{ and a ptree to verify that it is the right }
@ -434,7 +442,12 @@ implementation
end;
{$endif test_dest_loc}
{ left can't be never a 64 bit LOC_REGISTER, so the 3. arg }
{ can be false }
pushed:=maybe_push(p^.right^.registers32,p^.left,false);
secondpass(p^.right);
if pushed then restore(p^.left,false);
if codegenerror then
exit;
@ -965,7 +978,10 @@ implementation
end.
{
$Log$
Revision 1.80 1999-08-26 20:24:37 michael
Revision 1.81 1999-08-28 15:34:17 florian
* bug 519 fixed
Revision 1.80 1999/08/26 20:24:37 michael
+ Hopefuly last fixes for resourcestrings
Revision 1.79 1999/08/25 16:41:05 peter

View File

@ -1138,7 +1138,9 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
else
begin
reset_reference(p^.location.reference);
p^.location.reference.index:=hregister;
{ any reasons why this was moved into the index register ? }
{ normally usage of base register is much better (FK) }
p^.location.reference.base:=hregister;
set_location(p^.left^.location,p^.location);
end;
{$ifdef TEMPS_NOT_PUSH}
@ -3287,7 +3289,10 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
end.
{
$Log$
Revision 1.31 1999-08-25 11:59:55 jonas
Revision 1.32 1999-08-28 15:34:17 florian
* bug 519 fixed
Revision 1.31 1999/08/25 11:59:55 jonas
* changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu)
Revision 1.30 1999/08/19 13:06:45 pierre

View File

@ -1045,7 +1045,7 @@ end;
Instruction table
*****************************************************************************}
procedure DoneCpu;{$ifndef FPC}far;{$endif}
procedure DoneCpu;
begin
{exitproc:=saveexit; }
{$ifndef NOAG386BIN}
@ -1086,7 +1086,10 @@ end;
end.
{
$Log$
Revision 1.9 1999-08-19 20:05:09 michael
Revision 1.10 1999-08-28 15:34:19 florian
* bug 519 fixed
Revision 1.9 1999/08/19 20:05:09 michael
+ Fixed ifdef NOAG386BIN bug
Revision 1.8 1999/08/19 13:02:10 pierre

View File

@ -73,9 +73,28 @@ const
in_const_sin = 116;
in_lo_qword = 117;
in_hi_qword = 118;
{ MMX functions }
{ these contants are used by the mmx unit }
{ MMX }
in_mmx_pcmpeqb = 200;
in_mmx_pcmpeqw = 201;
in_mmx_pcmpeqd = 202;
in_mmx_pcmpgtb = 203;
in_mmx_pcmpgtw = 204;
in_mmx_pcmpgtd = 205;
{ 3DNow }
{ SSE }
{
$Log$
Revision 1.12 1999-07-01 15:49:14 florian
Revision 1.13 1999-08-28 15:34:19 florian
* bug 519 fixed
Revision 1.12 1999/07/01 15:49:14 florian
* int64/qword type release
+ lo/hi for int64/qword

View File

@ -1012,7 +1012,7 @@ begin
{$endif}
{ Temporary defines, until things settle down }
def_symbol('INT64');
def_symbol('HASRESOURCESTRINGS');
{ not yet !!!!!!! def_symbol('HASRESOURCESTRINGS'); }
def_symbol('HASSAVEREGISTERS');
def_symbol('NEWVMTOFFSET');
@ -1184,7 +1184,10 @@ end;
end.
{
$Log$
Revision 1.16 1999-08-27 10:45:03 pierre
Revision 1.17 1999-08-28 15:34:19 florian
* bug 519 fixed
Revision 1.16 1999/08/27 10:45:03 pierre
options -Ca sets simply_ppu to true
Revision 1.15 1999/08/25 22:51:00 pierre

View File

@ -135,7 +135,7 @@ unit pmodules;
end;
hp:=Pused_unit(hp^.next);
end;
// Add program resources, if any
{ Add program resources, if any }
If ResourceStringList<>Nil then
begin
ResourceStringTables.concat(new(pai_const_symbol,initname(Current_Module^.modulename^+'_RESOURCESTRINGLIST')));
@ -1449,7 +1449,10 @@ unit pmodules;
end.
{
$Log$
Revision 1.148 1999-08-27 14:53:00 pierre
Revision 1.149 1999-08-28 15:34:19 florian
* bug 519 fixed
Revision 1.148 1999/08/27 14:53:00 pierre
* double checksum problem solved
Revision 1.147 1999/08/27 10:57:56 pierre

View File

@ -39,6 +39,9 @@
NOAG386INT no Intel Assembler output
NOAG386NSM no NASM output
NOAG386BIN leaves out the binary writer
LOGMEMBLOCKS adds memory manager which logs the size of
each allocated memory block, the information
is written to memuse.log after compiling
-----------------------------------------------------------------
Required switches for a i386 compiler be compiled by Free Pascal Compiler:
@ -120,6 +123,11 @@ uses
{$endif}
{$endif FPC}
globals,compiler
{$ifdef logmemblocks}
{$ifdef fpc}
,memlog
{$endif fpc}
{$endif logmemblocks}
;
{$ifdef useoverlay}
@ -271,7 +279,10 @@ begin
end.
{
$Log$
Revision 1.45 1999-08-04 00:23:18 florian
Revision 1.46 1999-08-28 15:34:20 florian
* bug 519 fixed
Revision 1.45 1999/08/04 00:23:18 florian
* renamed i386asm and i386base to cpuasm and cpubase
Revision 1.44 1999/06/02 22:44:13 pierre

View File

@ -1081,6 +1081,11 @@ implementation
CGMessage(type_e_varid_or_typeid_expected);
end;
{$ifdef SUPPORT_MMX}
in_mmx_pcmpeqb..in_mmx_pcmpgtw:
begin
end;
{$endif SUPPORT_MMX}
in_assert_x_y :
begin
p^.resulttype:=voiddef;
@ -1121,7 +1126,10 @@ implementation
end.
{
$Log$
Revision 1.48 1999-08-23 23:41:04 pierre
Revision 1.49 1999-08-28 15:34:21 florian
* bug 519 fixed
Revision 1.48 1999/08/23 23:41:04 pierre
* in_inc_x register allocation corrected
Revision 1.47 1999/08/06 12:43:13 jonas