Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/arm/iwmmxt.md @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | a06113de4d67 |
children | 04ced10e8804 |
comparison
equal
deleted
inserted
replaced
65:65488c3d617d | 67:f6334be47118 |
---|---|
1 ;; ??? This file needs auditing for thumb2 | 1 ;; ??? This file needs auditing for thumb2 |
2 ;; Patterns for the Intel Wireless MMX technology architecture. | 2 ;; Patterns for the Intel Wireless MMX technology architecture. |
3 ;; Copyright (C) 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. | 3 ;; Copyright (C) 2003, 2004, 2005, 2007, 2008, 2010 |
4 ;; Free Software Foundation, Inc. | |
4 ;; Contributed by Red Hat. | 5 ;; Contributed by Red Hat. |
5 | 6 |
6 ;; This file is part of GCC. | 7 ;; This file is part of GCC. |
7 | 8 |
8 ;; GCC is free software; you can redistribute it and/or modify it under | 9 ;; GCC is free software; you can redistribute it and/or modify it under |
17 | 18 |
18 ;; You should have received a copy of the GNU General Public License | 19 ;; You should have received a copy of the GNU General Public License |
19 ;; along with GCC; see the file COPYING3. If not see | 20 ;; along with GCC; see the file COPYING3. If not see |
20 ;; <http://www.gnu.org/licenses/>. | 21 ;; <http://www.gnu.org/licenses/>. |
21 | 22 |
22 ;; Integer element sizes implemented by IWMMXT. | |
23 (define_mode_iterator VMMX [V2SI V4HI V8QI]) | |
24 | |
25 ;; Integer element sizes for shifts. | |
26 (define_mode_iterator VSHFT [V4HI V2SI DI]) | |
27 | |
28 ;; Determine element size suffix from vector mode. | |
29 (define_mode_attr MMX_char [(V8QI "b") (V4HI "h") (V2SI "w") (DI "d")]) | |
30 | 23 |
31 (define_insn "iwmmxt_iordi3" | 24 (define_insn "iwmmxt_iordi3" |
32 [(set (match_operand:DI 0 "register_operand" "=y,?&r,?&r") | 25 [(set (match_operand:DI 0 "register_operand" "=y,?&r,?&r") |
33 (ior:DI (match_operand:DI 1 "register_operand" "%y,0,r") | 26 (ior:DI (match_operand:DI 1 "register_operand" "%y,0,r") |
34 (match_operand:DI 2 "register_operand" "y,r,r")))] | 27 (match_operand:DI 2 "register_operand" "y,r,r")))] |
556 | 549 |
557 ;; Mask-generating comparisons | 550 ;; Mask-generating comparisons |
558 ;; | 551 ;; |
559 ;; Note - you cannot use patterns like these here: | 552 ;; Note - you cannot use patterns like these here: |
560 ;; | 553 ;; |
561 ;; (set:<vector> (match:<vector>) (<comparator>:<vector> (match:<vector>) (match:<vector>))) | 554 ;; (set (match:<vector>) (<comparator>:<vector> (match:<vector>) (match:<vector>))) |
562 ;; | 555 ;; |
563 ;; Because GCC will assume that the truth value (1 or 0) is installed | 556 ;; Because GCC will assume that the truth value (1 or 0) is installed |
564 ;; into the entire destination vector, (with the '1' going into the least | 557 ;; into the entire destination vector, (with the '1' going into the least |
565 ;; significant element of the vector). This is not how these instructions | 558 ;; significant element of the vector). This is not how these instructions |
566 ;; behave. | 559 ;; behave. |