OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [config/] [mn10300/] [predicates.md] - Blame information for rev 709

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 709 jeremybenn
;; Predicate definitions for Matsushita MN10300.
2
;; Copyright (C) 2005, 2007, 2010 Free Software Foundation, Inc.
3
;;
4
;; This file is part of GCC.
5
;;
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
8
;; the Free Software Foundation; either version 3, or (at your option)
9
;; any later version.
10
;;
11
;; GCC is distributed in the hope that it will be useful,
12
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
;; GNU General Public License for more details.
15
;;
16
;; You should have received a copy of the GNU General Public License
17
;; along with GCC; see the file COPYING3.  If not see
18
;; .
19
 
20
;; Return true if the operand is the 1.0f constant.
21
 
22
(define_predicate "const_1f_operand"
23
  (match_code "const_int,const_double")
24
{
25
  return (op == CONST1_RTX (SFmode));
26
})
27
 
28
;; Return true if OP is a valid call operand.
29
 
30
(define_predicate "call_address_operand"
31
  (match_code "symbol_ref,reg,unspec")
32
{
33
  if (flag_pic)
34
    return (satisfies_constraint_S (op) || GET_CODE (op) == REG);
35
 
36
  return (GET_CODE (op) == SYMBOL_REF || GET_CODE (op) == REG);
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)")))

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.