mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-16 12:49:17 +02:00
* bug #519 fixed
This commit is contained in:
parent
ccf87d0937
commit
656d4330cd
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user