fix definitions of md_create_long_jump, md_create_short_jump,
md_number_to_chars, and md_section_align to correctly use valueT and addressT
This commit is contained in:
parent
d723cd17d5
commit
025b030243
File diff suppressed because it is too large
Load Diff
|
@ -1244,8 +1244,8 @@ tc_aout_fix_to_chars ()
|
|||
void
|
||||
md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr;
|
||||
long to_addr;
|
||||
addressT from_addr;
|
||||
addressT to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
|
@ -1255,7 +1255,7 @@ md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
|||
void
|
||||
md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
|
@ -1402,10 +1402,10 @@ md_convert_frag (headers, fragP)
|
|||
|
||||
}
|
||||
|
||||
long
|
||||
valueT
|
||||
DEFUN (md_section_align, (seg, size),
|
||||
segT seg AND
|
||||
long size)
|
||||
valueT size)
|
||||
{
|
||||
return ((size + (1 << section_alignment[(int) seg]) - 1)
|
||||
& (-1 << section_alignment[(int) seg]));
|
||||
|
@ -1506,7 +1506,7 @@ md_estimate_size_before_relax (fragP, segment_type)
|
|||
void
|
||||
md_number_to_chars (ptr, use, nbytes)
|
||||
char *ptr;
|
||||
long use;
|
||||
valueT use;
|
||||
int nbytes;
|
||||
{
|
||||
switch (nbytes)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2161,7 +2161,7 @@ const int md_reloc_size = 8; /* Size of relocation record */
|
|||
void
|
||||
md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
valueT from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
|
@ -2175,7 +2175,7 @@ md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
|||
void
|
||||
md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
valueT from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
|
|
2085
gas/config/tc-i860.c
2085
gas/config/tc-i860.c
File diff suppressed because it is too large
Load Diff
|
@ -3585,7 +3585,8 @@ md_assemble (str)
|
|||
current_architecture |= m68881;
|
||||
}
|
||||
if (!no_68851
|
||||
&& (cpu_of_arch (current_architecture) & m68020up) != 0)
|
||||
&& (cpu_of_arch (current_architecture) & m68020up) != 0
|
||||
&& cpu_of_arch (current_architecture) != m68040)
|
||||
{
|
||||
current_architecture |= m68851;
|
||||
}
|
||||
|
@ -3942,7 +3943,7 @@ md_atof (type, litP, sizeP)
|
|||
void
|
||||
md_number_to_chars (buf, val, n)
|
||||
char *buf;
|
||||
long val;
|
||||
valueT val;
|
||||
int n;
|
||||
{
|
||||
switch (n)
|
||||
|
@ -4535,40 +4536,40 @@ CONST int md_long_jump_size = 6;
|
|||
void
|
||||
md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
long offset;
|
||||
valueT offset;
|
||||
|
||||
offset = to_addr - (from_addr + 2);
|
||||
|
||||
md_number_to_chars (ptr, (long) 0x6000, 2);
|
||||
md_number_to_chars (ptr + 2, (long) offset, 2);
|
||||
md_number_to_chars (ptr, (valueT) 0x6000, 2);
|
||||
md_number_to_chars (ptr + 2, (valueT) offset, 2);
|
||||
}
|
||||
|
||||
void
|
||||
md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
long offset;
|
||||
valueT offset;
|
||||
|
||||
if (cpu_of_arch (current_architecture) < m68020)
|
||||
{
|
||||
offset = to_addr - S_GET_VALUE (to_symbol);
|
||||
md_number_to_chars (ptr, (long) 0x4EF9, 2);
|
||||
md_number_to_chars (ptr + 2, (long) offset, 4);
|
||||
md_number_to_chars (ptr, (valueT) 0x4EF9, 2);
|
||||
md_number_to_chars (ptr + 2, (valueT) offset, 4);
|
||||
fix_new (frag, (ptr + 2) - frag->fr_literal, 4, to_symbol, (symbolS *) 0, (long) 0, 0,
|
||||
NO_RELOC);
|
||||
}
|
||||
else
|
||||
{
|
||||
offset = to_addr - (from_addr + 2);
|
||||
md_number_to_chars (ptr, (long) 0x60ff, 2);
|
||||
md_number_to_chars (ptr + 2, (long) offset, 4);
|
||||
md_number_to_chars (ptr, (valueT) 0x60ff, 2);
|
||||
md_number_to_chars (ptr + 2, (valueT) offset, 4);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5095,10 +5096,10 @@ md_operand (expressionP)
|
|||
}
|
||||
|
||||
/* Round up a section size to the appropriate boundary. */
|
||||
long
|
||||
valueT
|
||||
md_section_align (segment, size)
|
||||
segT segment;
|
||||
long size;
|
||||
valueT size;
|
||||
{
|
||||
return size; /* Byte alignment is fine */
|
||||
}
|
||||
|
|
|
@ -21,15 +21,9 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#ifdef USG
|
||||
#include <string.h>
|
||||
#else
|
||||
#include <strings.h>
|
||||
#endif
|
||||
#include "opcode/ns32k.h"
|
||||
|
||||
#include "as.h"
|
||||
#include "read.h"
|
||||
|
||||
#include "obstack.h"
|
||||
|
||||
|
@ -1536,7 +1530,7 @@ md_atof (type, litP, sizeP)
|
|||
void
|
||||
md_number_to_chars (buf, value, nbytes)
|
||||
char *buf;
|
||||
long value;
|
||||
valueT value;
|
||||
int nbytes;
|
||||
{
|
||||
while (nbytes--)
|
||||
|
@ -1709,12 +1703,11 @@ tc_aout_fix_to_chars (where, fixP, segment_address_in_file)
|
|||
relax_addressT segment_address_in_file;
|
||||
{
|
||||
/*
|
||||
* In: length of relocation (or of address) in chars: 1, 2 or 4.
|
||||
* Out: GNU LD relocation length code: 0, 1, or 2.
|
||||
*/
|
||||
* In: length of relocation (or of address) in chars: 1, 2 or 4.
|
||||
* Out: GNU LD relocation length code: 0, 1, or 2.
|
||||
*/
|
||||
|
||||
static unsigned char nbytes_r_length[] =
|
||||
{42, 0, 1, 42, 2};
|
||||
static unsigned char nbytes_r_length[] = {42, 0, 1, 42, 2};
|
||||
long r_symbolnum;
|
||||
|
||||
know (fixP->fx_addsy != NULL);
|
||||
|
@ -1735,9 +1728,7 @@ tc_aout_fix_to_chars (where, fixP, segment_address_in_file)
|
|||
| (long) (fixP->fx_bsr << 28)
|
||||
| (long) (fixP->fx_im_disp << 29)),
|
||||
4);
|
||||
|
||||
return;
|
||||
} /* tc_aout_fix_to_chars() */
|
||||
}
|
||||
|
||||
#endif /* OBJ_AOUT */
|
||||
|
||||
|
@ -1977,34 +1968,34 @@ md_estimate_size_before_relax (fragP, segment)
|
|||
|
||||
int md_short_jump_size = 3;
|
||||
int md_long_jump_size = 5;
|
||||
int md_reloc_size = 8; /* Size of relocation record */
|
||||
const int md_reloc_size = 8; /* Size of relocation record */
|
||||
|
||||
void
|
||||
md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
long offset;
|
||||
valueT offset;
|
||||
|
||||
offset = to_addr - from_addr;
|
||||
md_number_to_chars (ptr, (long) 0xEA, 1);
|
||||
md_number_to_disp (ptr + 1, (long) offset, 2);
|
||||
md_number_to_chars (ptr, (valueT) 0xEA, 1);
|
||||
md_number_to_disp (ptr + 1, (valueT) offset, 2);
|
||||
}
|
||||
|
||||
void
|
||||
md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
long offset;
|
||||
valueT offset;
|
||||
|
||||
offset = to_addr - from_addr;
|
||||
md_number_to_chars (ptr, (long) 0xEA, 2);
|
||||
md_number_to_disp (ptr + 2, (long) offset, 4);
|
||||
md_number_to_chars (ptr, (valueT) 0xEA, 2);
|
||||
md_number_to_disp (ptr + 2, (valueT) offset, 4);
|
||||
}
|
||||
|
||||
/* JF this is a new function to parse machine-dep options */
|
||||
|
@ -2099,6 +2090,20 @@ fix_new_ns32k (frag, where, size, add_symbol, sub_symbol, offset, pcrel,
|
|||
fixP->fx_bsr = bsr;
|
||||
} /* fix_new_ns32k() */
|
||||
|
||||
/* This is TC_CONS_FIX_NEW, called by emit_expr in read.c. */
|
||||
|
||||
void
|
||||
cons_fix_new_ns32k (frag, where, size, exp)
|
||||
fragS *frag; /* Which frag? */
|
||||
int where; /* Where in that frag? */
|
||||
int size; /* 1, 2 or 4 usually. */
|
||||
expressionS *exp; /* Expression. */
|
||||
{
|
||||
fix_new_ns32k (frag, where, size, exp->X_add_symbol,
|
||||
exp->X_subtract_symbol, exp->X_add_number,
|
||||
0, 0, 2, 0, 0);
|
||||
}
|
||||
|
||||
/* We have no need to default values of symbols. */
|
||||
|
||||
symbolS *
|
||||
|
@ -2120,10 +2125,10 @@ md_operand (expressionP)
|
|||
}
|
||||
|
||||
/* Round up a section size to the appropriate boundary. */
|
||||
long
|
||||
valueT
|
||||
md_section_align (segment, size)
|
||||
segT segment;
|
||||
long size;
|
||||
valueT size;
|
||||
{
|
||||
return size; /* Byte alignment is fine */
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -455,11 +455,11 @@ md_parse_option (argP, cntP, vecP)
|
|||
void /* Knows about order of bytes in address. */
|
||||
md_number_to_chars (con, value, nbytes)
|
||||
char con[]; /* Return 'nbytes' of chars here. */
|
||||
long int value; /* The value of the bits. */
|
||||
valueT value; /* The value of the bits. */
|
||||
int nbytes; /* Number of bytes in the output. */
|
||||
{
|
||||
int n = nbytes;
|
||||
long int v = value;
|
||||
valueT v = value;
|
||||
|
||||
con += nbytes - 1; /* Tahoes is (Bleah!) big endian */
|
||||
while (nbytes--)
|
||||
|
@ -595,11 +595,11 @@ const int md_short_jump_size = 3;
|
|||
void
|
||||
md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
long offset;
|
||||
valueT offset;
|
||||
|
||||
offset = to_addr - (from_addr + 1);
|
||||
*ptr++ = TAHOE_BRW;
|
||||
|
@ -612,11 +612,11 @@ const int md_reloc_size = 8; /* Size of relocation record */
|
|||
void
|
||||
md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
long offset;
|
||||
valueT offset;
|
||||
|
||||
offset = to_addr - (from_addr + 4);
|
||||
*ptr++ = TAHOE_JMP;
|
||||
|
@ -2044,10 +2044,10 @@ md_operand (expressionP)
|
|||
} /* md_operand() */
|
||||
|
||||
/* Round up a section size to the appropriate boundary. */
|
||||
long
|
||||
valueT
|
||||
md_section_align (segment, size)
|
||||
segT segment;
|
||||
long size;
|
||||
valueT size;
|
||||
{
|
||||
return ((size + 7) & ~7); /* Round all sects to multiple of 8 */
|
||||
} /* md_section_align() */
|
||||
|
|
|
@ -289,11 +289,11 @@ md_end ()
|
|||
void /* Knows about order of bytes in address. */
|
||||
md_number_to_chars (con, value, nbytes)
|
||||
char con[]; /* Return 'nbytes' of chars here. */
|
||||
long value; /* The value of the bits. */
|
||||
valueT value; /* The value of the bits. */
|
||||
int nbytes; /* Number of bytes in the output. */
|
||||
{
|
||||
int n;
|
||||
long v;
|
||||
valueT v;
|
||||
|
||||
n = nbytes;
|
||||
v = value;
|
||||
|
@ -3175,11 +3175,11 @@ const int md_reloc_size = 8; /* Size of relocation record */
|
|||
void
|
||||
md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
long offset;
|
||||
valueT offset;
|
||||
|
||||
offset = to_addr - (from_addr + 1);
|
||||
*ptr++ = 0x31;
|
||||
|
@ -3189,11 +3189,11 @@ md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
|||
void
|
||||
md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
long offset;
|
||||
valueT offset;
|
||||
|
||||
offset = to_addr - S_GET_VALUE (to_symbol);
|
||||
*ptr++ = 0x17;
|
||||
|
@ -3258,10 +3258,13 @@ md_parse_option (argP, cntP, vecP)
|
|||
as_warn ("I don't use an interpass file! -V ignored");
|
||||
break;
|
||||
|
||||
#ifdef VMS
|
||||
#ifdef OBJ_VMS
|
||||
case '+': /* For g++ */
|
||||
break;
|
||||
|
||||
case '1': /* For backward compatibility */
|
||||
break;
|
||||
|
||||
case 'h': /* No hashing of mixed-case names */
|
||||
break;
|
||||
|
||||
|
@ -3298,10 +3301,10 @@ md_operand (expressionP)
|
|||
}
|
||||
|
||||
/* Round up a section size to the appropriate boundary. */
|
||||
long
|
||||
valueT
|
||||
md_section_align (segment, size)
|
||||
segT segment;
|
||||
long size;
|
||||
valueT size;
|
||||
{
|
||||
return size; /* Byte alignment is fine */
|
||||
}
|
||||
|
|
|
@ -27,10 +27,8 @@
|
|||
#include "../opcodes/z8k-opc.h"
|
||||
|
||||
#include "as.h"
|
||||
#include "read.h"
|
||||
#include "bfd.h"
|
||||
#include <ctype.h>
|
||||
#include "listing.h"
|
||||
|
||||
const char comment_chars[] =
|
||||
{'!', 0};
|
||||
|
@ -41,7 +39,7 @@ const char line_comment_chars[] = { '#', 0};
|
|||
extern int machine;
|
||||
extern int coff_flags;
|
||||
int segmented_mode;
|
||||
int md_reloc_size;
|
||||
const int md_reloc_size;
|
||||
|
||||
/* This table describes all the machine specific pseudo-ops the assembler
|
||||
has to support. The fields are:
|
||||
|
@ -1170,8 +1168,8 @@ tc_aout_fix_to_chars ()
|
|||
void
|
||||
md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr;
|
||||
long to_addr;
|
||||
addressT from_addr;
|
||||
addressT to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
|
@ -1181,7 +1179,7 @@ md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
|||
void
|
||||
md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol)
|
||||
char *ptr;
|
||||
long from_addr, to_addr;
|
||||
addressT from_addr, to_addr;
|
||||
fragS *frag;
|
||||
symbolS *to_symbol;
|
||||
{
|
||||
|
@ -1198,10 +1196,10 @@ md_convert_frag (headers, fragP)
|
|||
abort ();
|
||||
}
|
||||
|
||||
long
|
||||
valueT
|
||||
DEFUN (md_section_align, (seg, size),
|
||||
segT seg AND
|
||||
long size)
|
||||
valueT size)
|
||||
{
|
||||
return ((size + (1 << section_alignment[(int) seg]) - 1) & (-1 << section_alignment[(int) seg]));
|
||||
|
||||
|
@ -1274,7 +1272,7 @@ md_estimate_size_before_relax (fragP, segment_type)
|
|||
void
|
||||
DEFUN (md_number_to_chars, (ptr, use, nbytes),
|
||||
char *ptr AND
|
||||
long use AND
|
||||
valueT use AND
|
||||
int nbytes)
|
||||
{
|
||||
switch (nbytes)
|
||||
|
|
Loading…
Reference in New Issue