http://sourceware.org/bugzilla/show_bug.cgi?id=15082

             Bug #: 15082
           Summary: tic6x - incorrect decoding of MPYDP instruction with
                    xpath bit set
           Product: binutils
           Version: 2.23
            Status: NEW
          Severity: normal
          Priority: P2
         Component: binutils
        AssignedTo: unassig...@sourceware.org
        ReportedBy: alexis.derue...@gmail.com
    Classification: Unclassified


Created attachment 6835
  --> http://sourceware.org/bugzilla/attachment.cgi?id=6835
Patch that fixes mpydp decoding with x-path bit set

MPYDP instruction opcode doesn't seem to have any restriction on the value of
the x bit the opcode and it should be valid for the instruction to be able to
use the cross-path (see SPRUFE8B.pdf p.318).

Hence instruction of the form 

    mpydp .M2X b1:b0,a1:a0,b1:b0

should also be valid but current implementation forbids the use of cross path
for the src2 operand.

Proposed patch :

 - modify gas test-case for mpydp instruction to accept it as a valid
instruction
 - rename mpydp's specific operand type from ORREGD1324 to ORXREGD1324
 - and use tic6x_operand_xregpair for ORXREGD1324 operand type so that operand
register can use cross-path.
 - remove the FIX 'x' (x-path) opcode field in FIXed fields list
 - remove the TIC6X_FLAG_NO_CROSS

This has been verified by looking at disassembled working code, didn't
cross-checked with Ti SDK though...

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

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

Reply via email to