Module Name: src
Committed By: rin
Date: Sat Nov 25 12:05:22 UTC 2023
Modified Files:
src/external/gpl3/binutils.old/dist/gas/config: tc-vax.c
Log Message:
binutils.old/gas: vax: Cherry-pick upstream commits for binutils-gdb:30715
PR port-vax/57646: Import major vax toolchain fix by Kalvis Duckmanton
Taken from binutils/gas:
https://mail-index.netbsd.org/source-changes/2023/10/07/msg147931.html
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/external/gpl3/binutils.old/dist/gas/config/tc-vax.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl3/binutils.old/dist/gas/config/tc-vax.c
diff -u src/external/gpl3/binutils.old/dist/gas/config/tc-vax.c:1.7 src/external/gpl3/binutils.old/dist/gas/config/tc-vax.c:1.8
--- src/external/gpl3/binutils.old/dist/gas/config/tc-vax.c:1.7 Fri Dec 23 17:09:22 2022
+++ src/external/gpl3/binutils.old/dist/gas/config/tc-vax.c Sat Nov 25 12:05:22 2023
@@ -2332,18 +2332,19 @@ md_create_short_jump (char *ptr,
void
md_create_long_jump (char *ptr,
- addressT from_addr ATTRIBUTE_UNUSED,
+ addressT from_addr,
addressT to_addr,
- fragS *frag,
- symbolS *to_symbol)
+ fragS *frag ATTRIBUTE_UNUSED,
+ symbolS *to_symbol ATTRIBUTE_UNUSED)
{
valueT offset;
- offset = to_addr - S_GET_VALUE (to_symbol);
- *ptr++ = VAX_JMP; /* Arbitrary jump. */
- *ptr++ = VAX_ABSOLUTE_MODE;
+ /* Account for 1 byte instruction, 1 byte of address specifier and
+ 4 bytes of offset from PC. */
+ offset = to_addr - (from_addr + 1 + 1 + 4);
+ *ptr++ = VAX_JMP;
+ *ptr++ = VAX_PC_RELATIVE_MODE;
md_number_to_chars (ptr, offset, 4);
- fix_new (frag, ptr - frag->fr_literal, 4, to_symbol, (long) 0, 0, NO_RELOC);
}
#ifdef OBJ_VMS