* updated for absolutesym and varsym

This commit is contained in:
peter 2003-01-03 22:16:29 +00:00
parent c94fba5944
commit ce5fa9843f

View File

@ -669,7 +669,7 @@ var
procoptions : tprocoptions; procoptions : tprocoptions;
i,params : longint; i,params : longint;
first : boolean; first : boolean;
paraloc : array[0..9] of byte; paraloc : array[0..10] of byte;
begin begin
write(space,' Return type : '); write(space,' Return type : ');
readtype; readtype;
@ -820,9 +820,22 @@ end;
****************************************************************************} ****************************************************************************}
procedure readsymbols; procedure readsymbols;
Const type
vo_is_C_var = 2; { options for variables }
Type tvaroption=(vo_none,
vo_regable,
vo_is_C_var,
vo_is_external,
vo_is_dll_var,
vo_is_thread_var,
vo_fpuregable,
vo_is_local_copy,
vo_is_const, { variable is declared as const (parameter) and can't be written to }
vo_is_exported,
vo_is_high_value
);
tvaroptions=set of tvaroption;
pguid = ^tguid; pguid = ^tguid;
tguid = packed record tguid = packed record
D1: LongWord; D1: LongWord;
@ -830,6 +843,7 @@ Type
D3: Word; D3: Word;
D4: array[0..7] of Byte; D4: array[0..7] of Byte;
end; end;
absolutetyp = (tovar,toasm,toaddr); absolutetyp = (tovar,toasm,toaddr);
tconsttyp = (constnone, tconsttyp = (constnone,
constord,conststring,constreal,constbool, constord,conststring,constreal,constbool,
@ -975,7 +989,7 @@ begin
readtype; readtype;
i:=getlongint; i:=getlongint;
writeln(space,' Options: ',i); writeln(space,' Options: ',i);
if (i and vo_is_C_var)<>0 then if (vo_is_C_var in tvaroptions(i)) then
writeln(space,' Mangledname: ',getstring); writeln(space,' Mangledname: ',getstring);
end; end;
@ -1011,12 +1025,11 @@ begin
begin begin
readcommonsym('Absolute variable symbol '); readcommonsym('Absolute variable symbol ');
writeln(space,' Type: ',getbyte); writeln(space,' Type: ',getbyte);
if read_member then writeln(space,' Address: ',getlongint);
writeln(space,' Address: ',getlongint);
write (space,' Var Type: '); write (space,' Var Type: ');
readtype; readtype;
writeln(space,' Options: ',getlongint); writeln(space,' Options: ',getlongint);
Write (space,' Relocated to '); Write (space,' Relocated to ');
b:=getbyte; b:=getbyte;
case absolutetyp(b) of case absolutetyp(b) of
tovar : tovar :
@ -1897,7 +1910,10 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.34 2002-11-17 16:32:04 carl Revision 1.35 2003-01-03 22:16:29 peter
* updated for absolutesym and varsym
Revision 1.34 2002/11/17 16:32:04 carl
* memory optimization (3-4%) : cleanup of tai fields, * memory optimization (3-4%) : cleanup of tai fields,
cleanup of tdef and tsym fields. cleanup of tdef and tsym fields.
* make it work for m68k * make it work for m68k