[PATCH ARM] Fix PR60264 (ICE in dwarf2out_frame_debug_adjust_cfa)

Christian Bruel christian.bruel@st.com
Tue Feb 18 15:33:00 GMT 2014


Hello,

Considering the attached trivial case with the epilogue:

 sub     sp, fp, #12        
 ldmia   sp, {fp, sp, lr}        frame_related_p
 
the sub instruction should also be frame_related_fp. (a gcc_assert
triggers in dwarf2out_frame_debug_adjust_cfa)

This patch sets RTX_FRAME_RELATED_P on stack restore instructions for
the -mapcs ABI.

A second problem arise with -mfloat-abi=hard, hidden by the above. a vrp
poping instruction in the epilogue (see tescase from the PR)  sets the
cfa register to IP, although the following instruction updates FP

 fldmfdd ip!, {d8}            frame_related_p
 sub     sp, fp, #12           frame_related_p
 ldmia   sp, {fp, sp, lr}    frame_related_p

This patch adds a  REG_CFA_DEF_CFA note so the sub instruction gets the
FP as expected.

Regression tested for  for armv7-a
--target_board=arm-sim/\{,-mapcs-frame\}. Fixes a large number of
compilation errors in the testsuite.

OK for trunk ?

Many Thanks








More information about the Gcc-patches mailing list