Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: shanevolpe@gmail.com
To: gdb@sourceware.org
Subject: gdb (ARM processor) casting issues in iwmmxt.c
Date: Tue, 19 Sep 2006 11:43:00 -0000	[thread overview]
Message-ID: <8c7950360609190443n3e48263cg5a3638da76d6dc3b@mail.gmail.com> (raw)

All,
I tried compiling gdb client for the xscale processor and all works
good but for some casting issues in iwmmxt.c  Here is what I found:
There is casting occurring on the target:
 (unsigned long) s1 = a * b;
 I changed all the castings to only cast on the source and not
target.. After my modifications everything compiled fine.  Below is a
patch file with my changes.  I'm not sure if there is something I'm
missing, I have never seen casting on the target before.

Patch:
--- gdb-6.3/sim/arm/iwmmxt~old.c    2003-03-27 12:13:33.000000000 -0500
+++ gdb-6.3/sim/arm/iwmmxt.c        2006-09-18 15:26:05.000000000 -0400
@@ -2114,7 +2114,7 @@

       s = (signed long) a * (signed long) b;

-      (signed long long) t += s;
+      t += (signed long long)s;
         }
       else
         {
@@ -2130,7 +2130,7 @@
     wR [BITS (12, 15)] = 0;

   if (BIT (21))    /* Signed.  */
-    (signed long long) wR[BITS (12, 15)] += (signed long long) t;
+    wR[BITS (12, 15)] += (signed long long) t;
   else
     wR [BITS (12, 15)] += t;

@@ -2166,7 +2166,7 @@
       b = wRHALF (BITS (0, 3), i * 2);
       b = EXTEND16 (b);

-      (signed long) s1 = a * b;
+      s1 = (signed long)a * (signed long)b;

       a = wRHALF (BITS (16, 19), i * 2 + 1);
       a = EXTEND16 (a);
@@ -2174,7 +2174,7 @@
       b = wRHALF (BITS (0, 3), i * 2 + 1);
       b = EXTEND16 (b);

-      (signed long) s2 = a * b;
+      s2 = (signed long)a * (signed long)b;
         }
       else            /* Unsigned.  */
         {
@@ -2183,12 +2183,12 @@
       a = wRHALF (BITS (16, 19), i * 2);
       b = wRHALF (BITS ( 0,  3), i * 2);

-      (unsigned long) s1 = a * b;
+      s1 = (unsigned long)a *(unsigned long) b;

       a = wRHALF (BITS (16, 19), i * 2 + 1);
       b = wRHALF (BITS ( 0,  3), i * 2 + 1);

-      (signed long) s2 = a * b;
+      s2 = (signed long)a * (signed long)b;
         }

       r |= (ARMdword) ((s1 + s2) & 0xffffffff) << (i ? 32 : 0);




-- 
Registered Linux User: #293401


             reply	other threads:[~2006-09-19 11:43 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-19 11:43 shanevolpe [this message]
2006-09-19 18:31 ` Michael Snyder
2006-09-19 18:33   ` shanevolpe
2006-09-19 18:35     ` Daniel Jacobowitz
2006-09-19 18:36     ` Michael Snyder

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=8c7950360609190443n3e48263cg5a3638da76d6dc3b@mail.gmail.com \
    --to=shanevolpe@gmail.com \
    --cc=gdb@sourceware.org \
    /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