bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/336] gas cannot assemble pdtlb,l instruction


From: nickc at redhat dot com
Subject: [Bug gas/336] gas cannot assemble pdtlb,l instruction
Date: 31 Aug 2004 12:02:13 -0000

------- Additional Comments From nickc at redhat dot com  2004-08-31 12:02 
-------
Subject: Re:  gas cannot assemble pdtlb,l instruction

Hi Randolph,

> so, apparently, gas thinks that:
> 
> pdtlb   0(%r29)     -> valid for .level 1.1 or .level 2.0
> pdtlb   %r0(%r29)   -> ditto
> pdtlb,l 0(%r29)     -> invalid always
> pdtlb,l %r0(%r29)   -> valid iff .level 2.0
> 
> i can't say that this is strictly wrong, just seems inconsistent :)

I agree.  This behaviour is explicitly coded into the sources.  if you 
have a look at the header file include/opcodes/hppa.h and search for the 
pdtlb instruction you will find four entries:

  { "pdtlb", 0x04001600, 0xfc003fdf, "cLcZx(s,b)", pa20, FLAG_STRICT},
  { "pdtlb", 0x04001600, 0xfc003fdf, "cLcZx(b)", pa20, FLAG_STRICT},
  { "pdtlb", 0x04001200, 0xfc003fdf, "cZx(s,b)", pa10, 0},
  { "pdtlb", 0x04001200, 0xfc003fdf, "cZx(b)", pa10, 0},

It is the presence of FLAG_STRICT which is forcing the assembler to 
require an explicit register name for the "x" field.  My assumption is 
that this is because the HPPA 2.0 ISA specification tightened up the 
syntax for the pdtlb instruction, ruling out register name 
abbreviations.  Presumably the "0" abbreviation is still supported for 
level 1.1 since that might be used in already existing code.  I cannot 
be definitive about this since I did not write the code and I am not an 
expert on the HPPA ISA.

Cheers
   Nick


-- 


http://sources.redhat.com/bugzilla/show_bug.cgi?id=336

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]