[PATCH] gas: blackfin: gas: blackfin: reject invalid BYTEUNPACK insns
Mike Frysinger
vapier@gentoo.org
Tue Mar 29 05:54:00 GMT 2011
More information about the Binutils mailing list
Tue Mar 29 05:54:00 GMT 2011
- Previous message (by thread): [PATCH] gas: blackfin: gas: blackfin: reject invalid BYTEOP16M insns
- Next message (by thread): Generated source
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
The destination registers must be different with BYTEUNPACK insns, otherwise the hardware throws up an exception. So reject them. Committed. Signed-off-by: Mike Frysinger <vapier@gentoo.org> gas/: 2011-03-29 Mike Frysinger <vapier@gentoo.org> * config/bfin-parse.y (BYTEUNPACK): Return yyerror when dest reg $2 is the same as dest reg $4. gas/testsuite/: 2011-03-29 Mike Frysinger <vapier@gentoo.org> * gas/bfin/expected_errors.s: Add invalid BYTEUNPACK insn tests. * gas/bfin/expected_errors.l: Add new error messages. --- gas/config/bfin-parse.y | 2 ++ gas/testsuite/gas/bfin/expected_errors.l | 1 + gas/testsuite/gas/bfin/expected_errors.s | 1 + 3 files changed, 4 insertions(+), 0 deletions(-) diff --git a/gas/config/bfin-parse.y b/gas/config/bfin-parse.y index 7961e2e..797664a 100644 --- a/gas/config/bfin-parse.y +++ b/gas/config/bfin-parse.y @@ -866,6 +866,8 @@ asm_1: { if (!IS_DREG ($2) || !IS_DREG ($4)) return yyerror ("Dregs expected"); + else if (REG_SAME ($2, $4)) + return yyerror ("Illegal dest register combination"); else if (!valid_dreg_pair (&$8, $10)) return yyerror ("Bad dreg pair"); else diff --git a/gas/testsuite/gas/bfin/expected_errors.l b/gas/testsuite/gas/bfin/expected_errors.l index 1c12e65..40a9043 100644 --- a/gas/testsuite/gas/bfin/expected_errors.l +++ b/gas/testsuite/gas/bfin/expected_errors.l @@ -105,3 +105,4 @@ .*:134: Error: Illegal dest register combination. .*:135: Error: Illegal dest register combination. .*:136: Error: Illegal dest register combination. +.*:137: Error: Illegal dest register combination. diff --git a/gas/testsuite/gas/bfin/expected_errors.s b/gas/testsuite/gas/bfin/expected_errors.s index a671a2c..6ff14a6 100644 --- a/gas/testsuite/gas/bfin/expected_errors.s +++ b/gas/testsuite/gas/bfin/expected_errors.s @@ -134,3 +134,4 @@ (R7, R7) = BYTEOP16P (R1:0, R3:2); (R1, R1) = BYTEOP16M (R1:0, R3:2); (R4, R4) = BYTEOP16M (R1:0, R3:2); + (R5, R5) = BYTEUNPACK R3:2; -- 1.7.4.1
- Previous message (by thread): [PATCH] gas: blackfin: gas: blackfin: reject invalid BYTEOP16M insns
- Next message (by thread): Generated source
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list