mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 07:32:24 +00:00
More adjustments to ADDRESS vs LONGINT. An -O2 on 64 bit compiler has worked once!
This commit is contained in:
parent
7b8eed9993
commit
cca132d784
201 changed files with 1468 additions and 1456 deletions
|
|
@ -698,7 +698,7 @@ MODULE OPC; (* copyright (c) J. Templ 12.7.95 / 3.7.96 *)
|
|||
OPM.WriteString("LONGINT "); LenList(obj, FALSE, TRUE)
|
||||
ELSIF (obj^.mode = OPT.VarPar) & (obj^.typ^.comp = OPT.Record) THEN
|
||||
EndStat; BegStat;
|
||||
OPM.WriteString("LONGINT *"); Ident(obj); OPM.WriteString(TagExt);
|
||||
OPM.WriteString("address *"); Ident(obj); OPM.WriteString(TagExt);
|
||||
base := NIL
|
||||
ELSIF (OPM.ptrinit IN OPM.opt) & (vis = 0) & (obj^.mnolev > 0) & (obj^.typ^.form = OPT.Pointer) THEN
|
||||
OPM.WriteString(" = NIL")
|
||||
|
|
@ -726,7 +726,7 @@ MODULE OPC; (* copyright (c) J. Templ 12.7.95 / 3.7.96 *)
|
|||
OPM.WriteString(", LONGINT ");
|
||||
LenList(obj, TRUE, showParamNames)
|
||||
ELSIF (obj^.mode = OPT.VarPar) & (obj^.typ^.comp = OPT.Record) THEN
|
||||
OPM.WriteString(", LONGINT *");
|
||||
OPM.WriteString(", address *");
|
||||
IF showParamNames THEN Ident(obj); OPM.WriteString(TagExt) END
|
||||
END ;
|
||||
IF (obj^.link = NIL) OR (obj^.link.mode = OPT.TProc) THEN EXIT END ;
|
||||
|
|
@ -790,7 +790,7 @@ MODULE OPC; (* copyright (c) J. Templ 12.7.95 / 3.7.96 *)
|
|||
ELSIF (typ^.strobj # NIL) & (typ^.strobj^.mnolev > 0) THEN OPM.WriteString('static ')
|
||||
ELSE OPM.WriteString(Export)
|
||||
END ;
|
||||
OPM.WriteString("LONGINT *"); Andent(typ); OPM.WriteString(DynTypExt);
|
||||
OPM.WriteString("address *"); Andent(typ); OPM.WriteString(DynTypExt);
|
||||
EndStat
|
||||
END ;
|
||||
n := n^.link
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ MODULE Console; (* J. Templ, 29-June-96 *)
|
|||
END Hex;
|
||||
|
||||
PROCEDURE Read*(VAR ch: CHAR);
|
||||
VAR n: SYSTEM.ADDRESS; error: Platform.ErrorCode;
|
||||
VAR n: LONGINT; error: Platform.ErrorCode;
|
||||
BEGIN Flush();
|
||||
error := Platform.ReadBuf(Platform.StdIn, ch, n);
|
||||
IF n # 1 THEN ch := 0X END
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@ PROCEDURE -structstats "struct stat s";
|
|||
PROCEDURE -statdev(): LONGINT "(LONGINT)s.st_dev";
|
||||
PROCEDURE -statino(): LONGINT "(LONGINT)s.st_ino";
|
||||
PROCEDURE -statmtime(): LONGINT "(LONGINT)s.st_mtime";
|
||||
PROCEDURE -statsize(): SYSTEM.ADDRESS "(address)s.st_size";
|
||||
PROCEDURE -statsize(): LONGINT "(address)s.st_size";
|
||||
|
||||
PROCEDURE Identify*(h: FileHandle; VAR identity: FileIdentity): ErrorCode;
|
||||
BEGIN
|
||||
|
|
@ -358,7 +358,7 @@ BEGIN
|
|||
END MTimeAsClock;
|
||||
|
||||
|
||||
PROCEDURE Size*(h: FileHandle; VAR l: SYSTEM.ADDRESS): ErrorCode;
|
||||
PROCEDURE Size*(h: FileHandle; VAR l: LONGINT): ErrorCode;
|
||||
BEGIN
|
||||
structstats;
|
||||
IF fstat(h) < 0 THEN RETURN err() END;
|
||||
|
|
@ -368,16 +368,16 @@ END Size;
|
|||
|
||||
|
||||
|
||||
PROCEDURE -readfile (fd: LONGINT; p: SYSTEM.ADDRESS; l: SYSTEM.ADDRESS): SYSTEM.ADDRESS
|
||||
PROCEDURE -readfile (fd: LONGINT; p: SYSTEM.ADDRESS; l: LONGINT): LONGINT
|
||||
"read(fd, (void*)(address)(p), l)";
|
||||
|
||||
PROCEDURE Read*(h: FileHandle; p: SYSTEM.ADDRESS; l: SYSTEM.ADDRESS; VAR n: SYSTEM.ADDRESS): ErrorCode;
|
||||
PROCEDURE Read*(h: FileHandle; p: SYSTEM.ADDRESS; l: LONGINT; VAR n: LONGINT): ErrorCode;
|
||||
BEGIN
|
||||
n := readfile(h, p, l);
|
||||
IF n < 0 THEN n := 0; RETURN err() ELSE RETURN 0 END
|
||||
END Read;
|
||||
|
||||
PROCEDURE ReadBuf*(h: FileHandle; VAR b: ARRAY OF SYSTEM.BYTE; VAR n: SYSTEM.ADDRESS): ErrorCode;
|
||||
PROCEDURE ReadBuf*(h: FileHandle; VAR b: ARRAY OF SYSTEM.BYTE; VAR n: LONGINT): ErrorCode;
|
||||
BEGIN
|
||||
n := readfile(h, SYSTEM.ADR(b), LEN(b));
|
||||
IF n < 0 THEN n := 0; RETURN err() ELSE RETURN 0 END
|
||||
|
|
|
|||
|
|
@ -243,10 +243,16 @@ static inline double SYSTEM_ABSD(double i) {return i >= 0.0 ? i : -i;}
|
|||
#define __CASECHK __HALT(-4)
|
||||
#define __WITHCHK __HALT(-7)
|
||||
|
||||
#define __IS(tag, typ, level) (*(tag-(__BASEOFF-level))==(LONGINT)(address)typ##__typ)
|
||||
#define __TYPEOF(p) ((LONGINT*)(address)(*(((LONGINT*)(p))-1)))
|
||||
|
||||
//#define __IS(tag, typ, level) (*(tag-(__BASEOFF-level))==(LONGINT)(address)typ##__typ)
|
||||
//#define __TYPEOF(p) ((address*)(address)(*(((LONGINT*)(p))-1)))
|
||||
//#define __ISP(p, typ, level) __IS(__TYPEOF(p),typ,level)
|
||||
|
||||
#define __IS(tag, typ, level) (*(tag-(__BASEOFF-level))==(address)typ##__typ)
|
||||
#define __TYPEOF(p) ((address*)(address)(*(((address*)(p))-1)))
|
||||
#define __ISP(p, typ, level) __IS(__TYPEOF(p),typ,level)
|
||||
|
||||
|
||||
#define __GUARDP(p, typ, level) ((typ*)(__ISP(p,typ,level)?p:(__HALT(-5),p)))
|
||||
#define __GUARDR(r, typ, level) (*((typ*)(__IS(r##__typ,typ,level)?r:(__HALT(-5),r))))
|
||||
#define __GUARDA(p, typ, level) ((struct typ*)(__IS(__TYPEOF(p),typ,level)?p:(__HALT(-5),p)))
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ FLAVOUR = $(OS).$(DATAMODEL).$(COMPILER)
|
|||
BUILDDIR = build/$(FLAVOUR)
|
||||
VISHAP = $(ONAME)$(BINEXT)
|
||||
|
||||
# MODEL=-O2 # Override model - build everything as S8,I16,L32.
|
||||
#MODEL=-O2 # Override model - build everything as S8,I16,L32.
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue