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:
Mark Eichin 1993-07-12 19:42:32 +00:00
parent d723cd17d5
commit 025b030243
11 changed files with 10741 additions and 2149 deletions

File diff suppressed because it is too large Load Diff

View File

@ -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)

6941
gas/config/tc-hppa.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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;
{

File diff suppressed because it is too large Load Diff

View File

@ -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 */
}

View File

@ -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 */
}

1390
gas/config/tc-sh.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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() */

View File

@ -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 */
}

View File

@ -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)