+2001-01-09 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/sh/sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3.
+ (INITIALIZE_TRAMPOLINE): Adjust accordingly.
+ * config/sh/sh.c (sh_expand_prologue): Use r1 as temporary for
+ stack adjusts, instead of r3.
+
2001-01-09 Michael Hayes <mhayes@redhat.com>
* flow.c (flow_loop_scan): Break out of ...
/* We have pretend args if we had an object sent partially in registers
and partially on the stack, e.g. a large structure. */
output_stack_adjust (-current_function_pretend_args_size,
- stack_pointer_rtx, 3);
+ stack_pointer_rtx, 1);
extra_push = 0;
target_flags = save_flags;
output_stack_adjust (-rounded_frame_size (d),
- stack_pointer_rtx, 3);
+ stack_pointer_rtx, 1);
if (frame_pointer_needed)
emit_insn (gen_movsi (frame_pointer_rtx, stack_pointer_rtx));
#define ARG_POINTER_REGNUM AP_REG
/* Register in which the static-chain is passed to a function. */
-#define STATIC_CHAIN_REGNUM 13
+#define STATIC_CHAIN_REGNUM 3
/* The register in which a struct value address is passed. */
/*
On the SH, the trampoline looks like
- 2 0002 DD02 mov.l l2,r13
+ 2 0002 D202 mov.l l2,r2
1 0000 D301 mov.l l1,r3
- 3 0004 4D2B jmp @r13
+ 3 0004 422B jmp @r2
4 0006 0009 nop
- 5 0008 00000000 l1: .long function
- 6 000c 00000000 l2: .long area */
+ 5 0008 00000000 l1: .long area
+ 6 000c 00000000 l2: .long function */
/* Length in units of the trampoline for entering a nested function. */
#define TRAMPOLINE_SIZE 16
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) do \
{ \
emit_move_insn (gen_rtx_MEM (SImode, (TRAMP)), \
- GEN_INT (TARGET_LITTLE_ENDIAN ? 0xd301dd02 : 0xdd02d301));\
+ GEN_INT (TARGET_LITTLE_ENDIAN ? 0xd301d202 : 0xd202d301));\
emit_move_insn (gen_rtx_MEM (SImode, plus_constant ((TRAMP), 4)), \
- GEN_INT (TARGET_LITTLE_ENDIAN ? 0x00094d2b : 0x4d2b0009));\
+ GEN_INT (TARGET_LITTLE_ENDIAN ? 0x0009422b : 0x422b0009));\
emit_move_insn (gen_rtx_MEM (SImode, plus_constant ((TRAMP), 8)), \
(CXT)); \
emit_move_insn (gen_rtx_MEM (SImode, plus_constant ((TRAMP), 12)), \