|
@@ -710,16 +710,20 @@ Unit Ra386int;
|
|
while (actasmtoken=AS_DOT) do
|
|
while (actasmtoken=AS_DOT) do
|
|
begin
|
|
begin
|
|
Consume(AS_DOT);
|
|
Consume(AS_DOT);
|
|
- if actasmtoken=AS_ID then
|
|
|
|
- s:=s+'.'+actasmpattern;
|
|
|
|
- if not Consume(AS_ID) then
|
|
|
|
|
|
+ if actasmtoken in [AS_BYTE,AS_ID,AS_WORD,AS_DWORD,AS_QWORD] then
|
|
|
|
+ begin
|
|
|
|
+ s:=s+'.'+actasmpattern;
|
|
|
|
+ consume(actasmtoken);
|
|
|
|
+ end
|
|
|
|
+ else
|
|
begin
|
|
begin
|
|
|
|
+ Consume(AS_ID);
|
|
RecoverConsume(true);
|
|
RecoverConsume(true);
|
|
break;
|
|
break;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
if not GetRecordOffsetSize(s,offset,size) then
|
|
if not GetRecordOffsetSize(s,offset,size) then
|
|
- Message(asmr_e_building_record_offset);
|
|
|
|
|
|
+ Message(asmr_e_building_record_offset);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
@@ -1484,10 +1488,11 @@ Unit Ra386int;
|
|
expr : string;
|
|
expr : string;
|
|
tempreg : tregister;
|
|
tempreg : tregister;
|
|
typesize,
|
|
typesize,
|
|
- l : aint;
|
|
|
|
|
|
+ l,k : aint;
|
|
hl : tasmlabel;
|
|
hl : tasmlabel;
|
|
toffset,
|
|
toffset,
|
|
tsize : aint;
|
|
tsize : aint;
|
|
|
|
+ tempstr : string;
|
|
begin
|
|
begin
|
|
expr:='';
|
|
expr:='';
|
|
repeat
|
|
repeat
|
|
@@ -1648,6 +1653,8 @@ Unit Ra386int;
|
|
if oper.opr.typ in [OPR_REFERENCE,OPR_LOCAL] then
|
|
if oper.opr.typ in [OPR_REFERENCE,OPR_LOCAL] then
|
|
oper.SetSize(typesize,true);
|
|
oper.SetSize(typesize,true);
|
|
end;
|
|
end;
|
|
|
|
+ else
|
|
|
|
+ oper.SetSize(typesize,true);
|
|
end;
|
|
end;
|
|
end
|
|
end
|
|
else
|
|
else
|