diff options
author | Paul Brook <paul@codesourcery.com> | 2006-11-29 17:53:39 +0000 |
---|---|---|
committer | Paul Brook <paul@codesourcery.com> | 2006-11-29 17:53:39 +0000 |
commit | e1da3f5b9645750e966e471ff0db480d6450dcb7 (patch) | |
tree | c2b3c0e23c7c61d0c38e755977902505a3659baf /gas/config/tc-arm.h | |
parent | 0eaedd0eb68e6b71c75b1f8d2d9d62a12bde3e9e (diff) | |
download | gdb-e1da3f5b9645750e966e471ff0db480d6450dcb7.zip gdb-e1da3f5b9645750e966e471ff0db480d6450dcb7.tar.gz gdb-e1da3f5b9645750e966e471ff0db480d6450dcb7.tar.bz2 |
2006-11-29 Paul Brook <paul@codesourcery.com>
gas/
* config/tc-arm.c (arm_is_eabi): New function.
* config/tc-arm.h (arm_is_eabi): New prototype.
(THUMB_IS_FUNC): Use ELF function type for EABI objects.
* doc/c-arm.texi (.thumb_func): Update documentation.
Diffstat (limited to 'gas/config/tc-arm.h')
-rw-r--r-- | gas/config/tc-arm.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h index 56ceec4..591d496 100644 --- a/gas/config/tc-arm.h +++ b/gas/config/tc-arm.h @@ -100,6 +100,7 @@ extern int arm_optimize_expr (expressionS *, operatorT, expressionS *); #ifdef OBJ_ELF #define md_end arm_md_end extern void arm_md_end (void); +bfd_boolean arm_is_eabi (void); #endif /* NOTE: The fake label creation in stabs.c:s_stab_generic() has @@ -122,7 +123,19 @@ extern void arm_md_end (void); #define ARM_IS_THUMB(s) (ARM_GET_FLAG (s) & ARM_FLAG_THUMB) #define ARM_IS_INTERWORK(s) (ARM_GET_FLAG (s) & ARM_FLAG_INTERWORK) +#ifdef OBJ_ELF + +/* For ELF objects THUMB_IS_FUNC is inferred from + ARM_IS_TUMB and the function type. */ +#define THUMB_IS_FUNC(s) \ + ((arm_is_eabi () \ + && (ARM_IS_THUMB (s)) \ + && (symbol_get_bfdsym (s)->flags & BSF_FUNCTION)) \ + || (ARM_GET_FLAG (s) & THUMB_FLAG_FUNC)) + +#else #define THUMB_IS_FUNC(s) (ARM_GET_FLAG (s) & THUMB_FLAG_FUNC) +#endif #define ARM_SET_THUMB(s,t) ((t) ? ARM_SET_FLAG (s, ARM_FLAG_THUMB) : ARM_RESET_FLAG (s, ARM_FLAG_THUMB)) #define ARM_SET_INTERWORK(s,t) ((t) ? ARM_SET_FLAG (s, ARM_FLAG_INTERWORK) : ARM_RESET_FLAG (s, ARM_FLAG_INTERWORK)) |