2000-01-13 Clinton Popetz <cpopetz@cygnus.com>
* config/tc-mips.c (mips_do_align): New function. * config/tc-mips.h (md_do_align): Define.
This commit is contained in:
parent
6b3b007bde
commit
a19d8eb03e
3 changed files with 38 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2000-01-13 Clinton Popetz <cpopetz@cygnus.com>
|
||||
|
||||
* config/tc-mips.c (mips_do_align): New function.
|
||||
* config/tc-mips.h (md_do_align): Define.
|
||||
|
||||
2000-01-10 Philip Blundell <philb@gnu.org>
|
||||
|
||||
* doc/c-arm.texi (ARM Options): Fix typo.
|
||||
|
|
|
@ -11436,6 +11436,36 @@ static procS cur_proc;
|
|||
static procS *cur_proc_ptr;
|
||||
static int numprocs;
|
||||
|
||||
/* When we align code in the .text section of mips16, use the correct two
|
||||
byte nop pattern of 0x6500 (move $0,$0) */
|
||||
|
||||
int
|
||||
mips_do_align (n, fill, len, max)
|
||||
int n;
|
||||
const char *fill;
|
||||
int len;
|
||||
int max;
|
||||
{
|
||||
if (fill == NULL
|
||||
&& subseg_text_p (now_seg)
|
||||
&& n > 1
|
||||
&& mips_opts.mips16)
|
||||
{
|
||||
static const unsigned char be_nop[] = { 0x65, 0x00 };
|
||||
static const unsigned char le_nop[] = { 0x00, 0x65 };
|
||||
|
||||
frag_align (1, 0, 0);
|
||||
|
||||
if (target_big_endian)
|
||||
frag_align_pattern (n, be_nop, 2, max);
|
||||
else
|
||||
frag_align_pattern (n, le_nop, 2, max);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
md_obj_begin ()
|
||||
{
|
||||
|
|
|
@ -55,6 +55,9 @@ extern int mips_relax_frag PARAMS ((struct frag *, long));
|
|||
#define md_undefined_symbol(name) (0)
|
||||
#define md_operand(x)
|
||||
|
||||
extern int mips_do_align PARAMS ((int, const char *, int, int));
|
||||
#define md_do_align(n,fill,len,max,l) if (mips_do_align (n,fill,len,max)) goto l
|
||||
|
||||
/* We permit PC relative difference expressions when generating
|
||||
embedded PIC code. */
|
||||
#define DIFF_EXPR_OK
|
||||
|
|
Loading…
Reference in a new issue