IA MCU psABI support: changes to libraries
[gcc.git] / gcc / explow.c
index 39b63ed7e39cf99092b0801c6e9f1b25914a5fa3..adc17a31a3a9d2f0ca50abb56b95b388123f868e 100644 (file)
@@ -24,16 +24,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "diagnostic-core.h"
 #include "rtl.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "vec.h"
-#include "double-int.h"
-#include "input.h"
 #include "alias.h"
 #include "symtab.h"
-#include "wide-int.h"
-#include "inchash.h"
-#include "real.h"
 #include "tree.h"
 #include "stor-layout.h"
 #include "tm_p.h"
@@ -41,9 +33,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "hard-reg-set.h"
 #include "function.h"
-#include "hashtab.h"
-#include "statistics.h"
-#include "fixed-value.h"
 #include "insn-config.h"
 #include "expmed.h"
 #include "dojump.h"
@@ -56,7 +45,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
-#include "ggc.h"
 #include "recog.h"
 #include "langhooks.h"
 #include "target.h"
@@ -132,7 +120,9 @@ plus_constant (machine_mode mode, rtx x, HOST_WIDE_INT c,
        {
          tem = plus_constant (mode, get_pool_constant (XEXP (x, 0)), c);
          tem = force_const_mem (GET_MODE (x), tem);
-         if (memory_address_p (GET_MODE (tem), XEXP (tem, 0)))
+         /* Targets may disallow some constants in the constant pool, thus
+            force_const_mem may return NULL_RTX.  */
+         if (tem && memory_address_p (GET_MODE (tem), XEXP (tem, 0)))
            return tem;
        }
       break;
@@ -866,10 +856,9 @@ adjust_stack_1 (rtx adjust, bool anti_p)
   rtx temp;
   rtx_insn *insn;
 
-#if !STACK_GROWS_DOWNWARD
   /* Hereafter anti_p means subtract_p.  */
-  anti_p = !anti_p;
-#endif
+  if (!STACK_GROWS_DOWNWARD)
+    anti_p = !anti_p;
 
   temp = expand_binop (Pmode,
                       anti_p ? sub_optab : add_optab,
@@ -1414,24 +1403,23 @@ allocate_dynamic_stack_space (rtx size, unsigned size_align,
     {
       int saved_stack_pointer_delta;
 
-#if !STACK_GROWS_DOWNWARD
-      emit_move_insn (target, virtual_stack_dynamic_rtx);
-#endif
+      if (!STACK_GROWS_DOWNWARD)
+       emit_move_insn (target, virtual_stack_dynamic_rtx);
 
       /* Check stack bounds if necessary.  */
       if (crtl->limit_stack)
        {
          rtx available;
          rtx_code_label *space_available = gen_label_rtx ();
-#if STACK_GROWS_DOWNWARD
-         available = expand_binop (Pmode, sub_optab,
-                                   stack_pointer_rtx, stack_limit_rtx,
-                                   NULL_RTX, 1, OPTAB_WIDEN);
-#else
-         available = expand_binop (Pmode, sub_optab,
-                                   stack_limit_rtx, stack_pointer_rtx,
-                                   NULL_RTX, 1, OPTAB_WIDEN);
-#endif
+         if (STACK_GROWS_DOWNWARD)
+           available = expand_binop (Pmode, sub_optab,
+                                     stack_pointer_rtx, stack_limit_rtx,
+                                     NULL_RTX, 1, OPTAB_WIDEN);
+         else
+           available = expand_binop (Pmode, sub_optab,
+                                     stack_limit_rtx, stack_pointer_rtx,
+                                     NULL_RTX, 1, OPTAB_WIDEN);
+
          emit_cmp_and_jump_insns (available, size, GEU, NULL_RTX, Pmode, 1,
                                   space_available);
 #ifdef HAVE_trap
@@ -1456,9 +1444,8 @@ allocate_dynamic_stack_space (rtx size, unsigned size_align,
         crtl->preferred_stack_boundary alignment.  */
       stack_pointer_delta = saved_stack_pointer_delta;
 
-#if STACK_GROWS_DOWNWARD
-      emit_move_insn (target, virtual_stack_dynamic_rtx);
-#endif
+      if (STACK_GROWS_DOWNWARD)
+       emit_move_insn (target, virtual_stack_dynamic_rtx);
     }
 
   suppress_reg_args_size = false;