added SYSTEM.INT8, SYSTEM.INT16, SYSTEM.INT32, SYSTEM.INT64. tested only

on x86_64 yet. -- noch


Former-commit-id: 38794808ac
This commit is contained in:
Norayr Chilingarian 2015-02-27 19:08:57 +04:00
parent ebfcd163aa
commit 060ec5134d
6 changed files with 20 additions and 5 deletions

View file

@ -12,7 +12,6 @@
MODULE SYSTEM; (* J. Templ, 31.5.95 *)
IMPORT SYSTEM; (*must not import other modules*)
CONST
ModNameLen = 20;
CmdNameLen = 24;

View file

@ -12,7 +12,7 @@ uses double # as concatenation operator
*/
#include <alloca.h>
#include <stdint.h>
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();

View file

@ -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);

View file

@ -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;

View file

@ -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;

View file

@ -1 +1 @@
7ce73aa13bfab8e21eda71e0e351d5d5395e6bd3
70f95b7f098514cbf57aeb0108e969c76033c940