* removed some ie checks

This commit is contained in:
peter 2003-04-21 20:05:10 +00:00
parent ab7f62f3e1
commit 811fdad9b6
3 changed files with 21 additions and 23 deletions

View File

@ -1440,8 +1440,6 @@ Begin
begin begin
opr.typ:=OPR_REGISTER; opr.typ:=OPR_REGISTER;
opr.reg:=actasmregister; opr.reg:=actasmregister;
if opr.reg.enum<>R_INTREGISTER then
internalerror(200302023);
size:=reg2opsize(actasmregister); size:=reg2opsize(actasmregister);
Consume(AS_REGISTER); Consume(AS_REGISTER);
end end
@ -2135,7 +2133,10 @@ finalization
end. end.
{ {
$Log$ $Log$
Revision 1.40 2003-03-18 18:15:53 peter Revision 1.41 2003-04-21 20:05:10 peter
* removed some ie checks
Revision 1.40 2003/03/18 18:15:53 peter
* changed reg2opsize to function * changed reg2opsize to function
Revision 1.39 2003/02/20 15:52:58 pierre Revision 1.39 2003/02/20 15:52:58 pierre

View File

@ -1109,9 +1109,7 @@ Begin
end; end;
if GotOffset then if GotOffset then
begin begin
if procinfo.framepointer.enum<>R_INTREGISTER then if hasvar and (opr.ref.base.number=procinfo.framepointer.number) then
internalerror(200302121);
if hasvar and (opr.ref.base.enum=procinfo.framepointer.enum) then
begin begin
opr.ref.base.enum:=R_INTREGISTER; opr.ref.base.enum:=R_INTREGISTER;
opr.ref.base.number:=NR_NO; opr.ref.base.number:=NR_NO;
@ -1124,10 +1122,6 @@ Begin
{ should we allow ?? } { should we allow ?? }
end; end;
end; end;
if opr.ref.base.enum<>R_INTREGISTER then
internalerror(200302121);
if opr.ref.index.enum<>R_INTREGISTER then
internalerror(200302121);
{ is the base register loaded by the var ? } { is the base register loaded by the var ? }
if (opr.ref.base.number<>NR_NO) then if (opr.ref.base.number<>NR_NO) then
begin begin
@ -1218,10 +1212,6 @@ Begin
1. just read a * 1. just read a *
2. next token is a * 2. next token is a *
3. base register is already used } 3. base register is already used }
if opr.ref.base.enum<>R_INTREGISTER then
internalerror(200302123);
if opr.ref.index.enum<>R_INTREGISTER then
internalerror(200302123);
if (GotStar) or if (GotStar) or
(actasmtoken=AS_STAR) or (actasmtoken=AS_STAR) or
(opr.ref.base.number<>NR_NO) then (opr.ref.base.number<>NR_NO) then
@ -1971,7 +1961,10 @@ finalization
end. end.
{ {
$Log$ $Log$
Revision 1.44 2003-03-28 19:16:57 peter Revision 1.45 2003-04-21 20:05:10 peter
* removed some ie checks
Revision 1.44 2003/03/28 19:16:57 peter
* generic constructor working for i386 * generic constructor working for i386
* remove fixed self register * remove fixed self register
* esi added as address register for i386 * esi added as address register for i386

View File

@ -64,6 +64,7 @@ interface
srsym,sym : tsym; srsym,sym : tsym;
srsymtable : tsymtable; srsymtable : tsymtable;
code : TAAsmoutput; code : TAAsmoutput;
framereg : tregister;
i,l : longint; i,l : longint;
procedure writeasmline; procedure writeasmline;
@ -89,10 +90,10 @@ interface
if assigned(aktprocdef.funcretsym) and if assigned(aktprocdef.funcretsym) and
is_fpu(aktprocdef.rettype.def) then is_fpu(aktprocdef.rettype.def) then
tfuncretsym(aktprocdef.funcretsym).funcretstate:=vs_assigned; tfuncretsym(aktprocdef.funcretsym).funcretstate:=vs_assigned;
if procinfo.framepointer.enum>lastreg then framereg:=procinfo.framepointer;
internalerror(200301081); convert_register_to_enum(framereg);
if (not is_void(aktprocdef.rettype.def)) then if (not is_void(aktprocdef.rettype.def)) then
retstr:=upper(tostr(procinfo.return_offset)+'('+gas_reg2str[procinfo.framepointer.enum]+')') retstr:=upper(tostr(procinfo.return_offset)+'('+gas_reg2str[framereg.enum]+')')
else else
retstr:=''; retstr:='';
c:=current_scanner.asmgetchar; c:=current_scanner.asmgetchar;
@ -173,7 +174,7 @@ interface
hs:=tvarsym(sym).mangledname hs:=tvarsym(sym).mangledname
else else
hs:='-'+tostr(tvarsym(sym).address)+ hs:='-'+tostr(tvarsym(sym).address)+
'('+gas_reg2str[procinfo.framepointer.enum]+')'; '('+gas_reg2str[framereg.enum]+')';
end end
else else
{ call to local function } { call to local function }
@ -196,7 +197,7 @@ interface
l:=tvarsym(sym).address; l:=tvarsym(sym).address;
{ set offset } { set offset }
inc(l,aktprocdef.parast.address_fixup); inc(l,aktprocdef.parast.address_fixup);
hs:=tostr(l)+'('+gas_reg2str[procinfo.framepointer.enum]+')'; hs:=tostr(l)+'('+gas_reg2str[framereg.enum]+')';
if pos(',',s) > 0 then if pos(',',s) > 0 then
tvarsym(sym).varstate:=vs_used; tvarsym(sym).varstate:=vs_used;
end; end;
@ -242,7 +243,7 @@ interface
begin begin
if assigned(procinfo._class) then if assigned(procinfo._class) then
hs:=tostr(procinfo.selfpointer_offset)+ hs:=tostr(procinfo.selfpointer_offset)+
'('+gas_reg2str[procinfo.framepointer.enum]+')' '('+gas_reg2str[framereg.enum]+')'
else else
Message(asmr_e_cannot_use_SELF_outside_a_method); Message(asmr_e_cannot_use_SELF_outside_a_method);
end end
@ -259,7 +260,7 @@ interface
{ we do it: } { we do it: }
if lexlevel>normal_function_level then if lexlevel>normal_function_level then
hs:=tostr(procinfo.framepointer_offset)+ hs:=tostr(procinfo.framepointer_offset)+
'('+gas_reg2str[procinfo.framepointer.enum]+')' '('+gas_reg2str[framereg.enum]+')'
else else
Message(asmr_e_cannot_use_OLDEBP_outside_nested_procedure); Message(asmr_e_cannot_use_OLDEBP_outside_nested_procedure);
end; end;
@ -307,7 +308,10 @@ initialization
end. end.
{ {
$Log$ $Log$
Revision 1.6 2003-01-08 18:43:57 daniel Revision 1.7 2003-04-21 20:05:10 peter
* removed some ie checks
Revision 1.6 2003/01/08 18:43:57 daniel
* Tregister changed into a record * Tregister changed into a record
Revision 1.5 2002/11/25 17:43:27 peter Revision 1.5 2002/11/25 17:43:27 peter