mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 18:02:25 +00:00
added SYSTEM.INT8, SYSTEM.INT16, SYSTEM.INT32, SYSTEM.INT64. tested only
on x86_64 yet. -- noch
This commit is contained in:
parent
8d73a74432
commit
38794808ac
6 changed files with 19 additions and 4 deletions
|
|
@ -68,7 +68,8 @@ MODULE OPT; (* NW, RC 6.3.89 / 23.1.92 *) (* object model 24.2.94 *)
|
|||
typSize*: PROCEDURE(typ: Struct);
|
||||
topScope*: Object;
|
||||
undftyp*, bytetyp*, booltyp*, chartyp*, sinttyp*, inttyp*, linttyp*,
|
||||
realtyp*, lrltyp*, settyp*, stringtyp*, niltyp*, notyp*, sysptrtyp*: Struct;
|
||||
realtyp*, lrltyp*, settyp*, stringtyp*, niltyp*, notyp*, sysptrtyp*,
|
||||
int8typ*, int16typ*, int32typ*, int64typ*: Struct;
|
||||
nofGmod*: SHORTINT; (*nof imports*)
|
||||
GlbMod*: ARRAY maxImps OF Object; (* ^.right = first object, ^.name = module import name (not alias) *)
|
||||
SelfName*: OPS.Name; (* name of module being compiled *)
|
||||
|
|
@ -1042,6 +1043,10 @@ BEGIN topScope := NIL; OpenScope(0, NIL); OPM.errpos := 0;
|
|||
|
||||
(*initialization of module SYSTEM*)
|
||||
EnterTyp("BYTE", Byte, OPM.ByteSize, bytetyp);
|
||||
EnterTyp("INT8", Byte, 1, int8typ);
|
||||
EnterTyp("INT16", SInt, 2, int16typ);
|
||||
EnterTyp("INT32", Int, 4, int32typ);
|
||||
EnterTyp("INT64", LInt, 8, int64typ);
|
||||
EnterTyp("PTR", Pointer, OPM.PointerSize, sysptrtyp);
|
||||
EnterProc("ADR", adrfn);
|
||||
EnterProc("CC", ccfn);
|
||||
|
|
|
|||
|
|
@ -249,6 +249,10 @@ MODULE OPV; (* J. Templ 16.2.95 / 3.7.96
|
|||
OPT.sinttyp^.strobj^.linkadr := PredefinedType;
|
||||
OPT.booltyp^.strobj^.linkadr := PredefinedType;
|
||||
OPT.bytetyp^.strobj^.linkadr := PredefinedType;
|
||||
OPT.int8typ^.strobj^.linkadr := PredefinedType;
|
||||
OPT.int16typ^.strobj^.linkadr := PredefinedType;
|
||||
OPT.int32typ^.strobj^.linkadr := PredefinedType;
|
||||
OPT.int64typ^.strobj^.linkadr := PredefinedType;
|
||||
OPT.sysptrtyp^.strobj^.linkadr := PredefinedType;
|
||||
END AdrAndSize;
|
||||
|
||||
|
|
|
|||
|
|
@ -80,6 +80,10 @@ VAR mname : ARRAY 256 OF CHAR; (* noch *)
|
|||
modulesobj := "";
|
||||
OPM.OpenPar; (* gclock(); slightly faste rtranslation but may lead to opening "too many files" *)
|
||||
OPT.bytetyp.size := OPM.ByteSize;
|
||||
OPT.int8typ.size := 1;
|
||||
OPT.int16typ.size := 2;
|
||||
OPT.int32typ.size := 4;
|
||||
OPT.int64typ.size := 8;
|
||||
OPT.sysptrtyp.size := OPM.PointerSize;
|
||||
OPT.chartyp.size := OPM.CharSize;
|
||||
OPT.settyp.size := OPM.SetSize;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue