mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 08:29:28 +02:00
* fixed temp ansi handling within array constructor
This commit is contained in:
parent
7d72f3610b
commit
03dcba2fda
@ -921,7 +921,10 @@ implementation
|
||||
end
|
||||
else
|
||||
if is_ansistring(lt) then
|
||||
vtype:=vtAnsiString;
|
||||
begin
|
||||
vtype:=vtAnsiString;
|
||||
freetemp:=false;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
if vtype=$ff then
|
||||
@ -949,7 +952,9 @@ implementation
|
||||
emit_lea_loc_ref(hp^.left^.location,href,freetemp);
|
||||
end
|
||||
else
|
||||
emit_mov_loc_ref(hp^.left^.location,href,S_L);
|
||||
begin
|
||||
emit_mov_loc_ref(hp^.left^.location,href,S_L,freetemp);
|
||||
end;
|
||||
{ update href to the vtype field and write it }
|
||||
dec(href.offset,4);
|
||||
emit_const_ref(A_MOV,S_L,vtype,newreference(href));
|
||||
@ -962,11 +967,11 @@ implementation
|
||||
begin
|
||||
case elesize of
|
||||
1 :
|
||||
emit_mov_loc_ref(hp^.left^.location,href,S_B);
|
||||
emit_mov_loc_ref(hp^.left^.location,href,S_B,freetemp);
|
||||
2 :
|
||||
emit_mov_loc_ref(hp^.left^.location,href,S_W);
|
||||
emit_mov_loc_ref(hp^.left^.location,href,S_W,freetemp);
|
||||
4 :
|
||||
emit_mov_loc_ref(hp^.left^.location,href,S_L);
|
||||
emit_mov_loc_ref(hp^.left^.location,href,S_L,freetemp);
|
||||
else
|
||||
internalerror(87656781);
|
||||
end;
|
||||
@ -982,7 +987,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.104 2000-03-19 08:14:17 peter
|
||||
Revision 1.105 2000-03-19 11:55:08 peter
|
||||
* fixed temp ansi handling within array constructor
|
||||
|
||||
Revision 1.104 2000/03/19 08:14:17 peter
|
||||
* small order change for array of const which allows better optimization
|
||||
|
||||
Revision 1.103 2000/03/01 15:36:11 florian
|
||||
|
@ -638,7 +638,7 @@ implementation
|
||||
hightree:=genloadnode(pvarsym(srsym),p^.left^.symtable);
|
||||
firstpass(hightree);
|
||||
secondpass(hightree);
|
||||
emit_mov_loc_ref(hightree^.location,href,S_L);
|
||||
emit_mov_loc_ref(hightree^.location,href,S_L,true);
|
||||
disposetree(hightree);
|
||||
end;
|
||||
emitrangecheck(p^.right,p^.left^.resulttype);
|
||||
@ -942,7 +942,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.72 2000-02-18 20:53:14 pierre
|
||||
Revision 1.73 2000-03-19 11:55:08 peter
|
||||
* fixed temp ansi handling within array constructor
|
||||
|
||||
Revision 1.72 2000/02/18 20:53:14 pierre
|
||||
* fixes a stabs problem for functions
|
||||
+ includes a stabs local var for with statements
|
||||
the name is with in lowercase followed by an index
|
||||
|
@ -66,7 +66,7 @@ unit cgai386;
|
||||
|
||||
procedure emitcall(const routine:string);
|
||||
|
||||
procedure emit_mov_loc_ref(const t:tlocation;const ref:treference;siz:topsize);
|
||||
procedure emit_mov_loc_ref(const t:tlocation;const ref:treference;siz:topsize;freetemp:boolean);
|
||||
procedure emit_mov_loc_reg(const t:tlocation;reg:tregister);
|
||||
procedure emit_mov_ref_reg64(r : treference;rl,rh : tregister);
|
||||
procedure emit_lea_loc_ref(const t:tlocation;const ref:treference;freetemp:boolean);
|
||||
@ -416,7 +416,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
|
||||
end;
|
||||
|
||||
|
||||
procedure emit_mov_loc_ref(const t:tlocation;const ref:treference;siz:topsize);
|
||||
procedure emit_mov_loc_ref(const t:tlocation;const ref:treference;siz:topsize;freetemp:boolean);
|
||||
var
|
||||
hreg : tregister;
|
||||
pushedeax : boolean;
|
||||
@ -478,7 +478,8 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
|
||||
(JM)}
|
||||
del_reference(ref);
|
||||
end;
|
||||
ungetiftemp(t.reference);
|
||||
if freetemp then
|
||||
ungetiftemp(t.reference);
|
||||
end;
|
||||
else
|
||||
internalerror(330);
|
||||
@ -3833,7 +3834,10 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.87 2000-03-19 08:17:36 peter
|
||||
Revision 1.88 2000-03-19 11:55:08 peter
|
||||
* fixed temp ansi handling within array constructor
|
||||
|
||||
Revision 1.87 2000/03/19 08:17:36 peter
|
||||
* tp7 fix
|
||||
|
||||
Revision 1.86 2000/03/01 15:36:11 florian
|
||||
|
Loading…
Reference in New Issue
Block a user