Linux PARISC architecture development
 help / color / mirror / Atom feed
From: "Carlos O'Donell Jr." <carlos@baldric.uwo.ca>
To: John David Anglin <dave@hiauly1.hia.nrc.ca>,
	tausq@debian.org, parisc-linux@lists.parisc-linux.org
Subject: Re: [parisc-linux] kdb getting healthier? (PCI guru needed, that's you willy!)
Date: Fri, 7 Jun 2002 11:08:20 -0400	[thread overview]
Message-ID: <20020607110820.C10576@systemhalted> (raw)
In-Reply-To: <20020606145733.C8107@systemhalted>; from carlos@baldric.uwo.ca on Thu, Jun 06, 2002 at 02:57:33PM -0400

> > It's definitely dangerous to use array indexes outside the bounds
> > of the array, particularly on the PA.  There can be problems with
> > space register selection, although I wouldn't expect this to be a in
> > the linux kernel.  You can avoid index insns with "-mdisable-indexing".
> > Let me know if you see anything strange in the assembler output.
> > 
> > Dave

The following is the output using gcc 3.0.4.

--- unwind-orig.c       Fri Jun  7 11:01:22 2002
+++ unwind.c    Fri Jun  7 09:23:17 2002
@@ -106,7 +106,7 @@
        table->base_addr = base_addr;
        table->gp = gp;
        table->start = base_addr + start[0].region_start;
-       table->end = base_addr + end[-1].region_end;
+       table->end = base_addr + (--end)->region_end;
        table->table = (struct unwind_table_entry *)table_start;
        table->length = end - start;
        table->next = NULL;

--- unwind-orig.s       Fri Jun  7 11:01:33 2002
+++ unwind.s    Fri Jun  7 09:24:55 2002
@@ -7,22 +7,23 @@
        .CALLINFO FRAME=0,NO_CALLS
        .ENTRY
        stw %r24,12(%r26)
-       ldw -52(%r30),%r21
+       ldw -52(%r30),%r22
        stw %r25,4(%r26)
        stw %r23,8(%r26)
-       ldw 0(%r21),%r19
-       ldw -56(%r30),%r22
+       ldw 0(%r22),%r19
+       ldw -56(%r30),%r20
        addl %r24,%r19,%r19
        stw %r19,16(%r26)
-       sub %r22,%r21,%r20
-       ldw -12(%r22),%r19
-       extrs %r20,27,28,%r20
+       ldo -16(%r20),%r20
+       ldw 4(%r20),%r19
+       sub %r20,%r22,%r21
+       extrs %r21,27,28,%r21
        addl %r24,%r19,%r24
-       stw %r20,28(%r26)
        stw %r24,20(%r26)
+       stw %r21,28(%r26)
        stw %r0,0(%r26)
        bv %r0(%r2)
-       stw %r21,24(%r26)
+       stw %r22,24(%r26)
        .EXIT
        .PROCEND
 .Lfe1:

Aside from some register juggling, the only difference is
that we now use 'ldo,ldw,sub,extrs' instead of 'sub,ldw,extrs'.
The question is: Can this do bad things?

I'll have time on Monday to go through it thoroughly.

c.

  parent reply	other threads:[~2002-06-07 15:08 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-06 13:21 [parisc-linux] kdb getting healthier? (PCI guru needed, that's you willy!) Carlos O'Donell Jr.
2002-06-06 14:09 ` Matthew Wilcox
2002-06-06 14:43   ` Carlos O'Donell Jr.
2002-06-06 16:19 ` John David Anglin
2002-06-06 18:57   ` Carlos O'Donell Jr.
2002-06-06 19:35     ` John David Anglin
2002-06-07 15:08     ` Carlos O'Donell Jr. [this message]
2002-06-07 16:42       ` John David Anglin
2002-06-07 16:48         ` Matthew Wilcox
2002-06-07 17:01           ` John David Anglin
2002-06-07 17:06             ` Matthew Wilcox

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=20020607110820.C10576@systemhalted \
    --to=carlos@baldric.uwo.ca \
    --cc=dave@hiauly1.hia.nrc.ca \
    --cc=parisc-linux@lists.parisc-linux.org \
    --cc=tausq@debian.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