diff options
author | Dr Philipp Tomsich <philipp.tomsich@theobroma-systems.com> | 2014-10-30 10:53:09 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2014-10-30 10:53:09 +0000 |
commit | f803aa8eadb24ea7152057584c47648fb02e4716 (patch) | |
tree | 21f2c7a08b5e6faa1dac08dc88eb14e89ef4ea2e /gas/config/tc-aarch64.h | |
parent | 76ca31c09f629e670ffd57e79c0604db7ddecc9e (diff) | |
download | gdb-f803aa8eadb24ea7152057584c47648fb02e4716.zip gdb-f803aa8eadb24ea7152057584c47648fb02e4716.tar.gz gdb-f803aa8eadb24ea7152057584c47648fb02e4716.tar.bz2 |
Remove the artificial limit on code alignment through the use of the
fixed part of a fragment for output generation only, which required
MAX_MEM_FOR_RS_ALIGN_CODE to be large enough to hold the maximum pad.
* config/tc-aarch64.h (MAX_MEM_FOR_RS_ALIGN_CODE): Define to 7.
* config/tc-aarch64.c (aarch64_handle_align): Rewrite to handle
large alignments with a constant fragment size of
MAX_MEM_FOR_RS_ALIGN_CODE.
Diffstat (limited to 'gas/config/tc-aarch64.h')
-rw-r--r-- | gas/config/tc-aarch64.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h index 3d4ffc5..1fad6ce 100644 --- a/gas/config/tc-aarch64.h +++ b/gas/config/tc-aarch64.h @@ -116,8 +116,9 @@ void aarch64_copy_symbol_attributes (symbolS *, symbolS *); #define TC_CONS_FIX_NEW(f,w,s,e,r) cons_fix_new_aarch64 ((f), (w), (s), (e)) -/* Max code alignment is 32 bytes */ -#define MAX_MEM_FOR_RS_ALIGN_CODE 31 +/* Max space for a rs_align_code fragment is 3 unaligned bytes + (fr_fix) plus 4 bytes to contain the repeating NOP (fr_var). */ +#define MAX_MEM_FOR_RS_ALIGN_CODE 7 /* For frags in code sections we need to record whether they contain code or data. */ @@ -141,7 +142,7 @@ struct aarch64_frag_type #define md_do_align(N, FILL, LEN, MAX, LABEL) \ if (FILL == NULL && (N) != 0 && ! need_pass_2 && subseg_text_p (now_seg)) \ { \ - aarch64_frag_align_code (N, MAX); \ + frag_align_code (N, MAX); \ goto LABEL; \ } |