aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-nds32.h
diff options
context:
space:
mode:
authorKuan-Lin Chen <kuanlinchentw@gmail.com>2015-01-29 15:49:02 +0800
committerKuan-Lin Chen <kuanlinchentw@gmail.com>2015-01-29 16:29:42 +0800
commitea16498d5a740e2888feb2f8bce92d9565baf244 (patch)
tree6011e41ba6f6daf9eb0258ae19ad385ebfde5a6d /gas/config/tc-nds32.h
parent3d7ad9b42685b426329370cdb8bebc9cda6d8911 (diff)
downloadgdb-ea16498d5a740e2888feb2f8bce92d9565baf244.zip
gdb-ea16498d5a740e2888feb2f8bce92d9565baf244.tar.gz
gdb-ea16498d5a740e2888feb2f8bce92d9565baf244.tar.bz2
NDS32: Set branch instruction to relaxable.
Relaxable fragments can be relaxed when there are alignment requirements. Besides, insert a dummy fragment in the final to make sure that all alignment is traversed. Finally, convert these fragments in md_convert_frag with relax_table.
Diffstat (limited to 'gas/config/tc-nds32.h')
-rw-r--r--gas/config/tc-nds32.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/gas/config/tc-nds32.h b/gas/config/tc-nds32.h
index 328d47f..fb4e03b 100644
--- a/gas/config/tc-nds32.h
+++ b/gas/config/tc-nds32.h
@@ -151,10 +151,16 @@ extern void nds32_do_align (int);
/* frags.c. */
-#define NDS32_FRAG_RELAXABLE 0x1
-#define NDS32_FRAG_RELAXED 0x2
-#define NDS32_FRAG_BRANCH 0x4
-#define NDS32_FRAG_LABEL 0x8
+enum FRAG_ATTR
+{
+ NDS32_FRAG_RELAXABLE = 0x1,
+ NDS32_FRAG_RELAXED = 0x2,
+ NDS32_FRAG_BRANCH = 0x4,
+ NDS32_FRAG_LABEL = 0x8,
+ NDS32_FRAG_FINAL = 0x10,
+ NDS32_FRAG_RELAXABLE_BRANCH = 0x20,
+ NDS32_FRAG_ALIGN = 0x40
+};
struct nds32_frag_type
{
@@ -222,7 +228,8 @@ enum nds32_ramp
NDS32_HINT = (1 << 6),
NDS32_FIX = (1 << 7),
NDS32_ADDEND = (1 << 8),
- NDS32_SYM = (1 << 9)
+ NDS32_SYM = (1 << 9),
+ NDS32_PCREL = (1 << 10)
};
typedef struct nds32_relax_fixup_info