From a7e8c6529f38a95a89c7b3a19a309401ffa7b6d4 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Wed, 8 Oct 2008 13:38:15 +0000 Subject: [PATCH] bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI compatible profiler (__gnu_mcount_nc). 2008-10-08 Paul Brook gcc/ * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI compatible profiler (__gnu_mcount_nc). (SUBTARGET_FRAME_POINTER_REQUIRED): Define. From-SVN: r140974 --- gcc/ChangeLog | 6 ++++++ gcc/config/arm/bpabi.h | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9fc2a98f50a..f3ce56fa570 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-10-08 Paul Brook + + * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI + compatible profiler (__gnu_mcount_nc). + (SUBTARGET_FRAME_POINTER_REQUIRED): Define. + 2008-10-08 H.J. Lu * config/i386/i386.c (initial_ix86_tune_features): Add diff --git a/gcc/config/arm/bpabi.h b/gcc/config/arm/bpabi.h index 38be1da261a..c8cdc3db087 100644 --- a/gcc/config/arm/bpabi.h +++ b/gcc/config/arm/bpabi.h @@ -147,3 +147,20 @@ #undef FINI_SECTION_ASM_OP #define INIT_ARRAY_SECTION_ASM_OP ARM_EABI_CTORS_SECTION_OP #define FINI_ARRAY_SECTION_ASM_OP ARM_EABI_DTORS_SECTION_OP + +/* The legacy _mcount implementation assumes r11 points to a + 4-word APCS frame. This is generally not true for EABI targets, + particularly not in Thumb mode. We assume the mcount + implementation does not require a counter variable (No Counter). + Note that __gnu_mcount_nc will be entered with a misaligned stack. + This is OK because it uses a special calling convention anyway. */ + +#undef ARM_FUNCTION_PROFILER +#define ARM_FUNCTION_PROFILER(STREAM, LABELNO) \ +{ \ + fprintf (STREAM, "\tpush\t{lr}\n"); \ + fprintf (STREAM, "\tbl\t__gnu_mcount_nc\n"); \ +} + +#undef SUBTARGET_FRAME_POINTER_REQUIRED +#define SUBTARGET_FRAME_POINTER_REQUIRED 0 -- 2.30.2