From e6e1cf4ce3e2a9e986728a6187f0cb548fd67370 Mon Sep 17 00:00:00 2001 From: John Hassey Date: Mon, 10 May 1993 19:19:06 +0000 Subject: [PATCH] (TRAMPOLINE_TEMPLATE): Fixed invalid bsr insn. From-SVN: r4412 --- gcc/config/m88k/m88k.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h index b5bc29d08f1..21671439eb1 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); \ -- 2.30.2