Delete old and unused files from modules/src/em_code
This commit is contained in:
parent
99eb12a282
commit
8bf34937f1
|
@ -1,2 +0,0 @@
|
||||||
em.c
|
|
||||||
em_private.h
|
|
|
@ -1,12 +0,0 @@
|
||||||
/* $Header$ */
|
|
||||||
/*
|
|
||||||
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
||||||
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
||||||
*/
|
|
||||||
#include <system.h>
|
|
||||||
|
|
||||||
C_failed()
|
|
||||||
{
|
|
||||||
sys_write(STDERR,"write failed\n",13);
|
|
||||||
sys_stop(S_EXIT);
|
|
||||||
}
|
|
|
@ -1,159 +0,0 @@
|
||||||
/* $Header$ */
|
|
||||||
/*
|
|
||||||
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
||||||
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
||||||
*/
|
|
||||||
/* EM CODE OUTPUT ROUTINES */
|
|
||||||
|
|
||||||
#include "io.c"
|
|
||||||
#include "em_private.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
The C_pt_*() functions serve as formatting functions of the
|
|
||||||
various EM language constructs.
|
|
||||||
See "Description of a Machine Architecture for use with
|
|
||||||
Block Structured Languages" par. 11.2 for the meaning of these
|
|
||||||
names.
|
|
||||||
*/
|
|
||||||
|
|
||||||
C_magic()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/*** the readable code generating routines ***/
|
|
||||||
|
|
||||||
static
|
|
||||||
wrs(s)
|
|
||||||
register char *s;
|
|
||||||
{
|
|
||||||
while (*s) {
|
|
||||||
C_putbyte(*s++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_dnam(s)
|
|
||||||
char *s;
|
|
||||||
{
|
|
||||||
wrs(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_ilb(l)
|
|
||||||
label l;
|
|
||||||
{
|
|
||||||
char buf[16];
|
|
||||||
|
|
||||||
sprint(buf, "*%ld", (long) l);
|
|
||||||
wrs(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern char em_mnem[][4];
|
|
||||||
extern char em_pseu[][4];
|
|
||||||
|
|
||||||
C_pt_op(x)
|
|
||||||
{
|
|
||||||
C_putbyte(' ');
|
|
||||||
wrs(em_mnem[x - sp_fmnem]);
|
|
||||||
C_putbyte(' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_cst(l)
|
|
||||||
arith l;
|
|
||||||
{
|
|
||||||
char buf[16];
|
|
||||||
|
|
||||||
sprint(buf, "%ld", (long) l);
|
|
||||||
wrs(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_scon(x, y)
|
|
||||||
char *x;
|
|
||||||
arith y;
|
|
||||||
{
|
|
||||||
char xbuf[1024];
|
|
||||||
register char *p;
|
|
||||||
char *bts2str();
|
|
||||||
|
|
||||||
C_putbyte('\'');
|
|
||||||
p = bts2str(x, (int) y, xbuf);
|
|
||||||
while (*p) {
|
|
||||||
if (*p == '\'') {
|
|
||||||
C_putbyte('\\');
|
|
||||||
}
|
|
||||||
C_putbyte(*p++);
|
|
||||||
}
|
|
||||||
C_putbyte('\'');
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_ps(x)
|
|
||||||
{
|
|
||||||
C_putbyte(' ');
|
|
||||||
wrs(em_pseu[x - sp_fpseu]);
|
|
||||||
C_putbyte(' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_dlb(l)
|
|
||||||
label l;
|
|
||||||
{
|
|
||||||
char buf[16];
|
|
||||||
|
|
||||||
sprint(buf, ".%ld", (long) l);
|
|
||||||
wrs(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_doff(l, v)
|
|
||||||
label l;
|
|
||||||
arith v;
|
|
||||||
{
|
|
||||||
char buf[16];
|
|
||||||
|
|
||||||
C_pt_dlb(l);
|
|
||||||
if (v != 0) {
|
|
||||||
sprint(buf,"+%ld", (long) v);
|
|
||||||
wrs(buf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_noff(s, v)
|
|
||||||
char *s;
|
|
||||||
arith v;
|
|
||||||
{
|
|
||||||
char buf[16];
|
|
||||||
|
|
||||||
wrs(s);
|
|
||||||
if (v != 0) {
|
|
||||||
sprint(buf,"+%ld", (long) v);
|
|
||||||
wrs(buf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_pnam(s)
|
|
||||||
char *s;
|
|
||||||
{
|
|
||||||
C_putbyte('$');
|
|
||||||
wrs(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_dfilb(l)
|
|
||||||
label l;
|
|
||||||
{
|
|
||||||
char buf[16];
|
|
||||||
|
|
||||||
sprint(buf, "%ld", (long) l);
|
|
||||||
wrs(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_wcon(sp, v, sz) /* sp_icon, sp_ucon or sp_fcon with int repr */
|
|
||||||
int sp;
|
|
||||||
char *v;
|
|
||||||
arith sz;
|
|
||||||
{
|
|
||||||
int ch = sp == sp_icon ? 'I' : sp == sp_ucon ? 'U' : 'F';
|
|
||||||
|
|
||||||
wrs(v);
|
|
||||||
C_putbyte(ch);
|
|
||||||
C_pt_cst(sz);
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_nl() { C_putbyte('\n'); }
|
|
||||||
C_pt_comma() { C_putbyte(','); }
|
|
||||||
C_pt_ccend() { C_putbyte('?'); }
|
|
|
@ -1,37 +0,0 @@
|
||||||
/* $Header$ */
|
|
||||||
/*
|
|
||||||
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
||||||
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
||||||
*/
|
|
||||||
/* private inclusion file */
|
|
||||||
|
|
||||||
#include <em_arith.h>
|
|
||||||
#include <em_label.h>
|
|
||||||
|
|
||||||
/* include the EM description files */
|
|
||||||
#include <em_spec.h>
|
|
||||||
#include <em_pseu.h>
|
|
||||||
#include <em_mnem.h>
|
|
||||||
#include <em_reg.h>
|
|
||||||
|
|
||||||
/* macros used in the definitions of the interface functions C_* */
|
|
||||||
#define OP(x) C_pt_op(x)
|
|
||||||
#define CST(x) C_pt_cst(x)
|
|
||||||
#define DCST(x) C_pt_cst(x)
|
|
||||||
#define SCON(x,y) C_pt_scon((x), (y))
|
|
||||||
#define PS(x) C_pt_ps(x)
|
|
||||||
#define DLB(x) C_pt_dlb(x)
|
|
||||||
#define DFDLB(x) C_pt_dlb(x)
|
|
||||||
#define ILB(x) C_pt_ilb(x)
|
|
||||||
#define DFILB(x) C_pt_dfilb(x)
|
|
||||||
#define NOFF(x,y) C_pt_noff((x), (y))
|
|
||||||
#define DOFF(x,y) C_pt_doff((x), (y))
|
|
||||||
#define PNAM(x) C_pt_pnam(x)
|
|
||||||
#define DNAM(x) C_pt_dnam(x)
|
|
||||||
#define DFDNAM(x) C_pt_dnam(x)
|
|
||||||
#define CEND()
|
|
||||||
#define CCEND() C_pt_ccend()
|
|
||||||
#define WCON(x,y,z) C_pt_wcon((x), (y), (z))
|
|
||||||
#define COMMA() C_pt_comma()
|
|
||||||
#define NL() C_pt_nl()
|
|
||||||
#define CILB(x) C_pt_ilb(x)
|
|
|
@ -1,143 +0,0 @@
|
||||||
/* $Header$ */
|
|
||||||
|
|
||||||
/* I/O part of em_code module.
|
|
||||||
Also contains C_open, C_close
|
|
||||||
*/
|
|
||||||
#include <alloc.h>
|
|
||||||
#include <em_path.h>
|
|
||||||
#include <em_arith.h>
|
|
||||||
#include "insert.h"
|
|
||||||
|
|
||||||
int C_ontmpfile = 0;
|
|
||||||
int C_sequential = 1;
|
|
||||||
Part *C_curr_part;
|
|
||||||
Part *C_stable[TABSIZ];
|
|
||||||
char *C_tmpdir = TMP_DIR;
|
|
||||||
int (*C_outpart)(), (*C_swtout)(), (*C_swttmp)();
|
|
||||||
|
|
||||||
#ifdef INCORE
|
|
||||||
char *C_BASE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
File *C_ofp;
|
|
||||||
|
|
||||||
#ifndef INCORE
|
|
||||||
File *C_tfr, *C_old_ofp;
|
|
||||||
char *C_tmpfile;
|
|
||||||
char *strcpy(), *strcat();
|
|
||||||
char *C_ibuf = 0;
|
|
||||||
long C_current_out;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if BUFSIZ <= 1024 && BIGMACHINE
|
|
||||||
#define BUFFERSIZ 8*BUFSIZ
|
|
||||||
#else
|
|
||||||
#define BUFFERSIZ BUFSIZ
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static char obuf[BUFFERSIZ];
|
|
||||||
char *C_top = &obuf[BUFFERSIZ];
|
|
||||||
char *C_old_top;
|
|
||||||
char *C_old_opp;
|
|
||||||
#ifdef INCORE
|
|
||||||
char *C_current_out = obuf;
|
|
||||||
#else
|
|
||||||
char *C_opp = obuf;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
C_flush() {
|
|
||||||
#ifdef INCORE
|
|
||||||
static unsigned int bufsiz;
|
|
||||||
|
|
||||||
if (C_ontmpfile) {
|
|
||||||
if (C_BASE == 0) {
|
|
||||||
C_BASE = Malloc(BUFFERSIZ);
|
|
||||||
bufsiz = BUFFERSIZ;
|
|
||||||
C_current_out = C_BASE;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
C_BASE = Srealloc(C_BASE, (bufsiz << 1));
|
|
||||||
C_current_out = C_BASE + bufsiz;
|
|
||||||
bufsiz <<= 1;
|
|
||||||
}
|
|
||||||
C_top = C_BASE + bufsiz;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (C_opp != obuf && sys_write(C_ofp, obuf, C_opp - obuf) == 0) {
|
|
||||||
C_failed();
|
|
||||||
}
|
|
||||||
C_opp = obuf;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef INCORE
|
|
||||||
#define Xputbyte(c) if (C_ontmpfile) C_current_out++; put(c)
|
|
||||||
#else
|
|
||||||
#define Xputbyte(c) put(c)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
C_putbyte(c)
|
|
||||||
int c;
|
|
||||||
{
|
|
||||||
Xputbyte(c);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define C_putbyte Xputbyte
|
|
||||||
|
|
||||||
C_init(w, p)
|
|
||||||
arith w, p;
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
C_open(nm)
|
|
||||||
char *nm;
|
|
||||||
{
|
|
||||||
/* Open file "nm" for output
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (nm == 0)
|
|
||||||
C_ofp = STDOUT; /* standard output */
|
|
||||||
else
|
|
||||||
if (sys_open(nm, OP_WRITE, &C_ofp) == 0)
|
|
||||||
return 0;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
C_close()
|
|
||||||
{
|
|
||||||
/* Finish the code-generation.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef INCORE
|
|
||||||
C_flush();
|
|
||||||
if (C_tmpfile) {
|
|
||||||
(*C_swttmp)();
|
|
||||||
sys_close(C_ofp);
|
|
||||||
#else
|
|
||||||
if (C_BASE) {
|
|
||||||
#endif
|
|
||||||
if (C_curr_part) {
|
|
||||||
C_curr_part->p_parts->pp_end = C_current_out - C_BASE;
|
|
||||||
}
|
|
||||||
(*C_swtout)();
|
|
||||||
if (! C_sequential) {
|
|
||||||
(*C_outpart)(0);
|
|
||||||
}
|
|
||||||
#ifndef INCORE
|
|
||||||
sys_close(C_tfr);
|
|
||||||
sys_remove(C_tmpfile);
|
|
||||||
if (C_ibuf) free(C_ibuf);
|
|
||||||
#else
|
|
||||||
free(C_BASE);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
C_flush();
|
|
||||||
if (C_ofp != STDOUT)
|
|
||||||
sys_close(C_ofp);
|
|
||||||
C_ofp = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
C_busy()
|
|
||||||
{
|
|
||||||
return C_ofp != 0; /* true if code is being generated */
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
em.c
|
|
||||||
em_private.h
|
|
|
@ -1,12 +0,0 @@
|
||||||
/* $Header$ */
|
|
||||||
/*
|
|
||||||
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
||||||
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
||||||
*/
|
|
||||||
#include <system.h>
|
|
||||||
|
|
||||||
C_failed()
|
|
||||||
{
|
|
||||||
sys_write(STDERR,"write failed\n",13);
|
|
||||||
sys_stop(S_EXIT);
|
|
||||||
}
|
|
|
@ -1,151 +0,0 @@
|
||||||
/*
|
|
||||||
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
||||||
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
||||||
*/
|
|
||||||
/* $Header$ */
|
|
||||||
/* EM CODE OUTPUT ROUTINES */
|
|
||||||
|
|
||||||
#include "io.c"
|
|
||||||
#include "em_private.h"
|
|
||||||
|
|
||||||
#define put8(x) C_putbyte(x)
|
|
||||||
#define put16(x) put8((int) x); put8((int) (x >> 8))
|
|
||||||
#define put32(x) put16((int) x); put16((int) (x >> 16))
|
|
||||||
|
|
||||||
/*
|
|
||||||
The C_pt_*() functions serve as formatting functions of the
|
|
||||||
various EM language constructs.
|
|
||||||
See "Description of a Machine Architecture for use with
|
|
||||||
Block Structured Languages" par. 11.2 for the meaning of these
|
|
||||||
names.
|
|
||||||
*/
|
|
||||||
|
|
||||||
C_magic()
|
|
||||||
{
|
|
||||||
put16(sp_magic);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*** the compact code generating routines ***/
|
|
||||||
#define fit16i(x) ((x) >= (long)(-0x8000) && (x) <= (long)0x7FFF)
|
|
||||||
#define fit8u(x) ((x) <= 0xFF) /* x is already unsigned */
|
|
||||||
|
|
||||||
C_pt_ilb(l)
|
|
||||||
register label l;
|
|
||||||
{
|
|
||||||
if (fit8u(l)) {
|
|
||||||
put8(sp_ilb1);
|
|
||||||
put8(l);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
put8(sp_ilb2);
|
|
||||||
put16(l);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_dlb(l)
|
|
||||||
register label l;
|
|
||||||
{
|
|
||||||
if (fit8u(l)) {
|
|
||||||
put8(sp_dlb1);
|
|
||||||
put8(l);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
put8(sp_dlb2);
|
|
||||||
put16((int)l);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_cst(l)
|
|
||||||
register arith l;
|
|
||||||
{
|
|
||||||
if (l >= (arith) -sp_zcst0 && l < (arith) (sp_ncst0 - sp_zcst0)) {
|
|
||||||
/* we can convert 'l' to an int because its value
|
|
||||||
can be stored in a byte.
|
|
||||||
*/
|
|
||||||
put8((int)l + (sp_zcst0 + sp_fcst0));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
if (fit16i(l)) { /* the cast from long to int causes no trouble here */
|
|
||||||
put8(sp_cst2);
|
|
||||||
put16((int) l);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
put8(sp_cst4);
|
|
||||||
put32(l);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_doff(l, v)
|
|
||||||
label l;
|
|
||||||
arith v;
|
|
||||||
{
|
|
||||||
if (v == 0) {
|
|
||||||
C_pt_dlb(l);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
put8(sp_doff);
|
|
||||||
C_pt_dlb(l);
|
|
||||||
C_pt_cst(v);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_noff(s, v)
|
|
||||||
char *s;
|
|
||||||
arith v;
|
|
||||||
{
|
|
||||||
if (v == 0) {
|
|
||||||
C_pt_dnam(s);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
put8(sp_doff);
|
|
||||||
C_pt_dnam(s);
|
|
||||||
C_pt_cst(v);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_dnam(s)
|
|
||||||
char *s;
|
|
||||||
{
|
|
||||||
put8(sp_dnam);
|
|
||||||
C_pt_str(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_pnam(s)
|
|
||||||
char *s;
|
|
||||||
{
|
|
||||||
put8(sp_pnam);
|
|
||||||
C_pt_str(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_wcon(sp, v, sz) /* sp_icon, sp_ucon or sp_fcon with int repr */
|
|
||||||
int sp;
|
|
||||||
char *v;
|
|
||||||
arith sz;
|
|
||||||
{
|
|
||||||
/* how 'bout signextension int --> long ??? */
|
|
||||||
put8(sp);
|
|
||||||
C_pt_cst(sz);
|
|
||||||
C_pt_str(v);
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_str(s)
|
|
||||||
register char *s;
|
|
||||||
{
|
|
||||||
register int len;
|
|
||||||
|
|
||||||
C_pt_cst((arith) (len = strlen(s)));
|
|
||||||
while (--len >= 0) {
|
|
||||||
put8(*s++);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
C_pt_scon(b, n)
|
|
||||||
register char *b;
|
|
||||||
register arith n;
|
|
||||||
{
|
|
||||||
put8(sp_scon);
|
|
||||||
C_pt_cst(n);
|
|
||||||
while (--n >= 0) {
|
|
||||||
put8(*b++);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
/* $Header$ */
|
|
||||||
/*
|
|
||||||
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
||||||
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
||||||
*/
|
|
||||||
/* private inclusion file */
|
|
||||||
|
|
||||||
#include <em_arith.h>
|
|
||||||
#include <em_label.h>
|
|
||||||
|
|
||||||
/* include the EM description files */
|
|
||||||
#include <em_spec.h>
|
|
||||||
#include <em_pseu.h>
|
|
||||||
#include <em_mnem.h>
|
|
||||||
#include <em_reg.h>
|
|
||||||
|
|
||||||
/* macros used in the definitions of the interface functions C_* */
|
|
||||||
#define OP(x) C_pt_op(x)
|
|
||||||
#define CST(x) C_pt_cst(x)
|
|
||||||
#define DCST(x) C_pt_cst(x)
|
|
||||||
#define SCON(x,y) C_pt_scon((x), (y))
|
|
||||||
#define PS(x) C_pt_ps(x)
|
|
||||||
#define DLB(x) C_pt_dlb(x)
|
|
||||||
#define DFDLB(x) C_pt_dlb(x)
|
|
||||||
#define ILB(x) C_pt_ilb(x)
|
|
||||||
#define DFILB(x) C_pt_ilb(x)
|
|
||||||
#define NOFF(x,y) C_pt_noff((x), (y))
|
|
||||||
#define DOFF(x,y) C_pt_doff((x), (y))
|
|
||||||
#define PNAM(x) C_pt_pnam(x)
|
|
||||||
#define DNAM(x) C_pt_dnam(x)
|
|
||||||
#define DFDNAM(x) C_pt_dnam(x)
|
|
||||||
#define CEND() C_pt_cend()
|
|
||||||
#define CCEND() C_pt_cend()
|
|
||||||
#define WCON(x,y,z) C_pt_wcon((x), (y), (z))
|
|
||||||
#define COMMA()
|
|
||||||
#define NL()
|
|
||||||
#define CILB(x) CST((arith) x)
|
|
||||||
|
|
||||||
#define C_pt_cend() C_putbyte(sp_cend)
|
|
||||||
#define C_pt_op(x) C_putbyte(x)
|
|
||||||
#define C_pt_ps(x) C_putbyte(x)
|
|
Loading…
Reference in a new issue