Either cpp or the assembler is at fault in this problem.

Using gcc on the following code causes the assembler to issue
the error "too many positional arguments"

# Load immediate word, has to be done with 2 instructions 
    .macro lwi reg,val 
    lis \reg,[EMAIL PROTECTED] 
    ori \reg,\reg,[EMAIL PROTECTED] 
    .endm 
#define SOME_ADDR 0x80000000
#define SOME_OFFSET 0x0068
    lwi r25,(SOME_ADDR+SOME_OFFSET) 

Using the gcc -E option reveals:

    lwi 25,(0x80000000 +0x0068) 

Hard coding the lwi statement as follows so that cpp does not 
touch it fixes the problem:

    lwi 25,(0x80000000+0x0068)

This occured with binutils 2.15 and 2.16.1

-- 
           Summary: Assembler error: too many positional arguments
           Product: binutils
           Version: 2.16
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gas
        AssignedTo: unassigned at sources dot redhat dot com
        ReportedBy: earl dot olsen at dilithiumnetworks dot com
                CC: bug-binutils at gnu dot org
  GCC host triplet: i686-host_pc-linux-gnu
GCC target triplet: powerpc-linux


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

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


_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to