arm: Convert thumb1 prologue to rtl.
authorRichard Henderson <rth@gcc.gnu.org>
Tue, 28 Jun 2011 22:25:52 +0000 (15:25 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 28 Jun 2011 22:25:52 +0000 (15:25 -0700)
commitd018b46e328163477ca334b844bb7ea9f99c42f7
treeb1586d5c102be17c270f77a234a8541ca6a5fc98
parent97269a2340c812667bc083a1927f646d76d90b37
arm: Convert thumb1 prologue to rtl.

* config/arm/arm.c (arm_output_function_prologue): Don't call
thumb1_output_function_prologue.
(arm_expand_prologue): Avoid dead store.
(number_of_first_bit_set): Use ctz_hwi.
(thumb1_emit_multi_reg_push): New.
(thumb1_expand_prologue): Merge thumb1_output_function_prologue
to emit the entire prologue as rtl.
(thumb1_output_interwork): Split out from
thumb1_output_function_prologue.
(thumb1_output_function_prologue): Remove.
(arm_attr_length_push_multi): Handle thumb1.
* config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
(prologue_thumb1_interwork): New.
(*push_multi): Allow thumb1; use push_mult_memory_operand.
* config/arm/predicates.md (push_mult_memory_operand): New.

From-SVN: r175605
gcc/ChangeLog
gcc/config/arm/arm-protos.h
gcc/config/arm/arm.c
gcc/config/arm/arm.md
gcc/config/arm/predicates.md