Commit graph

27 commits

Author SHA1 Message Date
George Koehler be1662dd15 Change the optional parameter of n_coerc() to a pointer
Fixes https://github.com/davidgiven/ack/issues/188

One call to n_coerc() omits the 6th and last argument.  This worked in
traditional K&R C, but stops working if we declare n_coerc() with a
prototype of all 6 parameters.

Change the last parameter to a pointer.  Declare n_coerc() with
prototype, so it now requires all 6 arguments.  Pass NULL when have no
iocc_t.  This NULL exists only to satisfy the prototype; n_coerc()
will not use this NULL.

A different fix would declare n_coerc() with 5 parameters and `...`,
then use <stdarg.h> to read the 6th argument when it exists.
2019-10-30 18:36:56 -04:00
carl 472654c366 ANSI C conversion and add procedure declarations. 2019-05-11 01:17:24 +08: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
David Given 81778b603f Merge updates from trunk.
--HG--
branch : dtrg-buildsystem
2013-05-13 12:37:27 +01:00
David Given c1aca7dae5 First milestone of replacing the build system.
--HG--
branch : dtrg-buildsystem
rename : lang/cem/cpp.ansi/Parameters => lang/cem/cpp.ansi/parameters.h
2013-05-12 20:45:55 +01:00
David Given c93cb69959 Check in incomplete Linux PowerPC and M68K work.
--HG--
branch : dtrg-experimental-powerpc
2013-05-08 00:48:48 +01:00
dtrg f5bbc20093 Removed unnecessary commas seperating yacc tokens, to prevent warnings. 2006-07-18 17:17:14 +00:00
ceriel 5c83e7dbb5 Header --> Id 1994-06-24 11:31:16 +00:00
eck 5c85d84228 changed stackheight computation to top element size computation
changed some parameters
1990-09-04 17:19:04 +00:00
eck 4ef2c70ed3 added stackheight message handling 1990-07-18 14:53:19 +00:00
ceriel 7c4af80c0f is_rom is boolean, not integer 1990-02-12 15:15:21 +00:00
ceriel 3f950c9f17 Added a new operator for ncg: is_rom() 1990-02-09 16:34:17 +00:00
ceriel d9d6cc127f Allow more procedure parameters 1989-11-09 11:04:18 +00:00
ceriel 3e80ca51fc generate #defines for MAXREPLLEN, MAXEMREPLLEN 1989-11-08 17:14:52 +00:00
ceriel 8f2fe1c003 token references in EM replacements do not work. Give error message 1989-05-30 12:20:54 +00:00
ceriel 18b7250736 Added a DO_TOSTACK command, and put set number of ALL in tables.c 1987-08-20 19:04:18 +00:00
ceriel 815166e421 Added copyright notice 1987-03-09 19:15:41 +00:00
ceriel 8f4a99cc24 The added ',' separator in token declarations did not work
(reported by Kees Bot, Edwin Scheffer). This is corrected (I hope).
1987-02-07 03:56:34 +00:00
ceriel e0b23bbaea Added code to kill regvar(...) 1987-02-05 19:20:54 +00:00
ceriel edae1fc950 Added a check that a tokenset in a stackpattern contains tokens
that all have the same size.
1987-01-26 16:14:39 +00:00
ceriel 45238eea0f Some bug fixes and minor extensions 1987-01-16 13:51:42 +00:00
ceriel e5820bdbaa Added bitwise operators 1987-01-08 14:22:32 +00:00
sater 5c71bad6e1 Relaxed input syntax for from STACK coercions
No gen clause is necessary anymore.
1986-03-19 16:14:12 +00:00
sater a91e33ce96 Corrected error in otime of initialisation of booleans 1985-12-02 13:55:06 +00:00
sater a1a8fd99a0 Optional register property in stacking rules must be -1 when absent.
Fixed this.
1985-01-10 16:30:09 +00:00
sater 72b83cca59 *** empty log message *** 1985-01-08 09:59:28 +00:00