* config/sh/sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3.
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Jan 2001 10:31:32 +0000 (10:31 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Jan 2001 10:31:32 +0000 (10:31 +0000)
(INITIALIZE_TRAMPOLINE): Adjust accordingly.
* config/sh/sh.c (sh_expand_prologue): Use r1 as temporary for
stack adjusts, instead of r3.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38823 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/sh/sh.c
gcc/config/sh/sh.h

index 81c6a01..06db9b5 100644 (file)
@@ -1,3 +1,10 @@
+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 ...
index ec88c59..158714c 100644 (file)
@@ -3922,7 +3922,7 @@ sh_expand_prologue ()
   /* 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;
 
@@ -3970,7 +3970,7 @@ sh_expand_prologue ()
   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));
index f337cc9..e78a461 100644 (file)
@@ -649,7 +649,7 @@ do {                                                                        \
 #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.  */
 
@@ -1223,12 +1223,12 @@ extern int current_function_anonymous_args;
 
 /* 
    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
@@ -1244,9 +1244,9 @@ extern int current_function_anonymous_args;
 #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)),   \