Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/mn10300/predicates.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 ;; Predicate definitions for Matsushita MN10300. | 1 ;; Predicate definitions for Matsushita MN10300. |
2 ;; Copyright (C) 2005, 2007 Free Software Foundation, Inc. | 2 ;; Copyright (C) 2005, 2007, 2010 Free Software Foundation, Inc. |
3 ;; | 3 ;; |
4 ;; This file is part of GCC. | 4 ;; This file is part of GCC. |
5 ;; | 5 ;; |
6 ;; GCC is free software; you can redistribute it and/or modify | 6 ;; GCC is free software; you can redistribute it and/or modify |
7 ;; it under the terms of the GNU General Public License as published by | 7 ;; it under the terms of the GNU General Public License as published by |
23 (match_code "const_int,const_double") | 23 (match_code "const_int,const_double") |
24 { | 24 { |
25 return (op == CONST1_RTX (SFmode)); | 25 return (op == CONST1_RTX (SFmode)); |
26 }) | 26 }) |
27 | 27 |
28 ;; Return 1 if X is a CONST_INT that is only 8 bits wide. This is | |
29 ;; used for the btst insn which may examine memory or a register (the | |
30 ;; memory variant only allows an unsigned 8-bit integer). | |
31 | |
32 (define_predicate "const_8bit_operand" | |
33 (match_code "const_int") | |
34 { | |
35 return (GET_CODE (op) == CONST_INT | |
36 && INTVAL (op) >= 0 | |
37 && INTVAL (op) < 256); | |
38 }) | |
39 | |
40 ;; Return true if OP is a valid call operand. | 28 ;; Return true if OP is a valid call operand. |
41 | 29 |
42 (define_predicate "call_address_operand" | 30 (define_predicate "call_address_operand" |
43 (match_code "symbol_ref,reg,unspec") | 31 (match_code "symbol_ref,reg,unspec") |
44 { | 32 { |
45 if (flag_pic) | 33 if (flag_pic) |
46 return (satisfies_constraint_S (op) || GET_CODE (op) == REG); | 34 return (satisfies_constraint_S (op) || GET_CODE (op) == REG); |
47 | 35 |
48 return (GET_CODE (op) == SYMBOL_REF || GET_CODE (op) == REG); | 36 return (GET_CODE (op) == SYMBOL_REF || GET_CODE (op) == REG); |
49 }) | 37 }) |
38 | |
39 (define_predicate "impossible_plus_operand" | |
40 (match_code "plus") | |
41 { | |
42 return XEXP (op, 0) == stack_pointer_rtx | |
43 || XEXP (op, 1) == stack_pointer_rtx; | |
44 }) | |
45 | |
46 (define_predicate "reg_or_am33_const_operand" | |
47 (ior (match_operand 0 "register_operand") | |
48 (and (match_test "TARGET_AM33") | |
49 (match_operand 0 "immediate_operand")))) | |
50 | |
51 (define_predicate "label_ref_operand" | |
52 (match_code "label_ref")) | |
53 | |
54 (define_special_predicate "int_mode_flags" | |
55 (match_code "reg") | |
56 { | |
57 if (REGNO (op) != CC_REG) | |
58 return false; | |
59 if (GET_MODE (op) == CC_FLOATmode) | |
60 return false; | |
61 return GET_MODE_CLASS (GET_MODE (op)) == MODE_CC; | |
62 }) | |
63 | |
64 (define_predicate "CCZN_comparison_operator" | |
65 (match_code "eq,ne,lt,ge")) | |
66 | |
67 (define_predicate "liw_operand" | |
68 (ior (match_operand 0 "register_operand") | |
69 (match_test "satisfies_constraint_O (op)"))) |