mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
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.
This commit is contained in:
parent
0eaedd0eb6
commit
e1da3f5b96
@ -1,3 +1,10 @@
|
||||
2006-11-29 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2006-11-29 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* config/tc-arm.c (do_vfp_sp_const, do_vfp_dp_const): Fix operans
|
||||
|
@ -232,6 +232,12 @@ static int meabi_flags = EABI_DEFAULT;
|
||||
# else
|
||||
static int meabi_flags = EF_ARM_EABI_UNKNOWN;
|
||||
# endif
|
||||
|
||||
bfd_boolean
|
||||
arm_is_eabi(void)
|
||||
{
|
||||
return (EF_ARM_EABI_VERSION (meabi_flags) >= EF_ARM_EABI_VER4);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef OBJ_ELF
|
||||
|
@ -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))
|
||||
|
@ -429,6 +429,9 @@ between Arm and Thumb instructions and should be used even if
|
||||
interworking is not going to be performed. The presence of this
|
||||
directive also implies @code{.thumb}
|
||||
|
||||
This directive is not neccessary when generating EABI objects. On these
|
||||
targets the encoding is implicit when generating Thumb code.
|
||||
|
||||
@cindex @code{thumb_set} directive, ARM
|
||||
@item .thumb_set
|
||||
This performs the equivalent of a @code{.set} directive in that it
|
||||
|
Loading…
Reference in New Issue
Block a user