All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Zick" <mszick@goquest.com>
To: parisc-linux@lists.parisc-linux.org
Cc: List Parisc <parisc-linux@parisc-linux.org>
Subject: Re: [parisc-linux] Should I read SHR[DW] as SHRP[DW] in parisc2.pdf?
Date: Fri, 13 Aug 2004 17:54:29 -0500	[thread overview]
Message-ID: <200408131754.29746.mszick@goquest.com> (raw)
In-Reply-To: <40FB9ACA0000BB69@ocpmta1.freegates.net>

On Wed August 11 2004 12:35, Joel Soete wrote:
> Hi all,
> 
> About parisc 2.0 insn set at pages 7-49 and 7-51 I read SHRD,S,cond ...
> and SHRW,S,cond ... but I don't find this mnemonic elsewhere in this book;
> should I better read SHRPD and SHRPW respectively (mnemonic well defined)?
> 
Write as 'shd' either parisc-1.x or parisc-2.x for 32-bit operations.
I cut & pasted an example into a test source file, compiled (32 & 64),
objdump'd the *.o, then with the help of a hex-editor and
my Captain Midnight Decoder ring on the results:
	__asm__(
	"	ldi		0,%1\n"

/* compile & objdump the *.o; both 32-bit and 64-bit */
	"	shd		%%r0,%0,16,%2\n"	
	"	extru,=	%2,15,16,%%r0\n"	

/* Yields (see parisc2.0.pdf, appendix 'C'):
32-bit:
major op-code: 34, op-code extension: 011 (3)
  5c:   d2 80 09 f4     shrpw r0,r20,16,r20

major op-code: 34, op-code extension: 111 (7)
  60:   d2 80 39 f0     extrw,u,= r20,15,16,r0

Also on 64-bit, the identical bit pattern:
  80:   d2 80 09 f4     shrpw r0,r20,16,r20
  84:   d2 80 39 f0     extrw,u,= r20,15,16,r0

Then checking chapter 7 on 'shrpw' it very clearly
states that this instruction effects only the right
half of the registers. (no mention of left half)

Then checking chapter 7 on 'extrw' and it states
that the coded bit-position-number is internally
incremented by 32 so that it actually refers to (in
this example) pos=15+32, len=16.
(Claims left half is 'undefined')

Which means that 'int fls(int x)' as written would 
get its bit-position-numbers translated internally.
(and my earlier posting about it scanning the high
32 bits was wrong).

I still haven't figured out how the author gets that
the last bit to test is #0 rather than #31 - but then
that might be a typo in the code or another thinko
in my reasoning.
*/

Mike
_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux

  parent reply	other threads:[~2004-08-13 22:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-11 17:35 [parisc-linux] Should I read SHR[DW] as SHRP[DW] in parisc2.pdf? Joel Soete
2004-08-12 17:41 ` Jim Hull
2004-08-12 19:33   ` Michael S. Zick
2004-08-13 15:20     ` [parisc-linux] Should I read SHR[DW] as SHRP[DW] in parisc2.p John David Anglin
2004-08-13 17:50       ` Michael S. Zick
2004-08-13 22:54 ` Michael S. Zick [this message]
2004-08-14  0:27   ` John David Anglin
2004-08-14  0:53     ` Michael S. Zick

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=200408131754.29746.mszick@goquest.com \
    --to=mszick@goquest.com \
    --cc=parisc-linux@lists.parisc-linux.org \
    --cc=parisc-linux@parisc-linux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.