From 9a26720ba995f808a5d5818640820affec00b475 Mon Sep 17 00:00:00 2001 From: rin Date: Sat, 25 Nov 2023 12:05:22 +0000 Subject: [PATCH] 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 --- .../gpl3/binutils.old/dist/gas/config/tc-vax.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/external/gpl3/binutils.old/dist/gas/config/tc-vax.c b/external/gpl3/binutils.old/dist/gas/config/tc-vax.c index 6a2ef16b1760..00fdd0c179d4 100644 --- a/external/gpl3/binutils.old/dist/gas/config/tc-vax.c +++ b/external/gpl3/binutils.old/dist/gas/config/tc-vax.c @@ -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