+2006-12-07 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (print_operand): New modifier 'N' for constants.
+ * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
+ lshifthi3): Use it, and fix the order of alternatives.
+
2006-12-07 Nick Clifton <nickc@redhat.com>
* common.opt (record-gcc-switches): New command line switch.
x = GEN_INT ((INTVAL (x) >> 16) & 0xffff);
else if (code == 'h')
x = GEN_INT (INTVAL (x) & 0xffff);
+ else if (code == 'N')
+ x = GEN_INT (-INTVAL (x));
else if (code == 'X')
x = GEN_INT (exact_log2 (0xffffffff & INTVAL (x)));
else if (code == 'Y')
""
"@
%0 = ASHIFT %1 BY %2 (V, S)%!
- %0 = %1 >>> %2 (V,S)%!
- %0 = %1 << %2 (V,S)%!"
+ %0 = %1 << %2 (V,S)%!
+ %0 = %1 >>> %N2 (V,S)%!"
[(set_attr "type" "dsp32")])
(define_insn "ssashifthi3"
""
"@
%0 = ASHIFT %1 BY %2 (V, S)%!
- %0 = %1 >>> %2 (V,S)%!
- %0 = %1 << %2 (V,S)%!"
+ %0 = %1 << %2 (V,S)%!
+ %0 = %1 >>> %N2 (V,S)%!"
[(set_attr "type" "dsp32")])
(define_insn "lshiftv2hi3"
""
"@
%0 = LSHIFT %1 BY %2 (V)%!
- %0 = %1 >> %2 (V)%!
- %0 = %1 << %2 (V)%!"
+ %0 = %1 << %2 (V)%!
+ %0 = %1 >> %N2 (V)%!"
[(set_attr "type" "dsp32")])
(define_insn "lshifthi3"
""
"@
%0 = LSHIFT %1 BY %2 (V)%!
- %0 = %1 >> %2 (V)%!
- %0 = %1 << %2 (V)%!"
+ %0 = %1 << %2 (V)%!
+ %0 = %1 >> %N2 (V)%!"
[(set_attr "type" "dsp32")])