diff options
author | Jan Beulich <jbeulich@suse.com> | 2021-04-29 11:45:10 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2021-04-29 11:45:10 +0200 |
commit | 3abbafc2aacc6706fea3e3e326e2f08d107c3672 (patch) | |
tree | 8762f858f41c93ef736b2fef06a8b5afc07d83de /gas/config/tc-i386.h | |
parent | 44f871628ccfcfd931f4619c60554f3bd6b57b8d (diff) | |
download | gdb-3abbafc2aacc6706fea3e3e326e2f08d107c3672.zip gdb-3abbafc2aacc6706fea3e3e326e2f08d107c3672.tar.gz gdb-3abbafc2aacc6706fea3e3e326e2f08d107c3672.tar.bz2 |
x86: relax when/how @size can be used
Allow a few more expression forms when the entire expression can be
resolved at assembly time. For this, i386_validate_fix() needs to
arrange for all processing of the relocation to be deferred to
tc_gen_reloc().
Diffstat (limited to 'gas/config/tc-i386.h')
-rw-r--r-- | gas/config/tc-i386.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h index 39d7c27..5516a16 100644 --- a/gas/config/tc-i386.h +++ b/gas/config/tc-i386.h @@ -143,8 +143,10 @@ extern int x86_address_bytes (void); #define NO_RELOC BFD_RELOC_NONE -void i386_validate_fix (struct fix *); -#define TC_VALIDATE_FIX(FIX,SEGTYPE,SKIP) i386_validate_fix(FIX) +int i386_validate_fix (struct fix *); +#define TC_VALIDATE_FIX(FIX,SEGTYPE,SKIP) do { \ + if (!i386_validate_fix(FIX)) goto SKIP; \ + } while (0) #define tc_fix_adjustable(X) tc_i386_fix_adjustable(X) extern int tc_i386_fix_adjustable (struct fix *); |