summaryrefslogtreecommitdiff
path: root/gas/config/tc-vax.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2000-08-25 18:40:16 +0000
committerNick Clifton <nickc@redhat.com>2000-08-25 18:40:16 +0000
commit3ea92e6b3622f2c45befb619092c0bd168b695cf (patch)
tree6a8d09e41df51fa1d911f3ce1eaa66b9f745bb20 /gas/config/tc-vax.c
parent2806f48f50e9cd899d1131720c952941c3b7a0e8 (diff)
downloadbinutils-redhat-3ea92e6b3622f2c45befb619092c0bd168b695cf.tar.gz
Correctly calculate the pc relative offset of the target destination for jmp
instructions.
Diffstat (limited to 'gas/config/tc-vax.c')
-rw-r--r--gas/config/tc-vax.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gas/config/tc-vax.c b/gas/config/tc-vax.c
index acf78ee199..23429227ff 100644
--- a/gas/config/tc-vax.c
+++ b/gas/config/tc-vax.c
@@ -775,7 +775,7 @@ md_assemble (instruction_string)
p[1] = VAX_BRB;
p[2] = 6;
p[3] = VAX_JMP;
- p[4] = VAX_PC_RELATIVE_MODE + 1; /* @#... */
+ p[4] = VAX_ABSOLUTE_MODE; /* @#... */
md_number_to_chars (p + 5, this_add_number, 4);
/*
* Now (eg) xOBxxx 1f
@@ -1349,7 +1349,7 @@ md_convert_frag (headers, seg, fragP)
addressP[0] = 6;
addressP[1] = VAX_JMP;
addressP[2] = VAX_PC_RELATIVE_MODE;
- md_number_to_chars (addressP + 3, target_address, 4);
+ md_number_to_chars (addressP + 3, target_address - (address_of_var + 7), 4);
extension = 7;
break;
@@ -1383,7 +1383,7 @@ md_convert_frag (headers, seg, fragP)
addressP[3] = 6;
addressP[4] = VAX_JMP;
addressP[5] = VAX_PC_RELATIVE_MODE;
- md_number_to_chars (addressP + 6, target_address, 4);
+ md_number_to_chars (addressP + 6, target_address - (address_of_var + 10), 4);
extension = 10;
break;
@@ -1407,7 +1407,7 @@ md_convert_frag (headers, seg, fragP)
addressP[2] = 6;
addressP[3] = VAX_JMP;
addressP[4] = VAX_PC_RELATIVE_MODE;
- md_number_to_chars (addressP + 5, target_address, 4);
+ md_number_to_chars (addressP + 5, target_address - (address_of_var + 9), 4);
extension = 9;
break;