aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@synopsys.com>2019-04-16 12:20:40 +0200
committerClaudiu Zissulescu <claziss@gcc.gnu.org>2019-04-16 12:20:40 +0200
commit1ec86e1eaa90fb5cbce6a658ebd797f73b4cab6d (patch)
treeb628d53ee95b6c7f6630155a8974c13e8a192393 /gcc/tree.c
parent85b242968bf34b60ff7ef0fcb8ac94eacfa762a0 (diff)
downloadgcc-1ec86e1eaa90fb5cbce6a658ebd797f73b4cab6d.zip
gcc-1ec86e1eaa90fb5cbce6a658ebd797f73b4cab6d.tar.gz
gcc-1ec86e1eaa90fb5cbce6a658ebd797f73b4cab6d.tar.bz2
[ARC] Emit blockage regardless to avoid delay slot scheduling.
1.The delay slot scheduler can reschedule some of the frame related instructions resulting in having incorect CFI information. This patch introduces a schedule blockage to avoid this problem. 2.There are cases when an interrupt may happen and not all the current function stack operations are done, which may result in stack corruption. Such an example is accessing an returning a local structure members, which members are allocated on stack. The stack adjustment and the accessing of the struct member can be reorder as they may not use both the SP register for the access. 3.Also, do not save/restore SP when in interrupt. The SP is switch by the core IRQ machinery. gcc/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless to avoid delay slot scheduling. (arc_must_save_register): Don't save SP. * config/arc/arc.md (stack_tie): Remove. (UNSPEC_ARC_STKTIE): Likewise. From-SVN: r270384
Diffstat (limited to 'gcc/tree.c')
0 files changed, 0 insertions, 0 deletions