Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jonathan Larmour <jifl@eCosCentric.com>
To: gdb-patches@sources.redhat.com
Subject: SH simulator build fix
Date: Tue, 12 Apr 2005 19:05:00 -0000	[thread overview]
Message-ID: <425C1BD6.6020105@eCosCentric.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 855 bytes --]

The SH simulator doesn't build on slightly older GCC. gencode.c relies on 
the C99 ability (like C++) to define variables after code in a function. 
So for example it would generate source code in code.c like:

   case 37:
     {
       {
         RAISE_EXCEPTION_IF_IN_DELAY_SLOT ();
         int i;

where RAISE_EXCEPTION_IF_IN_DELAY_SLOT is:
#define RAISE_EXCEPTION_IF_IN_DELAY_SLOT() \
   if (in_delay_slot) RAISE_EXCEPTION (SIGILL)


Fortunately the fix is trivial, and attached!

2005-04-12  Jonathan Larmour  <jifl@eCosCentric.com>

	* gencode.c (tab): Avoid inserting code before variables all declared.

I have CVS write access to src, so I can do the check-in assuming that's 
easier.

Jifl
-- 
eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
--["No sense being pessimistic, it wouldn't work anyway"]-- Opinions==mine

[-- Attachment #2: gdb-6.3-shsim.patch --]
[-- Type: text/x-patch, Size: 1716 bytes --]

diff -ur gdb-6.3/sim/sh/gencode.c gdb-6.3x/sim/sh/gencode.c
--- gdb-6.3/sim/sh/gencode.c	2004-09-08 10:11:50.000000000 +0100
+++ gdb-6.3x/sim/sh/gencode.c	2005-04-12 19:44:42.141676053 +0100
@@ -102,8 +102,8 @@
 
   { "", "n", "bit32 #imm3,@(disp12,<REG_N>)", "0011nnnni8*11001",
     "/* 32-bit logical bit-manipulation instructions.  */",
-    "RAISE_EXCEPTION_IF_IN_DELAY_SLOT ();",
     "int word2 = RIAT (nip);",
+    "RAISE_EXCEPTION_IF_IN_DELAY_SLOT ();",
     "i >>= 4;	/* BOGUS: Using only three bits of 'i'.  */",
     "/* MSB of 'i' must be zero.  */",
     "if (i > 7)",
@@ -238,9 +238,9 @@
     "saved_state.asregs.regstack[bankn].regs[regn] = R0;",
   },
   { "", "", "resbank", "0000000001011011",
+    "int i;",
     "RAISE_EXCEPTION_IF_IN_DELAY_SLOT ();",
     /* FIXME: cdef all */
-    "int i;",
     "if (BO) {	/* Bank Overflow */",
     /* FIXME: how do we know when to reset BO?  */
     "  for (i = 0; i <= 14; i++) {",
@@ -587,8 +587,8 @@
     "   and mov.bwl <REG_N>, @(disp12,<REG_M>)",
     "   and mov.bwl @(disp12,<REG_N>),<REG_M>",
     "   and movu.bw @(disp12,<REG_N>),<REG_M>.  */",
-    "RAISE_EXCEPTION_IF_IN_DELAY_SLOT ();",
     "int word2 = RIAT (nip);",
+    "RAISE_EXCEPTION_IF_IN_DELAY_SLOT ();",
     "SET_NIP (nip + 2);	/* Consume 2 more bytes.  */",
     "MA (1);",
     "do_long_move_insn (word2 & 0xf000, word2 & 0x0fff, m, n, &thislock);",
@@ -1493,8 +1493,8 @@
   },
 
   { "0", "", "trapa #<imm>", "11000011i8*1....", 
-    "RAISE_EXCEPTION_IF_IN_DELAY_SLOT ();",
     "long imm = 0xff & i;",
+    "RAISE_EXCEPTION_IF_IN_DELAY_SLOT ();",
     "if (i < 20 || i == 33 || i == 34 || i == 0xc3)",
     "  nip += trap (i, &R0, PC, memory, maskl, maskw, endianw);",
 #if 0

             reply	other threads:[~2005-04-12 19:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-12 19:05 Jonathan Larmour [this message]
2005-04-12 19:10 ` Daniel Jacobowitz
2005-04-12 21:50   ` Jonathan Larmour
2005-04-14 19:13     ` Daniel Jacobowitz
2005-04-14 20:16       ` Jonathan Larmour

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=425C1BD6.6020105@eCosCentric.com \
    --to=jifl@ecoscentric.com \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox