Hi, Functions cmse_nonsecure_call_clear_caller_saved () and cmse_nonsecure_entry_clear_before_return () use a separate variable holding a pointer to padding_bits_to_clear array's first entry which is used when calling function compute_not_to_clear_mask (). This does not save space over using &padding_bits_to_clear[0] directly so this commit gets rid of it.
ChangeLog entry is as follows: *** gcc/ChangeLog *** 2017-11-08 Thomas Preud'homme <thomas.preudho...@arm.com> * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of padding_bits_to_clear_ptr. (cmse_nonsecure_entry_clear_before_return): Likewise. Testing: Bootstrapped an arm-none-linux-gnueabihf compiler and regression test does not show any regression. Committed as obvious. Best regards, Thomas
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 7384b96fea0179334a6010b099df68c8e2a0fc32..bcb708c1b316ea08969e118fb0949b941ff19c27 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -17002,7 +17002,6 @@ cmse_nonsecure_call_clear_caller_saved (void) bool using_r4, first_param = true; function_args_iterator args_iter; uint32_t padding_bits_to_clear[4] = {0U, 0U, 0U, 0U}; - uint32_t * padding_bits_to_clear_ptr = &padding_bits_to_clear[0]; if (!NONDEBUG_INSN_P (insn)) continue; @@ -17086,7 +17085,7 @@ cmse_nonsecure_call_clear_caller_saved (void) to_clear_args_mask = compute_not_to_clear_mask (arg_type, arg_rtx, REGNO (arg_rtx), - padding_bits_to_clear_ptr); + &padding_bits_to_clear[0]); if (to_clear_args_mask) { for (regno = R0_REGNUM; regno <= maxregno; regno++) @@ -25134,7 +25133,6 @@ cmse_nonsecure_entry_clear_before_return (void) { int regno, maxregno = TARGET_HARD_FLOAT ? LAST_VFP_REGNUM : IP_REGNUM; uint32_t padding_bits_to_clear = 0; - uint32_t * padding_bits_to_clear_ptr = &padding_bits_to_clear; auto_sbitmap to_clear_bitmap (maxregno + 1); tree result_type; rtx result_rtl; @@ -25187,7 +25185,7 @@ cmse_nonsecure_entry_clear_before_return (void) gcc_assert (REG_P (result_rtl)); to_clear_return_mask = compute_not_to_clear_mask (result_type, result_rtl, 0, - padding_bits_to_clear_ptr); + &padding_bits_to_clear); if (to_clear_return_mask) { gcc_assert ((unsigned) maxregno < sizeof (long long) * __CHAR_BIT__);