aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hassey <hassey@gnu.org>1993-05-10 19:19:06 +0000
committerJohn Hassey <hassey@gnu.org>1993-05-10 19:19:06 +0000
commite6e1cf4ce3e2a9e986728a6187f0cb548fd67370 (patch)
tree87c4bfcad4e224f528f340823e0328732aed3a11
parent600ceaa944f3736fcb8afc0bfd507ac226a24e04 (diff)
downloadgcc-e6e1cf4ce3e2a9e986728a6187f0cb548fd67370.zip
gcc-e6e1cf4ce3e2a9e986728a6187f0cb548fd67370.tar.gz
gcc-e6e1cf4ce3e2a9e986728a6187f0cb548fd67370.tar.bz2
(TRAMPOLINE_TEMPLATE): Fixed invalid bsr insn.
From-SVN: r4412
-rw-r--r--gcc/config/m88k/m88k.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h
index b5bc29d..2167143 100644
--- a/gcc/config/m88k/m88k.h
+++ b/gcc/config/m88k/m88k.h
@@ -1183,6 +1183,10 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
/*** Trampolines for Nested Functions ***/
/* Output assembler code for a block containing the constant parts
+ char buf[256]; \
+ static int labelno = 0; \
+ labelno++; \
+ ASM_GENERATE_INTERNAL_LABEL (buf, "LTRMP", labelno); \
of a trampoline, leaving space for the variable parts.
This block is placed on the stack and filled in. It is aligned
@@ -1197,7 +1201,8 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
/* Save the return address (r1) in the static chain reg (r11). */ \
fprintf (FILE, "\tor\t %s,%s,0\n", reg_names[11], reg_names[1]); \
/* Locate this block; transfer to the next instruction. */ \
- fprintf (FILE, "\tbsr\t 1\n"); \
+ fprintf (FILE, "\tbsr\t %s\n", &buf[1]); \
+ ASM_OUTPUT_INTERNAL_LABEL (FILE, "LTRMP", labelno); \
/* Save r10; use it as the relative pointer; restore r1. */ \
fprintf (FILE, "\tst\t %s,%s,24\n", reg_names[10], reg_names[1]); \
fprintf (FILE, "\tor\t %s,%s,0\n", reg_names[10], reg_names[1]); \
@@ -1927,7 +1932,7 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
if (!flag_inhibit_size_directive) \
{ \
char label[256]; \
- static int labelno; \
+ static int labelno = 0; \
labelno++; \
ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \