From 8a75d5954496fdca5021a26fe71de12c5169f3f2 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 2 Sep 2002 18:40:52 +0000 Subject: [PATCH] * fixed parsing of register names with lowercase --- compiler/pstatmnt.pas | 59 +++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/compiler/pstatmnt.pas b/compiler/pstatmnt.pas index fc6f4e0739..b48dad8b93 100644 --- a/compiler/pstatmnt.pas +++ b/compiler/pstatmnt.pas @@ -709,9 +709,10 @@ implementation function _asm_statement : tnode; var asmstat : tasmnode; - Marker : tai; - r,r2 : tregister; - found : boolean; + Marker : tai; + r,r2 : tregister; + found : boolean; + hs : string; begin Inside_asm_statement:=true; case aktasmmode of @@ -753,30 +754,31 @@ implementation { END is read } if try_to_consume(_LECKKLAMMER) then begin - if token<>_RECKKLAMMER then - repeat - { it's possible to specify the modified registers } - include(asmstat.flags,nf_object_preserved); - found:=false; - for r:=low(tregister) to high(tregister) do - if pattern=upper(std_reg2str[r]) then - begin - if r = SELF_POINTER_REG then - begin - exclude(asmstat.flags,nf_object_preserved); - end; - include(rg.usedinproc,r); - include(rg.usedbyproc,r); - found:=true; - break; - end; - if not(found) then - consume(_RECKKLAMMER); - consume(_CSTRING); - if not try_to_consume(_COMMA) then + if token<>_RECKKLAMMER then + begin + repeat + { it's possible to specify the modified registers } + include(asmstat.flags,nf_object_preserved); + hs:=upper(pattern); + found:=false; + for r:=low(tregister) to high(tregister) do + if hs=upper(std_reg2str[r]) then + begin + if r = SELF_POINTER_REG then + exclude(asmstat.flags,nf_object_preserved); + include(rg.usedinproc,r); + include(rg.usedbyproc,r); + found:=true; + break; + end; + if not(found) then + Message(asmr_e_invalid_register); + consume(_CSTRING); + if not try_to_consume(_COMMA) then break; - until false; - consume(_RECKKLAMMER); + until false; + end; + consume(_RECKKLAMMER); end else begin @@ -1144,7 +1146,10 @@ implementation end. { $Log$ - Revision 1.74 2002-09-01 14:43:12 peter + Revision 1.75 2002-09-02 18:40:52 peter + * fixed parsing of register names with lowercase + + Revision 1.74 2002/09/01 14:43:12 peter * fixed direct assembler for i386 Revision 1.73 2002/08/25 19:25:20 peter