mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-03 06:50:15 +02:00
* better error recovering in typed constants
* some problems with arrays of const fixed, some problems due my previous - the location type of array constructor is now LOC_MEM - the pushing of high fixed - parameter copying fixed - zero temp. allocation removed * small problem in the assembler writers fixed: ref to nil wasn't written correctly
This commit is contained in:
parent
f664777328
commit
6b33f4d87d
@ -189,12 +189,18 @@ unit ag386int;
|
|||||||
getopstr:=tostr(o.val);
|
getopstr:=tostr(o.val);
|
||||||
top_symbol :
|
top_symbol :
|
||||||
begin
|
begin
|
||||||
hs:='offset '+o.sym^.name;
|
if assigned(o.sym) then
|
||||||
|
hs:='offset '+o.sym^.name
|
||||||
|
else
|
||||||
|
hs:='offset ';
|
||||||
if o.symofs>0 then
|
if o.symofs>0 then
|
||||||
hs:=hs+'+'+tostr(o.symofs)
|
hs:=hs+'+'+tostr(o.symofs)
|
||||||
else
|
else
|
||||||
if o.symofs<0 then
|
if o.symofs<0 then
|
||||||
hs:=hs+tostr(o.symofs);
|
hs:=hs+tostr(o.symofs)
|
||||||
|
else
|
||||||
|
if not(assigned(o.sym)) then
|
||||||
|
hs:=hs+'0';
|
||||||
getopstr:=hs;
|
getopstr:=hs;
|
||||||
end;
|
end;
|
||||||
top_ref :
|
top_ref :
|
||||||
@ -795,7 +801,18 @@ ait_stab_function_name : ;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.42 1999-05-21 13:54:42 peter
|
Revision 1.43 1999-05-23 18:41:55 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.42 1999/05/21 13:54:42 peter
|
||||||
* NEWLAB for label as symbol
|
* NEWLAB for label as symbol
|
||||||
|
|
||||||
Revision 1.41 1999/05/12 00:19:38 peter
|
Revision 1.41 1999/05/12 00:19:38 peter
|
||||||
|
@ -191,12 +191,18 @@ unit ag386nsm;
|
|||||||
getopstr:=tostr(o.val);
|
getopstr:=tostr(o.val);
|
||||||
top_symbol :
|
top_symbol :
|
||||||
begin
|
begin
|
||||||
hs:='dword '+o.sym^.name;
|
if assigned(o.sym) then
|
||||||
|
hs:='dword '+o.sym^.name
|
||||||
|
else
|
||||||
|
hs:='dword ';
|
||||||
if o.symofs>0 then
|
if o.symofs>0 then
|
||||||
hs:=hs+'+'+tostr(o.symofs)
|
hs:=hs+'+'+tostr(o.symofs)
|
||||||
else
|
else
|
||||||
if o.symofs<0 then
|
if o.symofs<0 then
|
||||||
hs:=hs+tostr(o.symofs);
|
hs:=hs+tostr(o.symofs)
|
||||||
|
else
|
||||||
|
if not(assigned(o.sym)) then
|
||||||
|
hs:=hs+'0';
|
||||||
getopstr:=hs;
|
getopstr:=hs;
|
||||||
end;
|
end;
|
||||||
top_ref :
|
top_ref :
|
||||||
@ -760,7 +766,18 @@ ait_stab_function_name : ;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.38 1999-05-21 13:54:43 peter
|
Revision 1.39 1999-05-23 18:41:57 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.38 1999/05/21 13:54:43 peter
|
||||||
* NEWLAB for label as symbol
|
* NEWLAB for label as symbol
|
||||||
|
|
||||||
Revision 1.37 1999/05/12 00:19:39 peter
|
Revision 1.37 1999/05/12 00:19:39 peter
|
||||||
|
@ -1190,7 +1190,18 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.85 1999-05-21 13:54:44 peter
|
Revision 1.86 1999-05-23 18:41:58 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.85 1999/05/21 13:54:44 peter
|
||||||
* NEWLAB for label as symbol
|
* NEWLAB for label as symbol
|
||||||
|
|
||||||
Revision 1.84 1999/05/18 22:34:26 pierre
|
Revision 1.84 1999/05/18 22:34:26 pierre
|
||||||
|
@ -1240,7 +1240,18 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.52 1999-05-21 13:54:50 peter
|
Revision 1.53 1999-05-23 18:42:01 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.52 1999/05/21 13:54:50 peter
|
||||||
* NEWLAB for label as symbol
|
* NEWLAB for label as symbol
|
||||||
|
|
||||||
Revision 1.51 1999/05/18 21:58:27 florian
|
Revision 1.51 1999/05/18 21:58:27 florian
|
||||||
|
@ -237,6 +237,7 @@ implementation
|
|||||||
is always an reference! }
|
is always an reference! }
|
||||||
if (pvarsym(p^.symtableentry)^.varspez=vs_var) or
|
if (pvarsym(p^.symtableentry)^.varspez=vs_var) or
|
||||||
is_open_array(pvarsym(p^.symtableentry)^.definition) or
|
is_open_array(pvarsym(p^.symtableentry)^.definition) or
|
||||||
|
is_array_of_const(pvarsym(p^.symtableentry)^.definition) or
|
||||||
((pvarsym(p^.symtableentry)^.varspez=vs_const) and
|
((pvarsym(p^.symtableentry)^.varspez=vs_const) and
|
||||||
push_addr_param(pvarsym(p^.symtableentry)^.definition)) then
|
push_addr_param(pvarsym(p^.symtableentry)^.definition)) then
|
||||||
begin
|
begin
|
||||||
@ -780,9 +781,13 @@ implementation
|
|||||||
begin
|
begin
|
||||||
if not p^.cargs then
|
if not p^.cargs then
|
||||||
begin
|
begin
|
||||||
reset_reference(p^.location.reference);
|
reset_reference(p^.location.reference);
|
||||||
gettempofsizereference((parraydef(p^.resulttype)^.highrange+1)*8,p^.location.reference);
|
if parraydef(p^.resulttype)^.highrange=-1 then
|
||||||
href:=p^.location.reference;
|
begin
|
||||||
|
end
|
||||||
|
else
|
||||||
|
gettempofsizereference((parraydef(p^.resulttype)^.highrange+1)*8,p^.location.reference);
|
||||||
|
href:=p^.location.reference;
|
||||||
end;
|
end;
|
||||||
hp:=p;
|
hp:=p;
|
||||||
while assigned(hp) do
|
while assigned(hp) do
|
||||||
@ -871,7 +876,18 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.57 1999-05-21 13:54:51 peter
|
Revision 1.58 1999-05-23 18:42:02 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.57 1999/05/21 13:54:51 peter
|
||||||
* NEWLAB for label as symbol
|
* NEWLAB for label as symbol
|
||||||
|
|
||||||
Revision 1.56 1999/05/17 23:51:38 peter
|
Revision 1.56 1999/05/17 23:51:38 peter
|
||||||
|
@ -501,7 +501,8 @@ implementation
|
|||||||
{ offset can only differ from 0 if arraydef }
|
{ offset can only differ from 0 if arraydef }
|
||||||
if (p^.left^.resulttype^.deftype=arraydef) then
|
if (p^.left^.resulttype^.deftype=arraydef) then
|
||||||
begin
|
begin
|
||||||
if not(is_open_array(p^.left^.resulttype)) then
|
if not(is_open_array(p^.left^.resulttype)) and
|
||||||
|
not(is_array_of_const(p^.left^.resulttype)) then
|
||||||
begin
|
begin
|
||||||
if (p^.right^.value>parraydef(p^.left^.resulttype)^.highrange) or
|
if (p^.right^.value>parraydef(p^.left^.resulttype)^.highrange) or
|
||||||
(p^.right^.value<parraydef(p^.left^.resulttype)^.lowrange) then
|
(p^.right^.value<parraydef(p^.left^.resulttype)^.lowrange) then
|
||||||
@ -856,7 +857,18 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.44 1999-05-21 13:54:53 peter
|
Revision 1.45 1999-05-23 18:42:04 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.44 1999/05/21 13:54:53 peter
|
||||||
* NEWLAB for label as symbol
|
* NEWLAB for label as symbol
|
||||||
|
|
||||||
Revision 1.43 1999/05/19 16:48:21 florian
|
Revision 1.43 1999/05/19 16:48:21 florian
|
||||||
|
@ -589,7 +589,7 @@ const msgtxt : array[0..000095,1..240] of char=(
|
|||||||
'3*2Anasmcoff_coff file using Nasm'#000+
|
'3*2Anasmcoff_coff file using Nasm'#000+
|
||||||
'3*2Anasmelf_elf32 (Linux) file using Nasm'#000+
|
'3*2Anasmelf_elf32 (Linux) file using Nasm'#000+
|
||||||
'3*2Anasmobj_ob','j file using Nasm'#000+
|
'3*2Anasmobj_ob','j file using Nasm'#000+
|
||||||
'3*2Amasm_obj file using Masm (Mircosoft)'#000+
|
'3*2Amasm_obj file using Masm (Microsoft)'#000+
|
||||||
'3*2Atasm_obj file using Tasm (Borland)'#000+
|
'3*2Atasm_obj file using Tasm (Borland)'#000+
|
||||||
'3*1R<x>_assembler reading style:'#000+
|
'3*1R<x>_assembler reading style:'#000+
|
||||||
'3*2Ratt_read AT&T style assembler'#000+
|
'3*2Ratt_read AT&T style assembler'#000+
|
||||||
|
@ -714,6 +714,14 @@ unit ptconst;
|
|||||||
consume(RKLAMMER);
|
consume(RKLAMMER);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
errordef:
|
||||||
|
begin
|
||||||
|
{ try to consume something useful }
|
||||||
|
if token=LKLAMMER then
|
||||||
|
consume_all_until(RKLAMMER)
|
||||||
|
else
|
||||||
|
consume_all_until(SEMICOLON);
|
||||||
|
end;
|
||||||
else Message(parser_e_type_const_not_possible);
|
else Message(parser_e_type_const_not_possible);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -721,7 +729,18 @@ unit ptconst;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.44 1999-05-21 13:55:11 peter
|
Revision 1.45 1999-05-23 18:42:13 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.44 1999/05/21 13:55:11 peter
|
||||||
* NEWLAB for label as symbol
|
* NEWLAB for label as symbol
|
||||||
|
|
||||||
Revision 1.43 1999/05/12 00:19:54 peter
|
Revision 1.43 1999/05/12 00:19:54 peter
|
||||||
|
@ -3499,9 +3499,26 @@ Const local_symtable_index : longint = $8001;
|
|||||||
end;
|
end;
|
||||||
{$endif GDB}
|
{$endif GDB}
|
||||||
|
|
||||||
|
function terrordef.gettypename:string;
|
||||||
|
|
||||||
|
begin
|
||||||
|
gettypename:='<erroneous type>';
|
||||||
|
end;
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.121 1999-05-21 13:55:19 peter
|
Revision 1.122 1999-05-23 18:42:14 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.121 1999/05/21 13:55:19 peter
|
||||||
* NEWLAB for label as symbol
|
* NEWLAB for label as symbol
|
||||||
|
|
||||||
Revision 1.120 1999/05/20 22:22:43 pierre
|
Revision 1.120 1999/05/20 22:22:43 pierre
|
||||||
|
@ -142,6 +142,7 @@
|
|||||||
{$ifdef GDB}
|
{$ifdef GDB}
|
||||||
function stabstring : pchar;virtual;
|
function stabstring : pchar;virtual;
|
||||||
{$endif GDB}
|
{$endif GDB}
|
||||||
|
function gettypename:string;virtual;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ tpointerdef and tclassrefdef should get a common
|
{ tpointerdef and tclassrefdef should get a common
|
||||||
@ -516,7 +517,18 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.28 1999-05-19 16:48:28 florian
|
Revision 1.29 1999-05-23 18:42:15 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.28 1999/05/19 16:48:28 florian
|
||||||
* tdef.typename: returns a now a proper type name for the most types
|
* tdef.typename: returns a now a proper type name for the most types
|
||||||
|
|
||||||
Revision 1.27 1999/05/13 21:59:42 peter
|
Revision 1.27 1999/05/13 21:59:42 peter
|
||||||
|
@ -284,7 +284,7 @@ unit symtable;
|
|||||||
s32bitdef : porddef; { Pointer to 32-Bit signed }
|
s32bitdef : porddef; { Pointer to 32-Bit signed }
|
||||||
|
|
||||||
cu64bitdef : porddef; { pointer to 64 bit unsigned def }
|
cu64bitdef : porddef; { pointer to 64 bit unsigned def }
|
||||||
cs64bitdef : porddef; { pointer to 64 bit signed def, }
|
cs64bitintdef : porddef; { pointer to 64 bit signed def, }
|
||||||
{ calculated by the int unit on i386 }
|
{ calculated by the int unit on i386 }
|
||||||
|
|
||||||
s32floatdef : pfloatdef; { pointer for realconstn }
|
s32floatdef : pfloatdef; { pointer for realconstn }
|
||||||
@ -2345,7 +2345,18 @@ const localsymtablestack : psymtable = nil;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.15 1999-05-17 23:51:41 peter
|
Revision 1.16 1999-05-23 18:42:16 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.15 1999/05/17 23:51:41 peter
|
||||||
* with temp vars now use a reference with a persistant temp instead
|
* with temp vars now use a reference with a persistant temp instead
|
||||||
of setting datasize
|
of setting datasize
|
||||||
|
|
||||||
|
@ -481,12 +481,12 @@ implementation
|
|||||||
begin
|
begin
|
||||||
if (porddef(ld)^.typ<>s64bitint) then
|
if (porddef(ld)^.typ<>s64bitint) then
|
||||||
begin
|
begin
|
||||||
p^.left:=gentypeconvnode(p^.left,cs64bitdef);
|
p^.left:=gentypeconvnode(p^.left,cs64bitintdef);
|
||||||
firstpass(p^.left);
|
firstpass(p^.left);
|
||||||
end;
|
end;
|
||||||
if (porddef(rd)^.typ<>s64bitint) then
|
if (porddef(rd)^.typ<>s64bitint) then
|
||||||
begin
|
begin
|
||||||
p^.right:=gentypeconvnode(p^.right,cs64bitdef);
|
p^.right:=gentypeconvnode(p^.right,cs64bitintdef);
|
||||||
firstpass(p^.right);
|
firstpass(p^.right);
|
||||||
end;
|
end;
|
||||||
calcregisters(p,2,0,0);
|
calcregisters(p,2,0,0);
|
||||||
@ -1097,7 +1097,18 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.31 1999-05-19 20:40:14 florian
|
Revision 1.32 1999-05-23 18:42:18 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.31 1999/05/19 20:40:14 florian
|
||||||
* fixed a couple of array related bugs:
|
* fixed a couple of array related bugs:
|
||||||
- var a : array[0..1] of char; p : pchar; p:=a+123; works now
|
- var a : array[0..1] of char; p : pchar; p:=a+123; works now
|
||||||
- open arrays with an odd size doesn't work: movsb wasn't generated
|
- open arrays with an odd size doesn't work: movsb wasn't generated
|
||||||
|
@ -69,7 +69,8 @@ implementation
|
|||||||
case p^.left^.resulttype^.deftype of
|
case p^.left^.resulttype^.deftype of
|
||||||
arraydef :
|
arraydef :
|
||||||
begin
|
begin
|
||||||
if is_open_array(p^.left^.resulttype) then
|
if is_open_array(p^.left^.resulttype) or
|
||||||
|
is_array_of_const(p^.left^.resulttype) then
|
||||||
begin
|
begin
|
||||||
st:=p^.left^.symtable;
|
st:=p^.left^.symtable;
|
||||||
getsymonlyin(st,'high'+pvarsym(p^.left^.symtableentry)^.name);
|
getsymonlyin(st,'high'+pvarsym(p^.left^.symtableentry)^.name);
|
||||||
@ -1166,7 +1167,18 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.46 1999-05-20 14:58:27 peter
|
Revision 1.47 1999-05-23 18:42:19 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.46 1999/05/20 14:58:27 peter
|
||||||
* fixed arrayconstruct->set conversion which didn't work for enum sets
|
* fixed arrayconstruct->set conversion which didn't work for enum sets
|
||||||
|
|
||||||
Revision 1.45 1999/05/19 10:31:54 florian
|
Revision 1.45 1999/05/19 10:31:54 florian
|
||||||
|
@ -1011,7 +1011,8 @@ implementation
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
if is_open_array(p^.left^.resulttype) then
|
if is_open_array(p^.left^.resulttype) or
|
||||||
|
is_array_of_const(p^.left^.resulttype) then
|
||||||
begin
|
begin
|
||||||
getsymonlyin(p^.left^.symtable,'high'+pvarsym(p^.left^.symtableentry)^.name);
|
getsymonlyin(p^.left^.symtable,'high'+pvarsym(p^.left^.symtableentry)^.name);
|
||||||
hp:=genloadnode(pvarsym(srsym),p^.left^.symtable);
|
hp:=genloadnode(pvarsym(srsym),p^.left^.symtable);
|
||||||
@ -1104,7 +1105,18 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.33 1999-05-06 09:05:35 peter
|
Revision 1.34 1999-05-23 18:42:20 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.33 1999/05/06 09:05:35 peter
|
||||||
* generic write_float and str_float
|
* generic write_float and str_float
|
||||||
* fixed constant float conversions
|
* fixed constant float conversions
|
||||||
|
|
||||||
|
@ -439,7 +439,7 @@ implementation
|
|||||||
parraydef(p^.resulttype)^.definition:=pd;
|
parraydef(p^.resulttype)^.definition:=pd;
|
||||||
parraydef(p^.resulttype)^.IsConstructor:=true;
|
parraydef(p^.resulttype)^.IsConstructor:=true;
|
||||||
parraydef(p^.resulttype)^.IsVariant:=varia;
|
parraydef(p^.resulttype)^.IsVariant:=varia;
|
||||||
p^.location.loc:=LOC_REFERENCE;
|
p^.location.loc:=LOC_MEM;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -457,7 +457,18 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.31 1999-05-19 15:26:41 florian
|
Revision 1.32 1999-05-23 18:42:22 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.31 1999/05/19 15:26:41 florian
|
||||||
* if a non local variables isn't initialized the compiler doesn't write
|
* if a non local variables isn't initialized the compiler doesn't write
|
||||||
any longer "local var. seems not to be ..."
|
any longer "local var. seems not to be ..."
|
||||||
|
|
||||||
|
@ -446,7 +446,8 @@ implementation
|
|||||||
|
|
||||||
function push_high_param(def : pdef) : boolean;
|
function push_high_param(def : pdef) : boolean;
|
||||||
begin
|
begin
|
||||||
push_high_param:=is_open_array(def) or is_open_string(def);
|
push_high_param:=is_open_array(def) or is_open_string(def) or
|
||||||
|
is_array_of_const(def);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -884,7 +885,18 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.64 1999-05-19 20:55:08 florian
|
Revision 1.65 1999-05-23 18:42:23 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.64 1999/05/19 20:55:08 florian
|
||||||
* fix of my previous commit
|
* fix of my previous commit
|
||||||
|
|
||||||
Revision 1.63 1999/05/19 20:40:15 florian
|
Revision 1.63 1999/05/19 20:40:15 florian
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
**********************************************************************}
|
**********************************************************************}
|
||||||
program msg2inc;
|
|
||||||
program nasmconv;
|
program nasmconv;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -295,7 +294,18 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.1 1999-05-12 16:17:10 peter
|
Revision 1.2 1999-05-23 18:42:24 florian
|
||||||
|
* better error recovering in typed constants
|
||||||
|
* some problems with arrays of const fixed, some problems
|
||||||
|
due my previous
|
||||||
|
- the location type of array constructor is now LOC_MEM
|
||||||
|
- the pushing of high fixed
|
||||||
|
- parameter copying fixed
|
||||||
|
- zero temp. allocation removed
|
||||||
|
* small problem in the assembler writers fixed:
|
||||||
|
ref to nil wasn't written correctly
|
||||||
|
|
||||||
|
Revision 1.1 1999/05/12 16:17:10 peter
|
||||||
* init
|
* init
|
||||||
|
|
||||||
Revision 1.1 1999/05/12 16:08:27 peter
|
Revision 1.1 1999/05/12 16:08:27 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user