7e9348169c
The new feature "reglap" allows two sizes of floating-point register
variables (reg_float), if each register overlaps a single register of
the other size. PowerPC ncg uses reglap to define 4-byte instances
of f14 to f31 that overlap the 8-byte instances.
When ncgg sees the definition of fs14("f14")=f14, it removes the
8-byte f14 from its rvnumbers array, and adds the 4-byte fs14 in its
place. Later, when ncg puts a variable in fs14, if it is an 8-byte
variable, then ncg switches to the 8-byte f14. The code has
/* reglap */ comments in util/ncgg or #ifdef REGLAP in mach/proto/ncg
reglap became necessary because my commit a20b87c
caused PowerPC ego
to allocate reg_float in both 4-byte and 8-byte sizes.
16 lines
363 B
C
16 lines
363 B
C
/*
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
*/
|
|
/* $Id$ */
|
|
|
|
#define ANY_REGVAR 0x1
|
|
#define SL_REGVAR 0x2
|
|
#define DL_REGVAR 0x4
|
|
|
|
extern int rvused;
|
|
extern int reglap;
|
|
extern int nregvar[4];
|
|
extern int rvsize[4];
|
|
extern int rvnumbers[4][MAXREGVAR];
|