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: 27 Aug 2004 16:24:14 -0000

------- Additional Comments From nickc at redhat dot com  2004-08-27 16:24 
-------
Subject: Re:  gas cannot assemble pdtlb,l instruction

Hi Randolph,

> foo:
>         pdtlb,l   0(%r28)

I do not believe that this instruction is valid.  The "x" field of the 
instruction needs to be a register name.

According to the "PA-RISC 2.0 Architecture" document, chapter 7, page 
7-106 the format for the instruction is:

    PDTLB,scope,cmplt x(s,b)

And the operation is defined as:

               if (priv != 0)
                    privileged_operation_trap;
               else {
                    space  space_select(s,GR[b],INDEXED);
                    switch (cmplt) {
                         case M: offset  GR[b];
                                   GR[b]  GR[b] + GR[x];
                                   break;
                         default: offset  GR[b] + GR[x];
                                   break;
                    }
                    page_size  4096 << (2 * GR[b]{60..63});
                    for (i  0; i < page_size/4096; i++) {
                         if (entry  DTLB_search(space, offset + i*4096))
                              DTLB_purge_local(entry);
                    }
                    if (scope != L)
                         DTLB_purge_broadcast(space,offset,page_size);
               }

Note how GR[x] is used regardless of the value of "cmplt".

The tests in the GAS testsuite also make this clear.  The following 
instructions are all valid:

        pdtlb     %r4(%sr0,%r5)
        pdtlb,m   %r4(%sr0,%r5)
        pdtlb,l   %r4(%sr0,%r5)
        pdtlb,l,m %r4(%sr0,%r5)
        pitlb,l   %r4(%sr4,%r5)
        pitlb,l,m %r4(%sr4,%r5)

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]