*** empty log message ***

From-SVN: r485
This commit is contained in:
Richard Stallman 1992-03-14 06:41:00 +00:00
parent 767fcd82fb
commit e97f2dc6c1
1 changed files with 59 additions and 8 deletions

View File

@ -145,12 +145,16 @@ extern int target_flags;
/* Alignment of field after `int : 0' in a structure. */
#define EMPTY_FIELD_BOUNDARY 32
/* Every structure's size must be a multiple of this. */
/* ??? This is a guess. */
#define STRUCTURE_SIZE_BOUNDARY 32
/* No data type wants to be aligned rounder than this. */
#define BIGGEST_ALIGNMENT 32
/* Specified types of bitfields affect alignment of those fields
and of the structure as a whole. */
#define PCC_BITFIELD_TYPE_MATTERS
#define PCC_BITFIELD_TYPE_MATTERS 1
/* Make strings word-aligned so strcpy from constants will be faster.
Pyramid documentation says the best alignment is to align
@ -168,9 +172,9 @@ extern int target_flags;
&& TYPE_MODE (TREE_TYPE (TYPE)) == QImode \
&& (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
/* Define this if move instructions will actually fail to work
/* Set this nonzero if move instructions will actually fail to work
when given unaligned data. */
#define STRICT_ALIGNMENT
#define STRICT_ALIGNMENT 1
/*** Standard register usage. ***/
@ -329,6 +333,12 @@ frame n | | | |
/* If needed, Pyramid says to use temporary register 12. */
#define STATIC_CHAIN_REGNUM PYR_TREG(12)
/* If register windows are used, STATIC_CHAIN_INCOMING_REGNUM
is the register number as seen by the called function, while
STATIC_CHAIN_REGNUM is the register number as seen by the calling
function. */
#define STATIC_CHAIN_INCOMING_REGNUM PYR_PREG(12)
/* Register in which address to store a structure value
is passed to a function.
On a Pyramid, this is temporary register 0 (TR0). */
@ -547,7 +557,7 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
#define CUMULATIVE_ARGS int
/* Define the number of registers that can hold paramters.
/* Define the number of registers that can hold parameters.
This macro is used only in other macro definitions below. */
#define NPARM_REGS 12
@ -694,6 +704,38 @@ extern void* pyr_function_arg ();
#endif /* !FRAME_POINTER_REQUIRED */
/* the trampoline stuff was taken from convex.h - S.P. */
/* A C statement to output, on the stream FILE, assembler code for a
block of data that contains the constant parts of a trampoline. This
code should not include a label - the label is taken care of
automatically.
We use TR12/PR12 for the static chain.
movew $<STATIC>,pr12 # I2R
jump $<func> # S2R
*/
#define TRAMPOLINE_TEMPLATE(FILE) \
{ ASM_OUTPUT_INT (FILE, gen_rtx (CONST_INT, VOIDmode, 0x2100001C)); \
ASM_OUTPUT_INT (FILE, gen_rtx (CONST_INT, VOIDmode, 0x00000000)); \
ASM_OUTPUT_INT (FILE, gen_rtx (CONST_INT, VOIDmode, 0x40000000)); \
ASM_OUTPUT_INT (FILE, gen_rtx (CONST_INT, VOIDmode, 0x00000000)); }
#define TRAMPOLINE_SIZE 16
#define TRAMPOLINE_ALIGNMENT 32
/* Emit RTL insns to initialize the variable parts of a trampoline.
FNADDR is an RTX for the address of the function's pure code.
CXT is an RTX for the static chain value for the function. */
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
{ emit_move_insn (gen_rtx (MEM, Pmode, plus_constant (TRAMP, 4)), CXT); \
emit_move_insn (gen_rtx (MEM, Pmode, plus_constant (TRAMP, 12)), FNADDR); \
emit_call_insn (gen_call (gen_rtx (MEM, QImode, \
gen_rtx (SYMBOL_REF, Pmode, \
"__enable_execute_stack")), \
const0_rtx)); \
}
/* Output assembler code to FILE to increment profiler label # LABELNO
for profiling a function entry. */
#define FUNCTION_PROFILER(FILE, LABELNO) \
@ -728,10 +770,15 @@ extern int current_function_calls_alloca;
+ current_function_args_size != 0 \
|| current_function_calls_alloca) \
/* If the memory address ADDR is relative to the frame pointer,
correct it to be relative to the stack pointer instead.
This is for when we don't use a frame pointer.
ADDR should be a variable name. */
/* Store in the variable DEPTH the initial difference between the
frame pointer reg contents and the stack pointer reg contents,
as of the start of the function body. This depends on the layout
of the fixed parts of the stack frame and on how registers are saved.
On the Pyramid, FRAME_POINTER_REQUIRED is always 1, so the definition
of this macro doesn't matter. But it must be defined. */
#define INITIAL_FRAME_POINTER_OFFSET(DEPTH) (DEPTH) = 0;
/*** Addressing modes, and classification of registers for them. ***/
@ -1003,6 +1050,10 @@ extern int current_function_calls_alloca;
return 4; \
case CONST_DOUBLE: \
return 6;
/* A flag which says to swap the operands of certain insns
when they are output. */
extern int swap_operands;
/*** Condition Code Information ***/