OSDN Git Service

2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
[pf3gnuchains/gcc-fork.git] / gcc / expr.h
index a6cb091..b822ea2 100644 (file)
@@ -94,8 +94,8 @@ struct args_size
 
 #define ADD_PARM_SIZE(TO, INC) \
 { tree inc = (INC);                            \
-  if (TREE_CODE (inc) == INTEGER_CST)          \
-    (TO).constant += TREE_INT_CST_LOW (inc);   \
+  if (host_integerp (inc, 0))                  \
+    (TO).constant += tree_low_cst (inc, 0);    \
   else if ((TO).var == 0)                      \
     (TO).var = inc;                            \
   else                                         \
@@ -103,8 +103,8 @@ struct args_size
 
 #define SUB_PARM_SIZE(TO, DEC) \
 { tree dec = (DEC);                            \
-  if (TREE_CODE (dec) == INTEGER_CST)          \
-    (TO).constant -= TREE_INT_CST_LOW (dec);   \
+  if (host_integerp (dec, 0))                  \
+    (TO).constant -= tree_low_cst (dec, 0);    \
   else if ((TO).var == 0)                      \
     (TO).var = size_binop (MINUS_EXPR, ssize_int (0), dec); \
   else                                         \
@@ -793,12 +793,13 @@ extern void emit_0_to_1_insn PARAMS ((rtx));
 
 /* Emit one rtl insn to compare two rtx's.  */
 extern void emit_cmp_insn PARAMS ((rtx, rtx, enum rtx_code, rtx,
-                                  enum machine_mode, int, int));
+                                  enum machine_mode, int, unsigned int));
 
 /* Emit a pair of rtl insns to compare two rtx's and to jump 
    to a label if the comparison is true.  */
 extern void emit_cmp_and_jump_insns PARAMS ((rtx, rtx, enum rtx_code, rtx,
-                                            enum machine_mode, int, int, rtx));
+                                            enum machine_mode, int,
+                                            unsigned int, rtx));
 
 /* The various uses that a comparison can have; used by can_compare_p:
    jumps, conditional moves, store flag operations.  */
@@ -893,7 +894,7 @@ extern rtx emit_store_flag_force PARAMS ((rtx, enum rtx_code, rtx, rtx,
 
 /* Given an insn and condition, return a canonical description of
    the test being made.  */
-extern rtx canonicalize_condition PARAMS ((rtx, rtx, int, rtx *));
+extern rtx canonicalize_condition PARAMS ((rtx, rtx, int, rtx *, rtx));
 
 /* Given a JUMP_INSN, return a canonical description of the test
    being made.  */
@@ -914,7 +915,16 @@ extern rtx expand_builtin_va_arg PARAMS ((tree, tree));
 extern rtx expand_builtin_setjmp PARAMS ((rtx, rtx, rtx, rtx));
 extern void expand_builtin_longjmp PARAMS ((rtx, rtx));
 extern rtx expand_builtin_saveregs PARAMS ((void));
-extern int get_varargs_alias_set PARAMS ((void));
+extern HOST_WIDE_INT get_varargs_alias_set PARAMS ((void));
+extern HOST_WIDE_INT get_frame_alias_set PARAMS ((void));
+extern void record_base_value          PARAMS ((unsigned int, rtx, int));
+extern void record_alias_subset         PARAMS ((HOST_WIDE_INT,
+                                                HOST_WIDE_INT));
+#ifdef TREE_CODE
+extern HOST_WIDE_INT get_alias_set             PARAMS ((tree));
+extern HOST_WIDE_INT lang_get_alias_set                PARAMS ((tree));
+#endif
+extern HOST_WIDE_INT new_alias_set             PARAMS ((void));
 \f
 /* Functions from expr.c:  */
 
@@ -1012,10 +1022,9 @@ extern void emit_push_insn PARAMS ((rtx, enum machine_mode, tree, rtx,
                                    int, rtx));
 
 /* Emit library call.  */
-extern void emit_library_call PARAMS ((rtx orgfun, int no_queue,
-  enum machine_mode outmode, int nargs, ...));
-extern rtx emit_library_call_value PARAMS ((rtx orgfun, rtx value, int no_queue,
-  enum machine_mode outmode, int nargs, ...));
+extern void emit_library_call PARAMS ((rtx, int, enum machine_mode, int, ...));
+extern rtx emit_library_call_value PARAMS ((rtx, rtx, int, enum machine_mode,
+                                           int, ...));
 
 /* Expand an assignment that stores the value of FROM into TO. */
 extern rtx expand_assignment PARAMS ((tree, tree, int, int));
@@ -1099,10 +1108,17 @@ extern rtx prepare_call_address PARAMS ((rtx, tree, rtx *, int));
 
 extern rtx expand_call PARAMS ((tree, rtx, int));
 
-extern rtx expand_shift PARAMS ((enum tree_code, enum machine_mode, rtx, tree, rtx, int));
-extern rtx expand_divmod PARAMS ((int, enum tree_code, enum machine_mode, rtx, rtx, rtx, int));
-extern void locate_and_pad_parm PARAMS ((enum machine_mode, tree, int, tree, struct args_size *, struct args_size *, struct args_size *, struct args_size *));
+extern rtx expand_shift PARAMS ((enum tree_code, enum machine_mode, rtx, tree,
+                                rtx, int));
+extern rtx expand_divmod PARAMS ((int, enum tree_code, enum machine_mode, rtx,
+                                 rtx, rtx, int));
+extern void locate_and_pad_parm PARAMS ((enum machine_mode, tree, int, tree,
+                                        struct args_size *,
+                                        struct args_size *,
+                                        struct args_size *,
+                                        struct args_size *));
 extern rtx expand_inline_function PARAMS ((tree, tree, rtx, int, tree, rtx));
+
 /* Return the CODE_LABEL rtx for a LABEL_DECL, creating it if necessary.  */
 extern rtx label_rtx PARAMS ((tree));
 #endif
@@ -1131,9 +1147,20 @@ extern rtx change_address PARAMS ((rtx, enum machine_mode, rtx));
 
 /* Return a memory reference like MEMREF, but which is known to have a
    valid address.  */
-
 extern rtx validize_mem PARAMS ((rtx));
 
+#ifdef TREE_CODE
+/* Given REF, either a MEM or a REG, and T, either the type of X or
+   the expression corresponding to REF, set RTX_UNCHANGING_P if
+   appropriate.  */
+extern void maybe_set_unchanging PARAMS ((rtx, tree));
+
+/* Given REF, a MEM, and T, either the type of X or the expression
+   corresponding to REF, set the memory attributes.  OBJECTP is nonzero
+   if we are making a new object of this type.  */
+extern void set_mem_attributes PARAMS ((rtx, tree, int));
+#endif
+
 /* Assemble the static constant template for function entry trampolines.  */
 extern rtx assemble_trampoline_template PARAMS ((void));