{ STRING_COMMA_LEN ("SECREL32"), { BFD_RELOC_32_SECREL,
BFD_RELOC_32_SECREL },
OPERAND_TYPE_IMM32_32S_DISP32, false },
+ { STRING_COMMA_LEN ("SECIDX16"), { BFD_RELOC_16_SECIDX,
+ BFD_RELOC_16_SECIDX },
+ { .bitfield = { .imm16 = 1, .disp16 = 1 } }, false },
{ STRING_COMMA_LEN ("RVA"), { BFD_RELOC_RVA,
BFD_RELOC_RVA },
OPERAND_TYPE_IMM32_32S_DISP32, false },
expr_mode = expr_operator_none;
#if defined (OBJ_ELF) || defined (TE_PE)
- if (size == 4 || (object_64bit && size == 8))
+ if (size == 4
+# ifdef TE_PE
+ || (size == 2)
+# endif
+ || (object_64bit && size == 8))
{
/* Handle @GOTOFF and the like in an expression. */
char *save;
.*: +file format pe-i386
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+22 secidx \.text
+
RELOCATION RECORDS FOR \[\.data\]:
OFFSET[ ]+TYPE[ ]+VALUE
0+24 secidx \.text
0+72 secidx ext36
0+75 secidx ext3f
+RELOCATION RECORDS FOR \[\.rdata\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+24 secidx \.rdata
+
Contents of section \.text:
0000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<<
0010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>><
+ 0020 66b80000 .*
Contents of section \.data:
0000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<<
0010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>><
Contents of section \.rdata:
0000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<<
0010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>><
- 0020 3e3e3e3e 00000000 00000000 00000000 >>>>............
+ 0020 3e3e3e3e 24003c3c 3c3c0000 00000000 >>>>..<<<<......
.ascii ">>>>>>>"
pre1f: .ascii "<"
+ mov $.text@secidx16, %ax
+
.data
.ascii ">>>>"
nex1f: .ascii "<"
.ascii ">>>>"
+ .word .@secidx16
+
+ .ascii "<<<<"
+
.p2align 4,0
--- /dev/null
+#objdump: -rs
+#name: x86-64 imgrel (RVA) reloc
+
+.*: +file format pe-x86-64
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+02 IMAGE_REL_AMD64_SECTION \.text
+0+07 IMAGE_REL_AMD64_SECTION \.data
+0+0c IMAGE_REL_AMD64_SECTION \.text
+0+11 IMAGE_REL_AMD64_SECTION Xtrn
+
+RELOCATION RECORDS FOR \[\.data\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+00 IMAGE_REL_AMD64_SECTION \.text
+0+02 IMAGE_REL_AMD64_SECTION \.data
+0+04 IMAGE_REL_AMD64_SECTION \.data
+0+06 IMAGE_REL_AMD64_SECTION Xtrn
+
+Contents of section \.text:
+ 0000 66b90000 6681c100 006681e9 09006681 .*
+ 0010 f10000.*
+
+Contents of section \.data:
+ 0000 00000000 04000000 00000000 00000000 .*
--- /dev/null
+ .text
+Text:
+ mov $Text@secidx16, %cx
+ add $Data@secidx16, %cx
+ sub $.@secidx16, %cx
+ xor $Xtrn@secidx16, %cx
+
+ .data
+Data:
+ .word Text@secidx16
+ .word Data@secidx16
+ .word .@secidx16
+ .word Xtrn@secidx16
} else {
run_dump_test "x86-64-w64-pcrel"
run_dump_test "x86-64-imgrel"
+ run_dump_test "x86-64-secidx"
}
run_list_test "pcrel64" "-al"
run_dump_test "x86-64-rip"