From 060ec5134d4309f90ec8ed4e19e899d841e99c7d Mon Sep 17 00:00:00 2001 From: Norayr Chilingarian Date: Fri, 27 Feb 2015 19:08:57 +0400 Subject: [PATCH] added SYSTEM.INT8, SYSTEM.INT16, SYSTEM.INT32, SYSTEM.INT64. tested only on x86_64 yet. -- noch Former-commit-id: 38794808ac6685f6bbeff3362d2b7e06c420852a --- src/lib/system/linux/gcc/SYSTEM.Mod | 1 - src/lib/system/linux/gcc/x86_64/SYSTEM.h | 7 +++++-- src/voc/OPT.Mod | 7 ++++++- src/voc/OPV.Mod | 4 ++++ src/voc/voc.Mod | 4 ++++ voc.REMOVED.git-id | 2 +- 6 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/lib/system/linux/gcc/SYSTEM.Mod b/src/lib/system/linux/gcc/SYSTEM.Mod index 6fc08dcf..183b30b3 100644 --- a/src/lib/system/linux/gcc/SYSTEM.Mod +++ b/src/lib/system/linux/gcc/SYSTEM.Mod @@ -12,7 +12,6 @@ MODULE SYSTEM; (* J. Templ, 31.5.95 *) IMPORT SYSTEM; (*must not import other modules*) - CONST ModNameLen = 20; CmdNameLen = 24; diff --git a/src/lib/system/linux/gcc/x86_64/SYSTEM.h b/src/lib/system/linux/gcc/x86_64/SYSTEM.h index c0cd257a..bda47b9d 100644 --- a/src/lib/system/linux/gcc/x86_64/SYSTEM.h +++ b/src/lib/system/linux/gcc/x86_64/SYSTEM.h @@ -12,7 +12,7 @@ uses double # as concatenation operator */ #include - +#include extern void *memcpy(void *dest, const void *src, unsigned long n); extern void *malloc(unsigned long size); extern void exit(int status); @@ -51,7 +51,10 @@ typedef void *SYSTEM_PTR; //#define *SYSTEM_PTR void //typedef unsigned char SYSTEM_BYTE; #define SYSTEM_BYTE unsigned char - +#define SYSTEM_INT8 int8_t +#define SYSTEM_INT16 int16_t +#define SYSTEM_INT32 int32_t +#define SYSTEM_INT64 int64_t /* runtime system routines */ extern long SYSTEM_DIV(); extern long SYSTEM_MOD(); diff --git a/src/voc/OPT.Mod b/src/voc/OPT.Mod index 2104ffc4..732be37a 100644 --- a/src/voc/OPT.Mod +++ b/src/voc/OPT.Mod @@ -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); diff --git a/src/voc/OPV.Mod b/src/voc/OPV.Mod index 65bb415b..ec076f47 100644 --- a/src/voc/OPV.Mod +++ b/src/voc/OPV.Mod @@ -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; diff --git a/src/voc/voc.Mod b/src/voc/voc.Mod index 687687e8..a109762a 100644 --- a/src/voc/voc.Mod +++ b/src/voc/voc.Mod @@ -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; diff --git a/voc.REMOVED.git-id b/voc.REMOVED.git-id index 617b79d7..d07e9f07 100644 --- a/voc.REMOVED.git-id +++ b/voc.REMOVED.git-id @@ -1 +1 @@ -7ce73aa13bfab8e21eda71e0e351d5d5395e6bd3 \ No newline at end of file +70f95b7f098514cbf57aeb0108e969c76033c940 \ No newline at end of file