diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2003-06-14 17:11:57 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2003-06-14 17:11:57 +0000 |
commit | 2fbe6bc2ba00c56ea66269ba842278764bd89c8e (patch) | |
tree | 5a5cf91052b1e5ff3956a086b21a786d293ce969 /gcc | |
parent | 75d2580c0cc46323711df161593281bceb50a99d (diff) | |
download | gcc-2fbe6bc2ba00c56ea66269ba842278764bd89c8e.zip gcc-2fbe6bc2ba00c56ea66269ba842278764bd89c8e.tar.gz gcc-2fbe6bc2ba00c56ea66269ba842278764bd89c8e.tar.bz2 |
re PR target/3724 ([ARM]Illegal instruction when profiling optimized code on arm-linux)
PR target/3724
* arm/linux-elf.h (PROFILE_HOOK): Define.
From-SVN: r67950
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/linux-elf.h | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4713756..480e734 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2003-06-14 Richard Earnshaw <rearnsha@arm.com> + PR target/3724 + * arm/linux-elf.h (PROFILE_HOOK): Define. + +2003-06-14 Richard Earnshaw <rearnsha@arm.com> + PR target/11183 * arm.h (CANNOT_CHANGE_MODE_CLASS): Define. diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h index 5da2b24..1a86e45 100644 --- a/gcc/config/arm/linux-elf.h +++ b/gcc/config/arm/linux-elf.h @@ -120,5 +120,10 @@ fprintf (STREAM, "\tbl\tmcount%s\n", NEED_PLT_RELOC ? "(PLT)" : ""); \ } +/* The linux profiler clobbers the link register. Make sure the + prologue knows to save it. */ +#define PROFILE_HOOK(X) \ + emit_insn (gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, LR_REGNUM))) + #undef CC1_SPEC #define CC1_SPEC "%{profile:-p}" |