307a8b996e
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.
55 lines
768 B
Plaintext
55 lines
768 B
Plaintext
# $Id$
|
|
#
|
|
ADDR ADDR
|
|
COERCIONS COERCIONS
|
|
INSTRUCTIONS INSTRUCTIONS
|
|
INT INT
|
|
MOVES MOVES
|
|
PATTERNS PATTERNS
|
|
PROPERTIES PROPERTIES
|
|
REGISTERS REGISTERS
|
|
SETS SETS
|
|
SIZEFACTOR SIZEFACTOR
|
|
STACK STACK
|
|
STACKINGRULES STACKINGRULES
|
|
TESTS TESTS
|
|
TIMEFACTOR TIMEFACTOR
|
|
TOKENS TOKENS
|
|
call CALL
|
|
cost COST
|
|
defined DEFINED
|
|
exact EXACT
|
|
example EXAMPLE
|
|
fallthrough FALLTHROUGH
|
|
from FROM
|
|
gen GEN
|
|
highw HIGHW
|
|
inreg INREG
|
|
is_rom ISROM
|
|
kills KILLS
|
|
labeldef LABELDEF
|
|
leaving LEAVING
|
|
loww LOWW
|
|
move MOVE
|
|
pat PAT
|
|
proc PROC
|
|
reg_any REG_ANY
|
|
reg_float REG_FLOAT
|
|
reg_loop REG_LOOP
|
|
reg_pointer REG_POINTER
|
|
regvar REGVAR
|
|
regvar_d REGVAR_D
|
|
regvar_w REGVAR_W
|
|
return RETURN
|
|
reusing REUSING
|
|
rom ROM
|
|
samesign SAMESIGN
|
|
sfit SFIT
|
|
topeltsize TOPELTSIZE
|
|
test TEST
|
|
to TO
|
|
ufit UFIT
|
|
uses USES
|
|
with WITH
|
|
yields YIELDS
|