* Some more R_NO changes

* Preventive code to loadref added
This commit is contained in:
daniel 2003-08-20 20:29:06 +00:00
parent 81d4cc15c7
commit cdb8a15f4a
4 changed files with 31 additions and 9 deletions

View File

@ -1535,6 +1535,8 @@ implementation
procedure taicpu_abstract.loadref(opidx:longint;const r:treference);
begin
if (r.base.enum=R_NO) or (r.index.enum=R_NO) then
internalerror(200308192);
if opidx>=ops then
ops:=opidx+1;
with oper[opidx] do
@ -1899,7 +1901,11 @@ implementation
end.
{
$Log$
Revision 1.33 2003-08-17 20:47:47 daniel
Revision 1.34 2003-08-20 20:29:06 daniel
* Some more R_NO changes
* Preventive code to loadref added
Revision 1.33 2003/08/17 20:47:47 daniel
* Notranslation changed into -sr functionality
Revision 1.32 2003/08/17 16:59:20 jonas

View File

@ -332,7 +332,8 @@ implementation
{ how much have we already substracted from the x in the }
{ "x in [y..z]" expression }
adjustment := 0;
hr.enum := R_NO;
hr.enum:=R_INTREGISTER;
hr.number:=NR_NO;
for i:=1 to numparts do
if setparts[i].range then
@ -1080,7 +1081,11 @@ begin
end.
{
$Log$
Revision 1.46 2003-07-23 11:02:53 jonas
Revision 1.47 2003-08-20 20:29:06 daniel
* Some more R_NO changes
* Preventive code to loadref added
Revision 1.46 2003/07/23 11:02:53 jonas
* final (?) fix to in-code
Revision 1.45 2003/07/20 18:03:27 jonas

View File

@ -426,7 +426,8 @@ implementation
{ if the previous was 64bit release the high register }
begin
rg.ungetregisterint(list,l.registerhigh);
l.registerhigh.enum:=R_NO;
l.registerhigh.enum:=R_INTREGISTER;
l.registerhigh.number:=NR_NO;
end;
if l.loc=LOC_REGISTER then
rg.ungetregisterint(list,l.register);
@ -443,7 +444,8 @@ implementation
if l.size in [OS_64,OS_S64] then
begin
rg.ungetregisterint(list,l.registerhigh);
l.registerhigh.enum:=R_NO;
l.registerhigh.enum:=R_INTREGISTER;
l.registerhigh.number:=NR_NO;
end;
hregister:=l.register;
end
@ -1054,7 +1056,7 @@ implementation
(tvarsym(p).varspez=vs_value) and
(paramanager.push_addr_param(tvarsym(p).vartype.def,current_procinfo.procdef.proccalloption)) then
begin
loadref := tvarsym(p).reg.enum = R_NO;
loadref := (tvarsym(p).reg.enum=R_NO) or ((Tvarsym(p).reg.enum=R_INTREGISTER) and (Tvarsym(p).reg.number=NR_NO));
if (loadref) then
reference_reset_base(href1,current_procinfo.framepointer,tvarsym(p).adjusted_address)
else
@ -2077,7 +2079,11 @@ implementation
end.
{
$Log$
Revision 1.136 2003-08-20 17:48:49 peter
Revision 1.137 2003-08-20 20:29:06 daniel
* Some more R_NO changes
* Preventive code to loadref added
Revision 1.136 2003/08/20 17:48:49 peter
* fixed stackalloc to not allocate localst.datasize twice
* order of stackalloc code fixed for implicit init/final

View File

@ -1666,7 +1666,8 @@ implementation
begin
inherited loadsym(ppufile);
typ:=varsym;
reg.enum:=R_NO;
reg.enum:=R_INTREGISTER;
reg.number:=NR_NO;
refs := 0;
varstate:=vs_used;
varspez:=tvarspez(ppufile.getbyte);
@ -2668,7 +2669,11 @@ implementation
end.
{
$Log$
Revision 1.112 2003-07-05 22:41:59 peter
Revision 1.113 2003-08-20 20:29:06 daniel
* Some more R_NO changes
* Preventive code to loadref added
Revision 1.112 2003/07/05 22:41:59 peter
* check if owner.defowner is valid when checking private/protected
Revision 1.111 2003/07/04 22:41:41 pierre