Commit graph

24 commits

Author SHA1 Message Date
George Koehler
e04166b85d More prototypes, less register in mach/proto/ncg
Files that #include "equiv.h" must do so after including "data.h", now
that a function prototype in equiv.h uses type rl_p from data.h.

Adjust style, changing some `for(...)` to `for (...)`.  The style in
mach/proto/ncg is less than consistent; the big annoyance now is that
some files want tabs at 4 spaces, others want tabs at 8 spaces.
2017-11-13 12:44:17 -05:00
George Koehler
ba2a45180c Prototypes for string functions. More static. 2017-11-12 11:25:18 -05:00
George Koehler
98b27dd505 Remove old "assert.h" in mach/proto/ncg
*Important:*  You must "make clean" after checking out this commit,
because the build had copied the old "assert.h" to several places in
obj/.  If you don't "make clean", then the compiler finds the old
"assert.h" before libc <assert.h>, and the build fails because this
commit removes badassertion() in subr.c.  After "make clean", the
compiler finds libc <assert.h> and the build succeeds.
2017-11-11 19:35:48 -05:00
George Koehler
2a92f9bf4d Add a few more error checks and adjustments to reglap.
In util/ncgg, add two more errors for tables using reglap:
 - "Two sizes of reg_float can't be same size"
 - "Missing reg_float of size %d to contain %s"

In mach/proto/ncg, rename macro isregvar_size() to PICK_REGVAR(), so
the macro doesn't look like a function.  This macro sometimes doesn't
evaluate its second argument.

In mach/powerpc/ncg/mach.c, change type of lfs_set to uint32_t, and
change the left shifts from 1U<<regno to (uint32_t)1<<regno, because
1U would be too small for machines with 16-bit int.
2017-10-18 22:00:12 -04:00
George Koehler
307a8b996e Add regvar_w() and regvar_d() for use with reglap.
If the ncg table uses reglap, then regvar($1, reg_float) would have
two sizes of registers.  An error from ncgg would happen if regvar()
was in a token that allows only one size.  Now one can pick a size
with regvar_w() for word size or regvar_d() for double-word size.

Add regvar_d and regvar_w as keywords in ncgg.  Modify EX_REGVAR to
include the register size.  In ncg, add some checks for the register
size.  In tables without reglap, regvar() works as before, and ncg
ignores the register size in EX_REGVAR.
2017-10-17 12:05:41 -04:00
George Koehler
b342b83d28 Add function prototypes to mach/proto/ncg/regvar.c 2017-10-15 11:01:18 -04:00
David Given
fd91851005 Add enough return types to the K&R C that the ACK builds (on Linux) using clang
now.
2016-11-10 22:04:18 +01:00
dtrg
4c0a0e6119 Rationalised use of #includes to be more standards-compliant. 2006-07-18 17:10:29 +00:00
ceriel
1db6a3029b Header --> Id 1994-06-24 14:02:31 +00:00
ceriel
f572b1fb35 some changes that may make ncg a tiny bit less inefficient 1991-01-10 18:39:36 +00:00
eck
5badcb4296 changed stackheight computation to top element size computation 1990-09-04 17:16:00 +00:00
eck
4ef2c70ed3 added stackheight message handling 1990-07-18 14:53:19 +00:00
ceriel
3f950c9f17 Added a new operator for ncg: is_rom() 1990-02-09 16:34:17 +00:00
ceriel
79b0bb3347 do not declare sprintf. On some systems it is an int, on others it is
a char *
1989-11-29 09:55:03 +00:00
ceriel
319d9bcfe0 declaration of sprintf only if __STDC__ is not defined 1989-08-21 11:43:41 +00:00
ceriel
e64951e1d3 removed some lint complaints 1988-06-28 14:41:02 +00:00
ceriel
5537abbdfb Added copyright notice 1987-03-10 01:26:51 +00:00
ceriel
0b941ef495 Bug fixes 1987-01-16 13:51:45 +00:00
ceriel
3245258560 Added exclusive or operator 1987-01-08 14:27:07 +00:00
ceriel
ceee24a4cd Added bitwise and and or operators 1987-01-08 14:11:23 +00:00
ceriel
9e6fe01229 Improved testing for 0-strings in the routine "mycat". 1986-12-11 17:04:40 +00:00
sater
ae2f236663 nullpointer and empty string were confused.
Long live the PDP and VAX
1986-10-09 16:12:24 +00:00
sater
851a68883c repaired inreg() pseudofunction, it delivered total nonsense 1986-03-27 15:49:16 +00:00
sater
4ba6e7a39c *** empty log message *** 1985-01-08 15:34:54 +00:00