* config/tc-mips.c (mips_set_options): Add sym32 field.

(mips_opts): Initialize it.
	(HAVE_32BIT_ADDRESSES): Set to true if pointers are 32 bits wide.
	(HAVE_64BIT_ADDRESSES): Redefine as !HAVE_32BIT_ADDRESSES.
	(HAVE_32BIT_SYMBOLS, HAVE_64BIT_SYMBOLS): New macros.
	(load_address): Use HAVE_64BIT_SYMBOLS instead of HAVE_64BIT_ADDRESSES
	when deciding whether to use a symbolic %highest/%higher expansion.
	(macro): Likewise.  Remove o64/n32 linux hack.  Always use
	ADDRESS_ADD*_INSN for address addition in the expansion of "dla"
	and "la".  Handle constants separately from symbolic expressions in
	the "ld_st:" case, using 64-bit arithmetic if HAVE_64BIT_ADDRESSES
	and using load_register to load the high part of the address.
	(OPTION_MSYM32, OPTION_NO_MSYM32): New macros.
	(OPTION_ELF_BASE): Bump by 2.
	(md_longopts): Add entries for -msym32 and -mno-sym32.
	(md_parse_option): Handle them.
	(usage): Document them.
	(s_mipsset): Handle ".set sym32" and ".set nosym32".
	(s_cpload, s_cpsetup): Use HAVE_64BIT_SYMBOLS instead of
	HAVE_64BIT_ADDRESSES to detect 64-bit values of "_gp".
	* doc/c-mips.texi: Document ".set sym32", ".set nosym32",
	-msym32 and -mno-sym32.
This commit is contained in:
Richard Sandiford 2005-03-04 09:51:11 +00:00
parent b91e7df1e4
commit aed1a26192
13 changed files with 2282 additions and 756 deletions

View file

@ -1,3 +1,28 @@
2005-03-04 Richard Sandiford <rsandifo@redhat.com>
* config/tc-mips.c (mips_set_options): Add sym32 field.
(mips_opts): Initialize it.
(HAVE_32BIT_ADDRESSES): Set to true if pointers are 32 bits wide.
(HAVE_64BIT_ADDRESSES): Redefine as !HAVE_32BIT_ADDRESSES.
(HAVE_32BIT_SYMBOLS, HAVE_64BIT_SYMBOLS): New macros.
(load_address): Use HAVE_64BIT_SYMBOLS instead of HAVE_64BIT_ADDRESSES
when deciding whether to use a symbolic %highest/%higher expansion.
(macro): Likewise. Remove o64/n32 linux hack. Always use
ADDRESS_ADD*_INSN for address addition in the expansion of "dla"
and "la". Handle constants separately from symbolic expressions in
the "ld_st:" case, using 64-bit arithmetic if HAVE_64BIT_ADDRESSES
and using load_register to load the high part of the address.
(OPTION_MSYM32, OPTION_NO_MSYM32): New macros.
(OPTION_ELF_BASE): Bump by 2.
(md_longopts): Add entries for -msym32 and -mno-sym32.
(md_parse_option): Handle them.
(usage): Document them.
(s_mipsset): Handle ".set sym32" and ".set nosym32".
(s_cpload, s_cpsetup): Use HAVE_64BIT_SYMBOLS instead of
HAVE_64BIT_ADDRESSES to detect 64-bit values of "_gp".
* doc/c-mips.texi: Document ".set sym32", ".set nosym32",
-msym32 and -mno-sym32.
2005-03-03 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* config/tc-mips.c (load_address): Implement GP optimization

View file

@ -189,6 +189,8 @@ struct mips_set_options
/* MIPS architecture (CPU) type. Changed by .set arch=FOO, the -march
command line option, and the default CPU. */
int arch;
/* True if ".set sym32" is in effect. */
bfd_boolean sym32;
};
/* True if -mgp32 was passed. */
@ -203,7 +205,7 @@ static int file_mips_fp32 = -1;
static struct mips_set_options mips_opts =
{
ISA_UNKNOWN, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, CPU_UNKNOWN
ISA_UNKNOWN, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, CPU_UNKNOWN, FALSE
};
/* These variables are filled in with the masks of registers used.
@ -286,13 +288,16 @@ static int mips_32bitmode = 0;
/* True if relocations are stored in-place. */
#define HAVE_IN_PLACE_ADDENDS (!HAVE_NEWABI)
/* We can only have 64bit addresses if the object file format supports it. */
#define HAVE_32BIT_ADDRESSES \
(HAVE_32BIT_GPRS \
|| (bfd_arch_bits_per_address (stdoutput) == 32 \
|| ! HAVE_64BIT_OBJECTS)) \
/* The ABI-derived address size. */
#define HAVE_64BIT_ADDRESSES \
(HAVE_64BIT_GPRS && (mips_abi == EABI_ABI || mips_abi == N64_ABI))
#define HAVE_32BIT_ADDRESSES (!HAVE_64BIT_ADDRESSES)
#define HAVE_64BIT_ADDRESSES (! HAVE_32BIT_ADDRESSES)
/* The size of symbolic constants (i.e., expressions of the form
"SYMBOL" or "SYMBOL + OFFSET"). */
#define HAVE_32BIT_SYMBOLS \
(HAVE_32BIT_ADDRESSES || !HAVE_64BIT_OBJECTS || mips_opts.sym32)
#define HAVE_64BIT_SYMBOLS (!HAVE_32BIT_SYMBOLS)
/* Addresses are loaded in different ways, depending on the address size
in use. The n32 ABI Documentation also mandates the use of additions
@ -3864,7 +3869,7 @@ load_address (int reg, expressionS *ep, int *used_at)
For GP relative symbols in 64bit address space we can use
the same sequence as in 32bit address space. */
if (HAVE_64BIT_ADDRESSES)
if (HAVE_64BIT_SYMBOLS)
{
if ((valueT) ep->X_add_number <= MAX_GPREL_OFFSET
&& !nopic_need_relax (ep->X_add_symbol, 1))
@ -4922,8 +4927,7 @@ macro (struct mips_cl_insn *ip)
&& offset_expr.X_add_number >= -0x8000
&& offset_expr.X_add_number < 0x8000)
{
macro_build (&offset_expr,
(dbl || HAVE_64BIT_ADDRESSES) ? "daddiu" : "addiu",
macro_build (&offset_expr, ADDRESS_ADDI_INSN,
"t,r,j", treg, sreg, BFD_RELOC_LO16);
break;
}
@ -4946,10 +4950,7 @@ macro (struct mips_cl_insn *ip)
}
if (offset_expr.X_op == O_constant)
load_register (tempreg, &offset_expr,
(mips_pic == NO_PIC
? (dbl || HAVE_64BIT_ADDRESSES)
: HAVE_64BIT_ADDRESSES));
load_register (tempreg, &offset_expr, HAVE_64BIT_ADDRESSES);
else if (mips_pic == NO_PIC)
{
/* If this is a reference to a GP relative symbol, we want
@ -4979,7 +4980,7 @@ macro (struct mips_cl_insn *ip)
For GP relative symbols in 64bit address space we can use
the same sequence as in 32bit address space. */
if (HAVE_64BIT_ADDRESSES)
if (HAVE_64BIT_SYMBOLS)
{
if ((valueT) offset_expr.X_add_number <= MAX_GPREL_OFFSET
&& !nopic_need_relax (offset_expr.X_add_symbol, 1))
@ -5504,16 +5505,7 @@ macro (struct mips_cl_insn *ip)
abort ();
if (breg != 0)
{
char *s;
if (mips_pic == NO_PIC)
s = (dbl || HAVE_64BIT_ADDRESSES) ? "daddu" : "addu";
else
s = ADDRESS_ADD_INSN;
macro_build (NULL, s, "d,v,t", treg, tempreg, breg);
}
macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t", treg, tempreg, breg);
break;
case M_J_A:
@ -5882,22 +5874,6 @@ macro (struct mips_cl_insn *ip)
else
fmt = "t,o(b)";
/* Sign-extending 32-bit constants makes their handling easier.
The HAVE_64BIT_GPRS... part is due to the linux kernel hack
described below. */
if ((! HAVE_64BIT_ADDRESSES
&& (! HAVE_64BIT_GPRS && offset_expr.X_op == O_constant))
&& (offset_expr.X_op == O_constant)
&& ! ((offset_expr.X_add_number & ~((bfd_vma) 0x7fffffff))
== ~((bfd_vma) 0x7fffffff)))
{
if (offset_expr.X_add_number & ~((bfd_vma) 0xffffffff))
as_bad (_("constant too large"));
offset_expr.X_add_number = (((offset_expr.X_add_number & 0xffffffff)
^ 0x80000000) - 0x80000000);
}
if (offset_expr.X_op != O_constant
&& offset_expr.X_op != O_symbol)
{
@ -5907,8 +5883,21 @@ macro (struct mips_cl_insn *ip)
/* A constant expression in PIC code can be handled just as it
is in non PIC code. */
if (mips_pic == NO_PIC
|| offset_expr.X_op == O_constant)
if (offset_expr.X_op == O_constant)
{
if (HAVE_32BIT_ADDRESSES
&& !IS_SEXT_32BIT_NUM (offset_expr.X_add_number))
as_bad (_("constant too large"));
expr1.X_add_number = ((offset_expr.X_add_number + 0x8000)
& ~(bfd_vma) 0xffff);
load_register (tempreg, &expr1, HAVE_64BIT_ADDRESSES);
if (breg != 0)
macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t",
tempreg, tempreg, breg);
macro_build (&offset_expr, s, fmt, treg, BFD_RELOC_LO16, tempreg);
}
else if (mips_pic == NO_PIC)
{
/* If this is a reference to a GP relative symbol, and there
is no base register, we want
@ -5964,42 +5953,10 @@ macro (struct mips_cl_insn *ip)
<op> $treg,<sym>($tempreg) (BFD_RELOC_LO16)
For GP relative symbols in 64bit address space we can use
the same sequence as in 32bit address space.
If we have 64-bit addresses, as an optimization, for
addresses which are 32-bit constants (e.g. kseg0/kseg1
addresses) we fall back to the 32-bit address generation
mechanism since it is more efficient. Note that due to
the signed offset used by memory operations, the 32-bit
range is shifted down by 32768 here. This code should
probably attempt to generate 64-bit constants more
efficiently in general.
As an extension for architectures with 64-bit registers,
we don't truncate 64-bit addresses given as literal
constants down to 32 bits, to support existing practice
in the mips64 Linux (the kernel), that compiles source
files with -mabi=64, assembling them as o32 or n32 (with
-Wa,-32 or -Wa,-n32). This is not beautiful, but since
the whole kernel is loaded into a memory region that is
addressable with sign-extended 32-bit addresses, it is
wasteful to compute the upper 32 bits of every
non-literal address, that takes more space and time.
Some day this should probably be implemented as an
assembler option, such that the kernel doesn't have to
use such ugly hacks, even though it will still have to
end up converting the binary to ELF32 for a number of
platforms whose boot loaders don't support ELF64
binaries. */
if ((HAVE_64BIT_ADDRESSES
&& ! (offset_expr.X_op == O_constant
&& IS_SEXT_32BIT_NUM (offset_expr.X_add_number + 0x8000)))
|| (HAVE_64BIT_GPRS
&& offset_expr.X_op == O_constant
&& ! IS_SEXT_32BIT_NUM (offset_expr.X_add_number + 0x8000)))
the same sequence as in 32bit address space. */
if (HAVE_64BIT_SYMBOLS)
{
if (offset_expr.X_op == O_symbol
&& (valueT) offset_expr.X_add_number <= MAX_GPREL_OFFSET
if ((valueT) offset_expr.X_add_number <= MAX_GPREL_OFFSET
&& !nopic_need_relax (offset_expr.X_add_symbol, 1))
{
relax_start (offset_expr.X_add_symbol);
@ -6056,10 +6013,6 @@ macro (struct mips_cl_insn *ip)
break;
}
if (offset_expr.X_op == O_constant
&& ! IS_SEXT_32BIT_NUM (offset_expr.X_add_number + 0x8000))
as_bad (_("load/store address overflow (max 32 bits)"));
if (breg == 0)
{
if ((valueT) offset_expr.X_add_number <= MAX_GPREL_OFFSET
@ -10241,10 +10194,14 @@ struct option md_longopts[] =
#define OPTION_MNO_SHARED (OPTION_MISC_BASE + 13)
{"mshared", no_argument, NULL, OPTION_MSHARED},
{"mno-shared", no_argument, NULL, OPTION_MNO_SHARED},
#define OPTION_MSYM32 (OPTION_MISC_BASE + 14)
#define OPTION_MNO_SYM32 (OPTION_MISC_BASE + 15)
{"msym32", no_argument, NULL, OPTION_MSYM32},
{"mno-sym32", no_argument, NULL, OPTION_MNO_SYM32},
/* ELF-specific options. */
#ifdef OBJ_ELF
#define OPTION_ELF_BASE (OPTION_MISC_BASE + 14)
#define OPTION_ELF_BASE (OPTION_MISC_BASE + 16)
#define OPTION_CALL_SHARED (OPTION_ELF_BASE + 0)
{"KPIC", no_argument, NULL, OPTION_CALL_SHARED},
{"call_shared", no_argument, NULL, OPTION_CALL_SHARED},
@ -10465,6 +10422,14 @@ md_parse_option (int c, char *arg)
mips_in_shared = FALSE;
break;
case OPTION_MSYM32:
mips_opts.sym32 = TRUE;
break;
case OPTION_MNO_SYM32:
mips_opts.sym32 = FALSE;
break;
#ifdef OBJ_ELF
/* When generating ELF code, we permit -KPIC and -call_shared to
select SVR4_PIC, and -non_shared to select no PIC. This is
@ -11814,6 +11779,10 @@ s_mipsset (int x ATTRIBUTE_UNUSED)
free (s);
}
}
else if (strcmp (name, "sym32") == 0)
mips_opts.sym32 = TRUE;
else if (strcmp (name, "nosym32") == 0)
mips_opts.sym32 = FALSE;
else
{
as_warn (_("Tried to set unrecognized symbol: %s\n"), name);
@ -11880,7 +11849,7 @@ s_cpload (int ignore ATTRIBUTE_UNUSED)
/* If we need to produce a 64-bit address, we are better off using
the default instruction sequence. */
in_shared = mips_in_shared || HAVE_64BIT_ADDRESSES;
in_shared = mips_in_shared || HAVE_64BIT_SYMBOLS;
ex.X_op = O_symbol;
ex.X_add_symbol = symbol_find_or_make (in_shared ? "_gp_disp" : "_gp");
@ -11984,7 +11953,7 @@ s_cpsetup (int ignore ATTRIBUTE_UNUSED)
macro_build (NULL, "daddu", "d,v,t", mips_cpreturn_register,
mips_gp_register, 0);
if (mips_in_shared || HAVE_64BIT_ADDRESSES)
if (mips_in_shared || HAVE_64BIT_SYMBOLS)
{
macro_build (&ex_sym, "lui", "t,u", mips_gp_register,
-1, BFD_RELOC_GPREL16, BFD_RELOC_MIPS_SUB,
@ -14136,6 +14105,8 @@ MIPS options:\n\
-mfix-vr4120 work around certain VR4120 errata\n\
-mgp32 use 32-bit GPRs, regardless of the chosen ISA\n\
-mfp32 use 32-bit FPRs, regardless of the chosen ISA\n\
-mno-shared optimize output for executables\n\
-msym32 assume all symbols have 32-bit values\n\
-O0 remove unneeded NOPs, do not swap branches\n\
-O remove unneeded NOPs and swap branches\n\
--[no-]construct-floats [dis]allow floating point values to be constructed\n\

View file

@ -26,6 +26,7 @@ Assembly Language Programming'' in the same work.
* MIPS Object:: ECOFF object code
* MIPS Stabs:: Directives for debugging information
* MIPS ISA:: Directives to override the ISA level
* MIPS symbol sizes:: Directives to override the size of symbols
* MIPS autoextend:: Directives for extending MIPS 16 bit instructions
* MIPS insn:: Directive to mark data as an instruction
* MIPS option stack:: Directives to save and restore options
@ -197,6 +198,13 @@ identical to @samp{-march=@var{cpu}}.
Record which ABI the source code uses. The recognized arguments
are: @samp{32}, @samp{n32}, @samp{o64}, @samp{64} and @samp{eabi}.
@item -msym32
@itemx -mno-sym32
@cindex -msym32
@cindex -mno-sym32
Equivalent to adding @code{.set sym32} or @code{.set nosym32} to
the beginning of the assembler input. @xref{MIPS symbol sizes}.
@cindex @code{-nocpp} ignored (MIPS)
@item -nocpp
This option is ignored. It is accepted for command-line compatibility with
@ -297,6 +305,61 @@ not by traditional @sc{mips} debuggers (this enhancement is required to fully
support C++ debugging). These directives are primarily used by compilers, not
assembly language programmers!
@node MIPS symbol sizes
@section Directives to override the size of symbols
@cindex @code{.set sym32}
@cindex @code{.set nosym32}
The n64 ABI allows symbols to have any 64-bit value. Although this
provides a great deal of flexibility, it means that some macros have
much longer expansions than their 32-bit counterparts. For example,
the non-PIC expansion of @samp{dla $4,sym} is usually:
@smallexample
lui $4,%highest(sym)
lui $1,%hi(sym)
daddiu $4,$4,%higher(sym)
daddiu $1,$1,%lo(sym)
dsll32 $4,$4,0
daddu $4,$4,$1
@end smallexample
whereas the 32-bit expansion is simply:
@smallexample
lui $4,%hi(sym)
daddiu $4,$4,%lo(sym)
@end smallexample
n64 code is sometimes constructed in such a way that all symbolic
constants are known to have 32-bit values, and in such cases, it's
preferable to use the 32-bit expansion instead of the 64-bit
expansion.
You can use the @code{.set sym32} directive to tell the assembler
that, from this point on, all expressions of the form
@samp{@var{symbol}} or @samp{@var{symbol} + @var{offset}}
have 32-bit values. For example:
@smallexample
.set sym32
dla $4,sym
lw $4,sym+16
sw $4,sym+0x8000($4)
@end smallexample
will cause the assembler to treat @samp{sym}, @code{sym+16} and
@code{sym+0x8000} as 32-bit values. The handling of non-symbolic
addresses is not affected.
The directive @code{.set nosym32} ends a @code{.set sym32} block and
reverts to the normal behavior. It is also possible to change the
symbol size using the command-line options @option{-msym32} and
@option{-mno-sym32}.
These options and directives are always accepted, but at present,
they have no effect for anything other than n64.
@node MIPS ISA
@section Directives to override the ISA level

View file

@ -1,3 +1,11 @@
2005-03-04 Richard Sandiford <rsandifo@redhat.com>
* gas/mips/ldstla-{n32.s, n32.d, n32-shared.d}: Delete.
* gas/mips/ldstla-{n64.d, n64-shared.d}: Adjust expected output
for loads and stores from constant addresses.
* gas/mips/ldstla-{sym32.s, eabi64.d, n64-sym32.d}: New tests.
* gas/mips/mips.exp: Run them.
2005-03-03 Richard Sandiford <rsandifo@redhat.com>
* gas/mips/mips.exp: Move tls tests to main $elf block.

View file

@ -0,0 +1,657 @@
#objdump: -dr
#as: -mabi=eabi -mips3 -G8 -EB
#name: MIPS ld-st-la (EABI64)
#source: ldstla-sym32.s
.*file format .*
Disassembly .*:
0+00 <.*>:
#
# dla constants
#
.* li a0,0xa800
.* dsll32 a0,a0,0x10
.* li a0,0xa800
.* dsll32 a0,a0,0x10
.* daddu a0,a0,v1
.* lui a0,0x8000
.* lui a0,0x8000
.* daddu a0,a0,v1
.* lui a0,0x7fff
.* ori a0,a0,0x7ff8
.* lui a0,0x7fff
.* ori a0,a0,0x7ff8
.* daddu a0,a0,v1
.* lui a0,0x7fff
.* ori a0,a0,0xfff8
.* lui a0,0x7fff
.* ori a0,a0,0xfff8
.* daddu a0,a0,v1
.* lui a0,0x1234
.* ori a0,a0,0x5678
.* dsll a0,a0,0x10
.* ori a0,a0,0x9abc
.* dsll a0,a0,0x10
.* ori a0,a0,0xdef0
.* lui a0,0x1234
.* ori a0,a0,0x5678
.* dsll a0,a0,0x10
.* ori a0,a0,0x9abc
.* dsll a0,a0,0x10
.* ori a0,a0,0xdef0
.* daddu a0,a0,v1
#
# dla small_comm
#
.* daddiu a0,gp,0
.*: R_MIPS_GPREL16 small_comm
.* daddiu a0,gp,0
.*: R_MIPS_GPREL16 small_comm
.* daddu a0,a0,v1
.* daddiu a0,gp,3
.*: R_MIPS_GPREL16 small_comm
.* daddiu a0,gp,3
.*: R_MIPS_GPREL16 small_comm
.* daddu a0,a0,v1
#
# dla big_comm
#
.* lui a0,0x0
.*: R_MIPS_HI16 big_comm
.* d?addiu a0,a0,0
.*: R_MIPS_LO16 big_comm
.* lui a0,0x0
.*: R_MIPS_HI16 big_comm
.* d?addiu a0,a0,0
.*: R_MIPS_LO16 big_comm
.* daddu a0,a0,v1
.* lui a0,0x0
.*: R_MIPS_HI16 big_comm
.* d?addiu a0,a0,3
.*: R_MIPS_LO16 big_comm
.* lui a0,0x0
.*: R_MIPS_HI16 big_comm
.* d?addiu a0,a0,3
.*: R_MIPS_LO16 big_comm
.* daddu a0,a0,v1
#
# dla small_data
#
.* daddiu a0,gp,0
.*: R_MIPS_GPREL16 small_data
.* daddiu a0,gp,0
.*: R_MIPS_GPREL16 small_data
.* daddu a0,a0,v1
.* daddiu a0,gp,3
.*: R_MIPS_GPREL16 small_data
.* daddiu a0,gp,3
.*: R_MIPS_GPREL16 small_data
.* daddu a0,a0,v1
#
# dla big_data
#
.* lui a0,0x0
.*: R_MIPS_HI16 big_data
.* d?addiu a0,a0,0
.*: R_MIPS_LO16 big_data
.* lui a0,0x0
.*: R_MIPS_HI16 big_data
.* d?addiu a0,a0,0
.*: R_MIPS_LO16 big_data
.* daddu a0,a0,v1
.* lui a0,0x0
.*: R_MIPS_HI16 big_data
.* d?addiu a0,a0,3
.*: R_MIPS_LO16 big_data
.* lui a0,0x0
.*: R_MIPS_HI16 big_data
.* d?addiu a0,a0,3
.*: R_MIPS_LO16 big_data
.* daddu a0,a0,v1
#
# dla extern
#
.* lui a0,0x0
.*: R_MIPS_HI16 extern
.* d?addiu a0,a0,0
.*: R_MIPS_LO16 extern
.* lui a0,0x0
.*: R_MIPS_HI16 extern
.* d?addiu a0,a0,0
.*: R_MIPS_LO16 extern
.* daddu a0,a0,v1
.* lui a0,0x3
.*: R_MIPS_HI16 extern
.* d?addiu a0,a0,16384
.*: R_MIPS_LO16 extern
.* lui a0,0x3
.*: R_MIPS_HI16 extern
.* d?addiu a0,a0,16384
.*: R_MIPS_LO16 extern
.* daddu a0,a0,v1
.* lui a0,0xfffd
.*: R_MIPS_HI16 extern
.* d?addiu a0,a0,-16384
.*: R_MIPS_LO16 extern
.* lui a0,0xfffd
.*: R_MIPS_HI16 extern
.* d?addiu a0,a0,-16384
.*: R_MIPS_LO16 extern
.* daddu a0,a0,v1
#
# lw constants
#
.* li a0,0xa800
.* dsll32 a0,a0,0x10
.* lw a0,0\(a0\)
.* li a0,0xa800
.* dsll32 a0,a0,0x10
.* daddu a0,a0,v1
.* lw a0,0\(a0\)
.* lui a0,0x8000
.* lw a0,0\(a0\)
.* lui a0,0x8000
.* daddu a0,a0,v1
.* lw a0,0\(a0\)
.* lui a0,0x7fff
.* lw a0,32760\(a0\)
.* lui a0,0x7fff
.* daddu a0,a0,v1
.* lw a0,32760\(a0\)
.* li a0,0x8000
.* dsll a0,a0,0x10
.* lw a0,-8\(a0\)
.* li a0,0x8000
.* dsll a0,a0,0x10
.* daddu a0,a0,v1
.* lw a0,-8\(a0\)
.* lui a0,0x1234
.* ori a0,a0,0x5678
.* dsll a0,a0,0x10
.* ori a0,a0,0x9abd
.* dsll a0,a0,0x10
.* lw a0,-8464\(a0\)
.* lui a0,0x1234
.* ori a0,a0,0x5678
.* dsll a0,a0,0x10
.* ori a0,a0,0x9abd
.* dsll a0,a0,0x10
.* daddu a0,a0,v1
.* lw a0,-8464\(a0\)
#
# lw small_comm
#
.* lw a0,0\(gp\)
.*: R_MIPS_GPREL16 small_comm
.* daddu a0,v1,gp
.* lw a0,0\(a0\)
.*: R_MIPS_GPREL16 small_comm
.* lw a0,3\(gp\)
.*: R_MIPS_GPREL16 small_comm
.* daddu a0,v1,gp
.* lw a0,3\(a0\)
.*: R_MIPS_GPREL16 small_comm
#
# lw big_comm
#
.* lui a0,0x0
.*: R_MIPS_HI16 big_comm
.* lw a0,0\(a0\)
.*: R_MIPS_LO16 big_comm
.* lui a0,0x0
.*: R_MIPS_HI16 big_comm
.* daddu a0,a0,v1
.* lw a0,0\(a0\)
.*: R_MIPS_LO16 big_comm
.* lui a0,0x0
.*: R_MIPS_HI16 big_comm
.* lw a0,3\(a0\)
.*: R_MIPS_LO16 big_comm
.* lui a0,0x0
.*: R_MIPS_HI16 big_comm
.* daddu a0,a0,v1
.* lw a0,3\(a0\)
.*: R_MIPS_LO16 big_comm
#
# lw small_data
#
.* lw a0,0\(gp\)
.*: R_MIPS_GPREL16 small_data
.* daddu a0,v1,gp
.* lw a0,0\(a0\)
.*: R_MIPS_GPREL16 small_data
.* lw a0,3\(gp\)
.*: R_MIPS_GPREL16 small_data
.* daddu a0,v1,gp
.* lw a0,3\(a0\)
.*: R_MIPS_GPREL16 small_data
#
# lw big_data
#
.* lui a0,0x0
.*: R_MIPS_HI16 big_data
.* lw a0,0\(a0\)
.*: R_MIPS_LO16 big_data
.* lui a0,0x0
.*: R_MIPS_HI16 big_data
.* daddu a0,a0,v1
.* lw a0,0\(a0\)
.*: R_MIPS_LO16 big_data
.* lui a0,0x0
.*: R_MIPS_HI16 big_data
.* lw a0,3\(a0\)
.*: R_MIPS_LO16 big_data
.* lui a0,0x0
.*: R_MIPS_HI16 big_data
.* daddu a0,a0,v1
.* lw a0,3\(a0\)
.*: R_MIPS_LO16 big_data
#
# lw extern
#
.* lui a0,0x0
.*: R_MIPS_HI16 extern
.* lw a0,0\(a0\)
.*: R_MIPS_LO16 extern
.* lui a0,0x0
.*: R_MIPS_HI16 extern
.* daddu a0,a0,v1
.* lw a0,0\(a0\)
.*: R_MIPS_LO16 extern
.* lui a0,0x3
.*: R_MIPS_HI16 extern
.* lw a0,16384\(a0\)
.*: R_MIPS_LO16 extern
.* lui a0,0x3
.*: R_MIPS_HI16 extern
.* daddu a0,a0,v1
.* lw a0,16384\(a0\)
.*: R_MIPS_LO16 extern
.* lui a0,0xfffd
.*: R_MIPS_HI16 extern
.* lw a0,-16384\(a0\)
.*: R_MIPS_LO16 extern
.* lui a0,0xfffd
.*: R_MIPS_HI16 extern
.* daddu a0,a0,v1
.* lw a0,-16384\(a0\)
.*: R_MIPS_LO16 extern
#
# sw constants
#
.* li at,0xa800
.* dsll32 at,at,0x10
.* sw a0,0\(at\)
.* li at,0xa800
.* dsll32 at,at,0x10
.* daddu at,at,v1
.* sw a0,0\(at\)
.* lui at,0x8000
.* sw a0,0\(at\)
.* lui at,0x8000
.* daddu at,at,v1
.* sw a0,0\(at\)
.* lui at,0x7fff
.* sw a0,32760\(at\)
.* lui at,0x7fff
.* daddu at,at,v1
.* sw a0,32760\(at\)
.* li at,0x8000
.* dsll at,at,0x10
.* sw a0,-8\(at\)
.* li at,0x8000
.* dsll at,at,0x10
.* daddu at,at,v1
.* sw a0,-8\(at\)
.* lui at,0x1234
.* ori at,at,0x5678
.* dsll at,at,0x10
.* ori at,at,0x9abd
.* dsll at,at,0x10
.* sw a0,-8464\(at\)
.* lui at,0x1234
.* ori at,at,0x5678
.* dsll at,at,0x10
.* ori at,at,0x9abd
.* dsll at,at,0x10
.* daddu at,at,v1
.* sw a0,-8464\(at\)
#
# sw small_comm
#
.* sw a0,0\(gp\)
.*: R_MIPS_GPREL16 small_comm
.* daddu at,v1,gp
.* sw a0,0\(at\)
.*: R_MIPS_GPREL16 small_comm
.* sw a0,3\(gp\)
.*: R_MIPS_GPREL16 small_comm
.* daddu at,v1,gp
.* sw a0,3\(at\)
.*: R_MIPS_GPREL16 small_comm
#
# sw big_comm
#
.* lui at,0x0
.*: R_MIPS_HI16 big_comm
.* sw a0,0\(at\)
.*: R_MIPS_LO16 big_comm
.* lui at,0x0
.*: R_MIPS_HI16 big_comm
.* daddu at,at,v1
.* sw a0,0\(at\)
.*: R_MIPS_LO16 big_comm
.* lui at,0x0
.*: R_MIPS_HI16 big_comm
.* sw a0,3\(at\)
.*: R_MIPS_LO16 big_comm
.* lui at,0x0
.*: R_MIPS_HI16 big_comm
.* daddu at,at,v1
.* sw a0,3\(at\)
.*: R_MIPS_LO16 big_comm
#
# sw small_data
#
.* sw a0,0\(gp\)
.*: R_MIPS_GPREL16 small_data
.* daddu at,v1,gp
.* sw a0,0\(at\)
.*: R_MIPS_GPREL16 small_data
.* sw a0,3\(gp\)
.*: R_MIPS_GPREL16 small_data
.* daddu at,v1,gp
.* sw a0,3\(at\)
.*: R_MIPS_GPREL16 small_data
#
# sw big_data
#
.* lui at,0x0
.*: R_MIPS_HI16 big_data
.* sw a0,0\(at\)
.*: R_MIPS_LO16 big_data
.* lui at,0x0
.*: R_MIPS_HI16 big_data
.* daddu at,at,v1
.* sw a0,0\(at\)
.*: R_MIPS_LO16 big_data
.* lui at,0x0
.*: R_MIPS_HI16 big_data
.* sw a0,3\(at\)
.*: R_MIPS_LO16 big_data
.* lui at,0x0
.*: R_MIPS_HI16 big_data
.* daddu at,at,v1
.* sw a0,3\(at\)
.*: R_MIPS_LO16 big_data
#
# sw extern
#
.* lui at,0x0
.*: R_MIPS_HI16 extern
.* sw a0,0\(at\)
.*: R_MIPS_LO16 extern
.* lui at,0x0
.*: R_MIPS_HI16 extern
.* daddu at,at,v1
.* sw a0,0\(at\)
.*: R_MIPS_LO16 extern
.* lui at,0x3
.*: R_MIPS_HI16 extern
.* sw a0,16384\(at\)
.*: R_MIPS_LO16 extern
.* lui at,0x3
.*: R_MIPS_HI16 extern
.* daddu at,at,v1
.* sw a0,16384\(at\)
.*: R_MIPS_LO16 extern
.* lui at,0xfffd
.*: R_MIPS_HI16 extern
.* sw a0,-16384\(at\)
.*: R_MIPS_LO16 extern
.* lui at,0xfffd
.*: R_MIPS_HI16 extern
.* daddu at,at,v1
.* sw a0,-16384\(at\)
.*: R_MIPS_LO16 extern
#
# usw constants
#
.* li at,0xa800
.* dsll32 at,at,0x10
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* li at,0xa800
.* dsll32 at,at,0x10
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x8000
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x8000
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x7fff
.* ori at,at,0x7ff8
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x7fff
.* ori at,at,0x7ff8
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x7fff
.* ori at,at,0xfff8
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x7fff
.* ori at,at,0xfff8
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x1234
.* ori at,at,0x5678
.* dsll at,at,0x10
.* ori at,at,0x9abc
.* dsll at,at,0x10
.* ori at,at,0xdef0
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x1234
.* ori at,at,0x5678
.* dsll at,at,0x10
.* ori at,at,0x9abc
.* dsll at,at,0x10
.* ori at,at,0xdef0
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
#
# usw small_comm
#
.* daddiu at,gp,0
.*: R_MIPS_GPREL16 small_comm
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* daddiu at,gp,0
.*: R_MIPS_GPREL16 small_comm
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* daddiu at,gp,3
.*: R_MIPS_GPREL16 small_comm
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* daddiu at,gp,3
.*: R_MIPS_GPREL16 small_comm
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
#
# usw big_comm
#
.* lui at,0x0
.*: R_MIPS_HI16 big_comm
.* d?addiu at,at,0
.*: R_MIPS_LO16 big_comm
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x0
.*: R_MIPS_HI16 big_comm
.* d?addiu at,at,0
.*: R_MIPS_LO16 big_comm
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x0
.*: R_MIPS_HI16 big_comm
.* d?addiu at,at,3
.*: R_MIPS_LO16 big_comm
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x0
.*: R_MIPS_HI16 big_comm
.* d?addiu at,at,3
.*: R_MIPS_LO16 big_comm
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
#
# usw small_data
#
.* daddiu at,gp,0
.*: R_MIPS_GPREL16 small_data
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* daddiu at,gp,0
.*: R_MIPS_GPREL16 small_data
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* daddiu at,gp,3
.*: R_MIPS_GPREL16 small_data
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* daddiu at,gp,3
.*: R_MIPS_GPREL16 small_data
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
#
# usw big_data
#
.* lui at,0x0
.*: R_MIPS_HI16 big_data
.* d?addiu at,at,0
.*: R_MIPS_LO16 big_data
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x0
.*: R_MIPS_HI16 big_data
.* d?addiu at,at,0
.*: R_MIPS_LO16 big_data
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x0
.*: R_MIPS_HI16 big_data
.* d?addiu at,at,3
.*: R_MIPS_LO16 big_data
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x0
.*: R_MIPS_HI16 big_data
.* d?addiu at,at,3
.*: R_MIPS_LO16 big_data
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
#
# usw extern
#
.* lui at,0x0
.*: R_MIPS_HI16 extern
.* d?addiu at,at,0
.*: R_MIPS_LO16 extern
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x0
.*: R_MIPS_HI16 extern
.* d?addiu at,at,0
.*: R_MIPS_LO16 extern
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x3
.*: R_MIPS_HI16 extern
.* d?addiu at,at,16384
.*: R_MIPS_LO16 extern
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0x3
.*: R_MIPS_HI16 extern
.* d?addiu at,at,16384
.*: R_MIPS_LO16 extern
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0xfffd
.*: R_MIPS_HI16 extern
.* d?addiu at,at,-16384
.*: R_MIPS_LO16 extern
.* swl a0,0\(at\)
.* swr a0,3\(at\)
.* lui at,0xfffd
.*: R_MIPS_HI16 extern
.* d?addiu at,at,-16384
.*: R_MIPS_LO16 extern
.* daddu at,at,v1
.* swl a0,0\(at\)
.* swr a0,3\(at\)
#
# with sym32 off (has no effect for EABI64)
#
.* lui a0,0x0
.*: R_MIPS_HI16 extern
.* daddiu a0,a0,0
.*: R_MIPS_LO16 extern
.* lui a0,0x0
.*: R_MIPS_HI16 extern
.* lw a0,0\(a0\)
.*: R_MIPS_LO16 extern
.* lui at,0x0
.*: R_MIPS_HI16 extern
.* sw a0,0\(at\)
.*: R_MIPS_LO16 extern
.* lui at,0x0
.*: R_MIPS_HI16 extern
.* daddiu at,at,0
.*: R_MIPS_LO16 extern
.* swl a0,0\(at\)
.* swr a0,3\(at\)
#
# ...and back on again
#
.* lui a0,0x0
.*: R_MIPS_HI16 extern
.* daddiu a0,a0,0
.*: R_MIPS_LO16 extern
.* lui a0,0x0
.*: R_MIPS_HI16 extern
.* lw a0,0\(a0\)
.*: R_MIPS_LO16 extern
.* lui at,0x0
.*: R_MIPS_HI16 extern
.* sw a0,0\(at\)
.*: R_MIPS_LO16 extern
.* lui at,0x0
.*: R_MIPS_HI16 extern
.* daddiu at,at,0
.*: R_MIPS_LO16 extern
.* swl a0,0\(at\)
.* swr a0,3\(at\)
#pass

View file

@ -1,154 +0,0 @@
#objdump: -d
#as: -KPIC -n32
#name: MIPS ld-st-la constants (ABI n32, shared)
#source: ldstla-n32.s
.*: +file format elf32-n.*mips
Disassembly of section \.text:
00000000 <\.text>:
0: 3c020123 lui v0,0x123
4: 3c0189ac lui at,0x89ac
8: 64424568 daddiu v0,v0,17768
c: 0023082d daddu at,at,v1
10: 0002103c dsll32 v0,v0,0x0
14: 0041102d daddu v0,v0,at
18: dc42cdef ld v0,-12817\(v0\)
1c: 3c02abce lui v0,0xabce
20: 3c012345 lui at,0x2345
24: 6442ef01 daddiu v0,v0,-4351
28: 0023082d daddu at,at,v1
2c: 0002103c dsll32 v0,v0,0x0
30: 0041102d daddu v0,v0,at
34: dc426789 ld v0,26505\(v0\)
38: 3c028000 lui v0,0x8000
3c: 00431021 addu v0,v0,v1
40: dc420000 ld v0,0\(v0\)
44: 3c020000 lui v0,0x0
48: 3c010000 lui at,0x0
4c: 6442ffff daddiu v0,v0,-1
50: 0023082d daddu at,at,v1
54: 0002103c dsll32 v0,v0,0x0
58: 0041102d daddu v0,v0,at
5c: dc420000 ld v0,0\(v0\)
60: 3c020000 lui v0,0x0
64: 3c01abce lui at,0xabce
68: 64420001 daddiu v0,v0,1
6c: 0023082d daddu at,at,v1
70: 0002103c dsll32 v0,v0,0x0
74: 0041102d daddu v0,v0,at
78: dc42ef01 ld v0,-4351\(v0\)
7c: 3c020123 lui v0,0x123
80: 00431021 addu v0,v0,v1
84: dc424567 ld v0,17767\(v0\)
88: 3c010123 lui at,0x123
8c: 64214568 daddiu at,at,17768
90: 00010c38 dsll at,at,0x10
94: 642189ac daddiu at,at,-30292
98: 00010c38 dsll at,at,0x10
9c: 0023082d daddu at,at,v1
a0: fc22cdef sd v0,-12817\(at\)
a4: 3c01abce lui at,0xabce
a8: 6421ef01 daddiu at,at,-4351
ac: 00010c38 dsll at,at,0x10
b0: 64212345 daddiu at,at,9029
b4: 00010c38 dsll at,at,0x10
b8: 0023082d daddu at,at,v1
bc: fc226789 sd v0,26505\(at\)
c0: 3c018000 lui at,0x8000
c4: 00230821 addu at,at,v1
c8: fc220000 sd v0,0\(at\)
cc: 3c010000 lui at,0x0
d0: 6421ffff daddiu at,at,-1
d4: 00010c38 dsll at,at,0x10
d8: 64210000 daddiu at,at,0
dc: 00010c38 dsll at,at,0x10
e0: 0023082d daddu at,at,v1
e4: fc220000 sd v0,0\(at\)
e8: 3c010000 lui at,0x0
ec: 64210001 daddiu at,at,1
f0: 00010c38 dsll at,at,0x10
f4: 6421abce daddiu at,at,-21554
f8: 00010c38 dsll at,at,0x10
fc: 0023082d daddu at,at,v1
100: fc22ef01 sd v0,-4351\(at\)
104: 3c010123 lui at,0x123
108: 00230821 addu at,at,v1
10c: fc224567 sd v0,17767\(at\)
110: 3c020123 lui v0,0x123
114: 3c0189ac lui at,0x89ac
118: 64424568 daddiu v0,v0,17768
11c: 0023082d daddu at,at,v1
120: 0002103c dsll32 v0,v0,0x0
124: 0041102d daddu v0,v0,at
128: 8c42cdef lw v0,-12817\(v0\)
12c: 3c02abce lui v0,0xabce
130: 3c012345 lui at,0x2345
134: 6442ef01 daddiu v0,v0,-4351
138: 0023082d daddu at,at,v1
13c: 0002103c dsll32 v0,v0,0x0
140: 0041102d daddu v0,v0,at
144: 8c426789 lw v0,26505\(v0\)
148: 3c028000 lui v0,0x8000
14c: 00431021 addu v0,v0,v1
150: 8c420000 lw v0,0\(v0\)
154: 3c020000 lui v0,0x0
158: 3c010000 lui at,0x0
15c: 6442ffff daddiu v0,v0,-1
160: 0023082d daddu at,at,v1
164: 0002103c dsll32 v0,v0,0x0
168: 0041102d daddu v0,v0,at
16c: 8c420000 lw v0,0\(v0\)
170: 3c020000 lui v0,0x0
174: 3c01abce lui at,0xabce
178: 64420001 daddiu v0,v0,1
17c: 0023082d daddu at,at,v1
180: 0002103c dsll32 v0,v0,0x0
184: 0041102d daddu v0,v0,at
188: 8c42ef01 lw v0,-4351\(v0\)
18c: 3c020123 lui v0,0x123
190: 00431021 addu v0,v0,v1
194: 8c424567 lw v0,17767\(v0\)
198: 3c010123 lui at,0x123
19c: 64214568 daddiu at,at,17768
1a0: 00010c38 dsll at,at,0x10
1a4: 642189ac daddiu at,at,-30292
1a8: 00010c38 dsll at,at,0x10
1ac: 0023082d daddu at,at,v1
1b0: ac22cdef sw v0,-12817\(at\)
1b4: 3c01abce lui at,0xabce
1b8: 6421ef01 daddiu at,at,-4351
1bc: 00010c38 dsll at,at,0x10
1c0: 64212345 daddiu at,at,9029
1c4: 00010c38 dsll at,at,0x10
1c8: 0023082d daddu at,at,v1
1cc: ac226789 sw v0,26505\(at\)
1d0: 3c018000 lui at,0x8000
1d4: 00230821 addu at,at,v1
1d8: ac220000 sw v0,0\(at\)
1dc: 3c010000 lui at,0x0
1e0: 6421ffff daddiu at,at,-1
1e4: 00010c38 dsll at,at,0x10
1e8: 64210000 daddiu at,at,0
1ec: 00010c38 dsll at,at,0x10
1f0: 0023082d daddu at,at,v1
1f4: ac220000 sw v0,0\(at\)
1f8: 3c010000 lui at,0x0
1fc: 64210001 daddiu at,at,1
200: 00010c38 dsll at,at,0x10
204: 6421abce daddiu at,at,-21554
208: 00010c38 dsll at,at,0x10
20c: 0023082d daddu at,at,v1
210: ac22ef01 sw v0,-4351\(at\)
214: 3c010123 lui at,0x123
218: 00230821 addu at,at,v1
21c: ac224567 sw v0,17767\(at\)
220: 3c028000 lui v0,0x8000
224: 3c020123 lui v0,0x123
228: 34424567 ori v0,v0,0x4567
22c: 3c027fff lui v0,0x7fff
230: 3442ffff ori v0,v0,0xffff
234: 3c020123 lui v0,0x123
238: 34424567 ori v0,v0,0x4567
\.\.\.

View file

@ -1,154 +0,0 @@
#objdump: -d
#as: -n32
#name: MIPS ld-st-la constants (ABI n32)
#source: ldstla-n32.s
.*: +file format elf32-n.*mips
Disassembly of section \.text:
00000000 <\.text>:
0: 3c020123 lui v0,0x123
4: 3c0189ac lui at,0x89ac
8: 64424568 daddiu v0,v0,17768
c: 0023082d daddu at,at,v1
10: 0002103c dsll32 v0,v0,0x0
14: 0041102d daddu v0,v0,at
18: dc42cdef ld v0,-12817\(v0\)
1c: 3c02abce lui v0,0xabce
20: 3c012345 lui at,0x2345
24: 6442ef01 daddiu v0,v0,-4351
28: 0023082d daddu at,at,v1
2c: 0002103c dsll32 v0,v0,0x0
30: 0041102d daddu v0,v0,at
34: dc426789 ld v0,26505\(v0\)
38: 3c028000 lui v0,0x8000
3c: 00431021 addu v0,v0,v1
40: dc420000 ld v0,0\(v0\)
44: 3c020000 lui v0,0x0
48: 3c010000 lui at,0x0
4c: 6442ffff daddiu v0,v0,-1
50: 0023082d daddu at,at,v1
54: 0002103c dsll32 v0,v0,0x0
58: 0041102d daddu v0,v0,at
5c: dc420000 ld v0,0\(v0\)
60: 3c020000 lui v0,0x0
64: 3c01abce lui at,0xabce
68: 64420001 daddiu v0,v0,1
6c: 0023082d daddu at,at,v1
70: 0002103c dsll32 v0,v0,0x0
74: 0041102d daddu v0,v0,at
78: dc42ef01 ld v0,-4351\(v0\)
7c: 3c020123 lui v0,0x123
80: 00431021 addu v0,v0,v1
84: dc424567 ld v0,17767\(v0\)
88: 3c010123 lui at,0x123
8c: 64214568 daddiu at,at,17768
90: 00010c38 dsll at,at,0x10
94: 642189ac daddiu at,at,-30292
98: 00010c38 dsll at,at,0x10
9c: 0023082d daddu at,at,v1
a0: fc22cdef sd v0,-12817\(at\)
a4: 3c01abce lui at,0xabce
a8: 6421ef01 daddiu at,at,-4351
ac: 00010c38 dsll at,at,0x10
b0: 64212345 daddiu at,at,9029
b4: 00010c38 dsll at,at,0x10
b8: 0023082d daddu at,at,v1
bc: fc226789 sd v0,26505\(at\)
c0: 3c018000 lui at,0x8000
c4: 00230821 addu at,at,v1
c8: fc220000 sd v0,0\(at\)
cc: 3c010000 lui at,0x0
d0: 6421ffff daddiu at,at,-1
d4: 00010c38 dsll at,at,0x10
d8: 64210000 daddiu at,at,0
dc: 00010c38 dsll at,at,0x10
e0: 0023082d daddu at,at,v1
e4: fc220000 sd v0,0\(at\)
e8: 3c010000 lui at,0x0
ec: 64210001 daddiu at,at,1
f0: 00010c38 dsll at,at,0x10
f4: 6421abce daddiu at,at,-21554
f8: 00010c38 dsll at,at,0x10
fc: 0023082d daddu at,at,v1
100: fc22ef01 sd v0,-4351\(at\)
104: 3c010123 lui at,0x123
108: 00230821 addu at,at,v1
10c: fc224567 sd v0,17767\(at\)
110: 3c020123 lui v0,0x123
114: 3c0189ac lui at,0x89ac
118: 64424568 daddiu v0,v0,17768
11c: 0023082d daddu at,at,v1
120: 0002103c dsll32 v0,v0,0x0
124: 0041102d daddu v0,v0,at
128: 8c42cdef lw v0,-12817\(v0\)
12c: 3c02abce lui v0,0xabce
130: 3c012345 lui at,0x2345
134: 6442ef01 daddiu v0,v0,-4351
138: 0023082d daddu at,at,v1
13c: 0002103c dsll32 v0,v0,0x0
140: 0041102d daddu v0,v0,at
144: 8c426789 lw v0,26505\(v0\)
148: 3c028000 lui v0,0x8000
14c: 00431021 addu v0,v0,v1
150: 8c420000 lw v0,0\(v0\)
154: 3c020000 lui v0,0x0
158: 3c010000 lui at,0x0
15c: 6442ffff daddiu v0,v0,-1
160: 0023082d daddu at,at,v1
164: 0002103c dsll32 v0,v0,0x0
168: 0041102d daddu v0,v0,at
16c: 8c420000 lw v0,0\(v0\)
170: 3c020000 lui v0,0x0
174: 3c01abce lui at,0xabce
178: 64420001 daddiu v0,v0,1
17c: 0023082d daddu at,at,v1
180: 0002103c dsll32 v0,v0,0x0
184: 0041102d daddu v0,v0,at
188: 8c42ef01 lw v0,-4351\(v0\)
18c: 3c020123 lui v0,0x123
190: 00431021 addu v0,v0,v1
194: 8c424567 lw v0,17767\(v0\)
198: 3c010123 lui at,0x123
19c: 64214568 daddiu at,at,17768
1a0: 00010c38 dsll at,at,0x10
1a4: 642189ac daddiu at,at,-30292
1a8: 00010c38 dsll at,at,0x10
1ac: 0023082d daddu at,at,v1
1b0: ac22cdef sw v0,-12817\(at\)
1b4: 3c01abce lui at,0xabce
1b8: 6421ef01 daddiu at,at,-4351
1bc: 00010c38 dsll at,at,0x10
1c0: 64212345 daddiu at,at,9029
1c4: 00010c38 dsll at,at,0x10
1c8: 0023082d daddu at,at,v1
1cc: ac226789 sw v0,26505\(at\)
1d0: 3c018000 lui at,0x8000
1d4: 00230821 addu at,at,v1
1d8: ac220000 sw v0,0\(at\)
1dc: 3c010000 lui at,0x0
1e0: 6421ffff daddiu at,at,-1
1e4: 00010c38 dsll at,at,0x10
1e8: 64210000 daddiu at,at,0
1ec: 00010c38 dsll at,at,0x10
1f0: 0023082d daddu at,at,v1
1f4: ac220000 sw v0,0\(at\)
1f8: 3c010000 lui at,0x0
1fc: 64210001 daddiu at,at,1
200: 00010c38 dsll at,at,0x10
204: 6421abce daddiu at,at,-21554
208: 00010c38 dsll at,at,0x10
20c: 0023082d daddu at,at,v1
210: ac22ef01 sw v0,-4351\(at\)
214: 3c010123 lui at,0x123
218: 00230821 addu at,at,v1
21c: ac224567 sw v0,17767\(at\)
220: 3c028000 lui v0,0x8000
224: 3c020123 lui v0,0x123
228: 34424567 ori v0,v0,0x4567
22c: 3c027fff lui v0,0x7fff
230: 3442ffff ori v0,v0,0xffff
234: 3c020123 lui v0,0x123
238: 34424567 ori v0,v0,0x4567
\.\.\.

View file

@ -1,35 +0,0 @@
.text
ld $2, 0x0123456789abcdef($3)
ld $2, 0xabcdef0123456789($3)
ld $2, 0xffffffff80000000($3)
ld $2, 0xffffffff00000000($3)
ld $2, 0xabcdef01($3)
ld $2, 0x01234567($3)
sd $2, 0x0123456789abcdef($3)
sd $2, 0xabcdef0123456789($3)
sd $2, 0xffffffff80000000($3)
sd $2, 0xffffffff00000000($3)
sd $2, 0xabcdef01($3)
sd $2, 0x01234567($3)
lw $2, 0x0123456789abcdef($3)
lw $2, 0xabcdef0123456789($3)
lw $2, 0xffffffff80000000($3)
lw $2, 0xffffffff00000000($3)
lw $2, 0xabcdef01($3)
lw $2, 0x01234567($3)
sw $2, 0x0123456789abcdef($3)
sw $2, 0xabcdef0123456789($3)
sw $2, 0xffffffff80000000($3)
sw $2, 0xffffffff00000000($3)
sw $2, 0xabcdef01($3)
sw $2, 0x01234567($3)
dla $2, 0xffffffff80000000
dla $2, 0x01234567
la $2, 0x7fffffff
la $2, 0x01234567
.space 8

View file

@ -9,173 +9,149 @@ Disassembly of section \.text:
0000000000000000 <\.text>:
0: 3c020123 lui v0,0x123
4: 3c0189ac lui at,0x89ac
8: 64424568 daddiu v0,v0,17768
c: 0023082d daddu at,at,v1
10: 0002103c dsll32 v0,v0,0x0
14: 0041102d daddu v0,v0,at
4: 34424567 ori v0,v0,0x4567
8: 00021438 dsll v0,v0,0x10
c: 344289ac ori v0,v0,0x89ac
10: 00021438 dsll v0,v0,0x10
14: 0043102d daddu v0,v0,v1
18: dc42cdef ld v0,-12817\(v0\)
1c: 3c02abce lui v0,0xabce
20: 3c012345 lui at,0x2345
24: 6442ef01 daddiu v0,v0,-4351
28: 0023082d daddu at,at,v1
2c: 0002103c dsll32 v0,v0,0x0
30: 0041102d daddu v0,v0,at
1c: 3c02abcd lui v0,0xabcd
20: 3442ef01 ori v0,v0,0xef01
24: 00021438 dsll v0,v0,0x10
28: 34422345 ori v0,v0,0x2345
2c: 00021438 dsll v0,v0,0x10
30: 0043102d daddu v0,v0,v1
34: dc426789 ld v0,26505\(v0\)
38: 3c028000 lui v0,0x8000
3c: 0043102d daddu v0,v0,v1
40: dc420000 ld v0,0\(v0\)
44: 3c020000 lui v0,0x0
48: 3c010000 lui at,0x0
4c: 6442ffff daddiu v0,v0,-1
50: 0023082d daddu at,at,v1
54: 0002103c dsll32 v0,v0,0x0
58: 0041102d daddu v0,v0,at
5c: dc420000 ld v0,0\(v0\)
60: 3c028000 lui v0,0x8000
64: 0043102d daddu v0,v0,v1
68: dc42ffff ld v0,-1\(v0\)
6c: 3c020000 lui v0,0x0
70: 3c01abce lui at,0xabce
74: 64420001 daddiu v0,v0,1
78: 0023082d daddu at,at,v1
7c: 0002103c dsll32 v0,v0,0x0
80: 0041102d daddu v0,v0,at
84: dc42ef01 ld v0,-4351\(v0\)
88: 3c020123 lui v0,0x123
8c: 0043102d daddu v0,v0,v1
90: dc424567 ld v0,17767\(v0\)
94: 3c010123 lui at,0x123
98: 64214568 daddiu at,at,17768
9c: 00010c38 dsll at,at,0x10
a0: 642189ac daddiu at,at,-30292
a4: 00010c38 dsll at,at,0x10
a8: 0023082d daddu at,at,v1
ac: fc22cdef sd v0,-12817\(at\)
b0: 3c01abce lui at,0xabce
b4: 6421ef01 daddiu at,at,-4351
b8: 00010c38 dsll at,at,0x10
bc: 64212345 daddiu at,at,9029
c0: 00010c38 dsll at,at,0x10
c4: 0023082d daddu at,at,v1
c8: fc226789 sd v0,26505\(at\)
cc: 3c018000 lui at,0x8000
d0: 0023082d daddu at,at,v1
d4: fc220000 sd v0,0\(at\)
d8: 3c010000 lui at,0x0
dc: 6421ffff daddiu at,at,-1
44: 2402ffff li v0,-1
48: 0002103c dsll32 v0,v0,0x0
4c: 0043102d daddu v0,v0,v1
50: dc420000 ld v0,0\(v0\)
54: 3c028000 lui v0,0x8000
58: 0043102d daddu v0,v0,v1
5c: dc42ffff ld v0,-1\(v0\)
60: 3402abce li v0,0xabce
64: 00021438 dsll v0,v0,0x10
68: 0043102d daddu v0,v0,v1
6c: dc42ef01 ld v0,-4351\(v0\)
70: 3c020123 lui v0,0x123
74: 0043102d daddu v0,v0,v1
78: dc424567 ld v0,17767\(v0\)
7c: 3c010123 lui at,0x123
80: 34214567 ori at,at,0x4567
84: 00010c38 dsll at,at,0x10
88: 342189ac ori at,at,0x89ac
8c: 00010c38 dsll at,at,0x10
90: 0023082d daddu at,at,v1
94: fc22cdef sd v0,-12817\(at\)
98: 3c01abcd lui at,0xabcd
9c: 3421ef01 ori at,at,0xef01
a0: 00010c38 dsll at,at,0x10
a4: 34212345 ori at,at,0x2345
a8: 00010c38 dsll at,at,0x10
ac: 0023082d daddu at,at,v1
b0: fc226789 sd v0,26505\(at\)
b4: 3c018000 lui at,0x8000
b8: 0023082d daddu at,at,v1
bc: fc220000 sd v0,0\(at\)
c0: 2401ffff li at,-1
c4: 0001083c dsll32 at,at,0x0
c8: 0023082d daddu at,at,v1
cc: fc220000 sd v0,0\(at\)
d0: 3c018000 lui at,0x8000
d4: 0023082d daddu at,at,v1
d8: fc22ffff sd v0,-1\(at\)
dc: 3401abce li at,0xabce
e0: 00010c38 dsll at,at,0x10
e4: 64210000 daddiu at,at,0
e8: 00010c38 dsll at,at,0x10
ec: 0023082d daddu at,at,v1
f0: fc220000 sd v0,0\(at\)
f4: 3c018000 lui at,0x8000
f8: 0023082d daddu at,at,v1
fc: fc22ffff sd v0,-1\(at\)
100: 3c010000 lui at,0x0
104: 64210001 daddiu at,at,1
108: 00010c38 dsll at,at,0x10
10c: 6421abce daddiu at,at,-21554
110: 00010c38 dsll at,at,0x10
114: 0023082d daddu at,at,v1
118: fc22ef01 sd v0,-4351\(at\)
11c: 3c010123 lui at,0x123
120: 0023082d daddu at,at,v1
124: fc224567 sd v0,17767\(at\)
128: 3c020123 lui v0,0x123
12c: 3c0189ac lui at,0x89ac
130: 64424568 daddiu v0,v0,17768
134: 0023082d daddu at,at,v1
138: 0002103c dsll32 v0,v0,0x0
13c: 0041102d daddu v0,v0,at
140: 8c42cdef lw v0,-12817\(v0\)
144: 3c02abce lui v0,0xabce
148: 3c012345 lui at,0x2345
14c: 6442ef01 daddiu v0,v0,-4351
150: 0023082d daddu at,at,v1
154: 0002103c dsll32 v0,v0,0x0
158: 0041102d daddu v0,v0,at
15c: 8c426789 lw v0,26505\(v0\)
160: 3c028000 lui v0,0x8000
164: 0043102d daddu v0,v0,v1
168: 8c420000 lw v0,0\(v0\)
16c: 3c020000 lui v0,0x0
170: 3c010000 lui at,0x0
174: 6442ffff daddiu v0,v0,-1
178: 0023082d daddu at,at,v1
17c: 0002103c dsll32 v0,v0,0x0
180: 0041102d daddu v0,v0,at
184: 8c420000 lw v0,0\(v0\)
188: 3c028000 lui v0,0x8000
18c: 0043102d daddu v0,v0,v1
190: 8c42ffff lw v0,-1\(v0\)
194: 3c020000 lui v0,0x0
198: 3c01abce lui at,0xabce
19c: 64420001 daddiu v0,v0,1
1a0: 0023082d daddu at,at,v1
1a4: 0002103c dsll32 v0,v0,0x0
1a8: 0041102d daddu v0,v0,at
1ac: 8c42ef01 lw v0,-4351\(v0\)
1b0: 3c020123 lui v0,0x123
1b4: 0043102d daddu v0,v0,v1
1b8: 8c424567 lw v0,17767\(v0\)
1bc: 3c010123 lui at,0x123
1c0: 64214568 daddiu at,at,17768
1c4: 00010c38 dsll at,at,0x10
1c8: 642189ac daddiu at,at,-30292
1cc: 00010c38 dsll at,at,0x10
1d0: 0023082d daddu at,at,v1
1d4: ac22cdef sw v0,-12817\(at\)
1d8: 3c01abce lui at,0xabce
1dc: 6421ef01 daddiu at,at,-4351
1e0: 00010c38 dsll at,at,0x10
1e4: 64212345 daddiu at,at,9029
1e8: 00010c38 dsll at,at,0x10
1ec: 0023082d daddu at,at,v1
1f0: ac226789 sw v0,26505\(at\)
1f4: 3c018000 lui at,0x8000
1f8: 0023082d daddu at,at,v1
1fc: ac220000 sw v0,0\(at\)
200: 3c010000 lui at,0x0
204: 6421ffff daddiu at,at,-1
208: 00010c38 dsll at,at,0x10
20c: 64210000 daddiu at,at,0
210: 00010c38 dsll at,at,0x10
214: 0023082d daddu at,at,v1
218: ac220000 sw v0,0\(at\)
21c: 3c018000 lui at,0x8000
220: 0023082d daddu at,at,v1
224: ac22ffff sw v0,-1\(at\)
228: 3c010000 lui at,0x0
22c: 64210001 daddiu at,at,1
230: 00010c38 dsll at,at,0x10
234: 6421abce daddiu at,at,-21554
238: 00010c38 dsll at,at,0x10
23c: 0023082d daddu at,at,v1
240: ac22ef01 sw v0,-4351\(at\)
244: 3c010123 lui at,0x123
248: 0023082d daddu at,at,v1
24c: ac224567 sw v0,17767\(at\)
250: 3c020123 lui v0,0x123
254: 34424567 ori v0,v0,0x4567
258: 00021438 dsll v0,v0,0x10
25c: 344289ab ori v0,v0,0x89ab
260: 00021438 dsll v0,v0,0x10
264: 3442cdef ori v0,v0,0xcdef
268: 3c02abcd lui v0,0xabcd
26c: 3442ef01 ori v0,v0,0xef01
270: 00021438 dsll v0,v0,0x10
274: 34422345 ori v0,v0,0x2345
278: 00021438 dsll v0,v0,0x10
27c: 34426789 ori v0,v0,0x6789
280: 3c028000 lui v0,0x8000
284: 2402ffff li v0,-1
288: 0002103c dsll32 v0,v0,0x0
28c: 3402abcd li v0,0xabcd
290: 00021438 dsll v0,v0,0x10
294: 3442ef01 ori v0,v0,0xef01
298: 3c027fff lui v0,0x7fff
29c: 3442ffff ori v0,v0,0xffff
2a0: 3c020123 lui v0,0x123
2a4: 34424567 ori v0,v0,0x4567
e4: 0023082d daddu at,at,v1
e8: fc22ef01 sd v0,-4351\(at\)
ec: 3c010123 lui at,0x123
f0: 0023082d daddu at,at,v1
f4: fc224567 sd v0,17767\(at\)
f8: 3c020123 lui v0,0x123
fc: 34424567 ori v0,v0,0x4567
100: 00021438 dsll v0,v0,0x10
104: 344289ac ori v0,v0,0x89ac
108: 00021438 dsll v0,v0,0x10
10c: 0043102d daddu v0,v0,v1
110: 8c42cdef lw v0,-12817\(v0\)
114: 3c02abcd lui v0,0xabcd
118: 3442ef01 ori v0,v0,0xef01
11c: 00021438 dsll v0,v0,0x10
120: 34422345 ori v0,v0,0x2345
124: 00021438 dsll v0,v0,0x10
128: 0043102d daddu v0,v0,v1
12c: 8c426789 lw v0,26505\(v0\)
130: 3c028000 lui v0,0x8000
134: 0043102d daddu v0,v0,v1
138: 8c420000 lw v0,0\(v0\)
13c: 2402ffff li v0,-1
140: 0002103c dsll32 v0,v0,0x0
144: 0043102d daddu v0,v0,v1
148: 8c420000 lw v0,0\(v0\)
14c: 3c028000 lui v0,0x8000
150: 0043102d daddu v0,v0,v1
154: 8c42ffff lw v0,-1\(v0\)
158: 3402abce li v0,0xabce
15c: 00021438 dsll v0,v0,0x10
160: 0043102d daddu v0,v0,v1
164: 8c42ef01 lw v0,-4351\(v0\)
168: 3c020123 lui v0,0x123
16c: 0043102d daddu v0,v0,v1
170: 8c424567 lw v0,17767\(v0\)
174: 3c010123 lui at,0x123
178: 34214567 ori at,at,0x4567
17c: 00010c38 dsll at,at,0x10
180: 342189ac ori at,at,0x89ac
184: 00010c38 dsll at,at,0x10
188: 0023082d daddu at,at,v1
18c: ac22cdef sw v0,-12817\(at\)
190: 3c01abcd lui at,0xabcd
194: 3421ef01 ori at,at,0xef01
198: 00010c38 dsll at,at,0x10
19c: 34212345 ori at,at,0x2345
1a0: 00010c38 dsll at,at,0x10
1a4: 0023082d daddu at,at,v1
1a8: ac226789 sw v0,26505\(at\)
1ac: 3c018000 lui at,0x8000
1b0: 0023082d daddu at,at,v1
1b4: ac220000 sw v0,0\(at\)
1b8: 2401ffff li at,-1
1bc: 0001083c dsll32 at,at,0x0
1c0: 0023082d daddu at,at,v1
1c4: ac220000 sw v0,0\(at\)
1c8: 3c018000 lui at,0x8000
1cc: 0023082d daddu at,at,v1
1d0: ac22ffff sw v0,-1\(at\)
1d4: 3401abce li at,0xabce
1d8: 00010c38 dsll at,at,0x10
1dc: 0023082d daddu at,at,v1
1e0: ac22ef01 sw v0,-4351\(at\)
1e4: 3c010123 lui at,0x123
1e8: 0023082d daddu at,at,v1
1ec: ac224567 sw v0,17767\(at\)
1f0: 3c020123 lui v0,0x123
1f4: 34424567 ori v0,v0,0x4567
1f8: 00021438 dsll v0,v0,0x10
1fc: 344289ab ori v0,v0,0x89ab
200: 00021438 dsll v0,v0,0x10
204: 3442cdef ori v0,v0,0xcdef
208: 3c02abcd lui v0,0xabcd
20c: 3442ef01 ori v0,v0,0xef01
210: 00021438 dsll v0,v0,0x10
214: 34422345 ori v0,v0,0x2345
218: 00021438 dsll v0,v0,0x10
21c: 34426789 ori v0,v0,0x6789
220: 3c028000 lui v0,0x8000
224: 2402ffff li v0,-1
228: 0002103c dsll32 v0,v0,0x0
22c: 3402abcd li v0,0xabcd
230: 00021438 dsll v0,v0,0x10
234: 3442ef01 ori v0,v0,0xef01
238: 3c027fff lui v0,0x7fff
23c: 3442ffff ori v0,v0,0xffff
240: 3c020123 lui v0,0x123
244: 34424567 ori v0,v0,0x4567
\.\.\.

File diff suppressed because it is too large Load diff

View file

@ -9,173 +9,149 @@ Disassembly of section \.text:
0000000000000000 <\.text>:
0: 3c020123 lui v0,0x123
4: 3c0189ac lui at,0x89ac
8: 64424568 daddiu v0,v0,17768
c: 0023082d daddu at,at,v1
10: 0002103c dsll32 v0,v0,0x0
14: 0041102d daddu v0,v0,at
4: 34424567 ori v0,v0,0x4567
8: 00021438 dsll v0,v0,0x10
c: 344289ac ori v0,v0,0x89ac
10: 00021438 dsll v0,v0,0x10
14: 0043102d daddu v0,v0,v1
18: dc42cdef ld v0,-12817\(v0\)
1c: 3c02abce lui v0,0xabce
20: 3c012345 lui at,0x2345
24: 6442ef01 daddiu v0,v0,-4351
28: 0023082d daddu at,at,v1
2c: 0002103c dsll32 v0,v0,0x0
30: 0041102d daddu v0,v0,at
1c: 3c02abcd lui v0,0xabcd
20: 3442ef01 ori v0,v0,0xef01
24: 00021438 dsll v0,v0,0x10
28: 34422345 ori v0,v0,0x2345
2c: 00021438 dsll v0,v0,0x10
30: 0043102d daddu v0,v0,v1
34: dc426789 ld v0,26505\(v0\)
38: 3c028000 lui v0,0x8000
3c: 0043102d daddu v0,v0,v1
40: dc420000 ld v0,0\(v0\)
44: 3c020000 lui v0,0x0
48: 3c010000 lui at,0x0
4c: 6442ffff daddiu v0,v0,-1
50: 0023082d daddu at,at,v1
54: 0002103c dsll32 v0,v0,0x0
58: 0041102d daddu v0,v0,at
5c: dc420000 ld v0,0\(v0\)
60: 3c028000 lui v0,0x8000
64: 0043102d daddu v0,v0,v1
68: dc42ffff ld v0,-1\(v0\)
6c: 3c020000 lui v0,0x0
70: 3c01abce lui at,0xabce
74: 64420001 daddiu v0,v0,1
78: 0023082d daddu at,at,v1
7c: 0002103c dsll32 v0,v0,0x0
80: 0041102d daddu v0,v0,at
84: dc42ef01 ld v0,-4351\(v0\)
88: 3c020123 lui v0,0x123
8c: 0043102d daddu v0,v0,v1
90: dc424567 ld v0,17767\(v0\)
94: 3c010123 lui at,0x123
98: 64214568 daddiu at,at,17768
9c: 00010c38 dsll at,at,0x10
a0: 642189ac daddiu at,at,-30292
a4: 00010c38 dsll at,at,0x10
a8: 0023082d daddu at,at,v1
ac: fc22cdef sd v0,-12817\(at\)
b0: 3c01abce lui at,0xabce
b4: 6421ef01 daddiu at,at,-4351
b8: 00010c38 dsll at,at,0x10
bc: 64212345 daddiu at,at,9029
c0: 00010c38 dsll at,at,0x10
c4: 0023082d daddu at,at,v1
c8: fc226789 sd v0,26505\(at\)
cc: 3c018000 lui at,0x8000
d0: 0023082d daddu at,at,v1
d4: fc220000 sd v0,0\(at\)
d8: 3c010000 lui at,0x0
dc: 6421ffff daddiu at,at,-1
44: 2402ffff li v0,-1
48: 0002103c dsll32 v0,v0,0x0
4c: 0043102d daddu v0,v0,v1
50: dc420000 ld v0,0\(v0\)
54: 3c028000 lui v0,0x8000
58: 0043102d daddu v0,v0,v1
5c: dc42ffff ld v0,-1\(v0\)
60: 3402abce li v0,0xabce
64: 00021438 dsll v0,v0,0x10
68: 0043102d daddu v0,v0,v1
6c: dc42ef01 ld v0,-4351\(v0\)
70: 3c020123 lui v0,0x123
74: 0043102d daddu v0,v0,v1
78: dc424567 ld v0,17767\(v0\)
7c: 3c010123 lui at,0x123
80: 34214567 ori at,at,0x4567
84: 00010c38 dsll at,at,0x10
88: 342189ac ori at,at,0x89ac
8c: 00010c38 dsll at,at,0x10
90: 0023082d daddu at,at,v1
94: fc22cdef sd v0,-12817\(at\)
98: 3c01abcd lui at,0xabcd
9c: 3421ef01 ori at,at,0xef01
a0: 00010c38 dsll at,at,0x10
a4: 34212345 ori at,at,0x2345
a8: 00010c38 dsll at,at,0x10
ac: 0023082d daddu at,at,v1
b0: fc226789 sd v0,26505\(at\)
b4: 3c018000 lui at,0x8000
b8: 0023082d daddu at,at,v1
bc: fc220000 sd v0,0\(at\)
c0: 2401ffff li at,-1
c4: 0001083c dsll32 at,at,0x0
c8: 0023082d daddu at,at,v1
cc: fc220000 sd v0,0\(at\)
d0: 3c018000 lui at,0x8000
d4: 0023082d daddu at,at,v1
d8: fc22ffff sd v0,-1\(at\)
dc: 3401abce li at,0xabce
e0: 00010c38 dsll at,at,0x10
e4: 64210000 daddiu at,at,0
e8: 00010c38 dsll at,at,0x10
ec: 0023082d daddu at,at,v1
f0: fc220000 sd v0,0\(at\)
f4: 3c018000 lui at,0x8000
f8: 0023082d daddu at,at,v1
fc: fc22ffff sd v0,-1\(at\)
100: 3c010000 lui at,0x0
104: 64210001 daddiu at,at,1
108: 00010c38 dsll at,at,0x10
10c: 6421abce daddiu at,at,-21554
110: 00010c38 dsll at,at,0x10
114: 0023082d daddu at,at,v1
118: fc22ef01 sd v0,-4351\(at\)
11c: 3c010123 lui at,0x123
120: 0023082d daddu at,at,v1
124: fc224567 sd v0,17767\(at\)
128: 3c020123 lui v0,0x123
12c: 3c0189ac lui at,0x89ac
130: 64424568 daddiu v0,v0,17768
134: 0023082d daddu at,at,v1
138: 0002103c dsll32 v0,v0,0x0
13c: 0041102d daddu v0,v0,at
140: 8c42cdef lw v0,-12817\(v0\)
144: 3c02abce lui v0,0xabce
148: 3c012345 lui at,0x2345
14c: 6442ef01 daddiu v0,v0,-4351
150: 0023082d daddu at,at,v1
154: 0002103c dsll32 v0,v0,0x0
158: 0041102d daddu v0,v0,at
15c: 8c426789 lw v0,26505\(v0\)
160: 3c028000 lui v0,0x8000
164: 0043102d daddu v0,v0,v1
168: 8c420000 lw v0,0\(v0\)
16c: 3c020000 lui v0,0x0
170: 3c010000 lui at,0x0
174: 6442ffff daddiu v0,v0,-1
178: 0023082d daddu at,at,v1
17c: 0002103c dsll32 v0,v0,0x0
180: 0041102d daddu v0,v0,at
184: 8c420000 lw v0,0\(v0\)
188: 3c028000 lui v0,0x8000
18c: 0043102d daddu v0,v0,v1
190: 8c42ffff lw v0,-1\(v0\)
194: 3c020000 lui v0,0x0
198: 3c01abce lui at,0xabce
19c: 64420001 daddiu v0,v0,1
1a0: 0023082d daddu at,at,v1
1a4: 0002103c dsll32 v0,v0,0x0
1a8: 0041102d daddu v0,v0,at
1ac: 8c42ef01 lw v0,-4351\(v0\)
1b0: 3c020123 lui v0,0x123
1b4: 0043102d daddu v0,v0,v1
1b8: 8c424567 lw v0,17767\(v0\)
1bc: 3c010123 lui at,0x123
1c0: 64214568 daddiu at,at,17768
1c4: 00010c38 dsll at,at,0x10
1c8: 642189ac daddiu at,at,-30292
1cc: 00010c38 dsll at,at,0x10
1d0: 0023082d daddu at,at,v1
1d4: ac22cdef sw v0,-12817\(at\)
1d8: 3c01abce lui at,0xabce
1dc: 6421ef01 daddiu at,at,-4351
1e0: 00010c38 dsll at,at,0x10
1e4: 64212345 daddiu at,at,9029
1e8: 00010c38 dsll at,at,0x10
1ec: 0023082d daddu at,at,v1
1f0: ac226789 sw v0,26505\(at\)
1f4: 3c018000 lui at,0x8000
1f8: 0023082d daddu at,at,v1
1fc: ac220000 sw v0,0\(at\)
200: 3c010000 lui at,0x0
204: 6421ffff daddiu at,at,-1
208: 00010c38 dsll at,at,0x10
20c: 64210000 daddiu at,at,0
210: 00010c38 dsll at,at,0x10
214: 0023082d daddu at,at,v1
218: ac220000 sw v0,0\(at\)
21c: 3c018000 lui at,0x8000
220: 0023082d daddu at,at,v1
224: ac22ffff sw v0,-1\(at\)
228: 3c010000 lui at,0x0
22c: 64210001 daddiu at,at,1
230: 00010c38 dsll at,at,0x10
234: 6421abce daddiu at,at,-21554
238: 00010c38 dsll at,at,0x10
23c: 0023082d daddu at,at,v1
240: ac22ef01 sw v0,-4351\(at\)
244: 3c010123 lui at,0x123
248: 0023082d daddu at,at,v1
24c: ac224567 sw v0,17767\(at\)
250: 3c020123 lui v0,0x123
254: 34424567 ori v0,v0,0x4567
258: 00021438 dsll v0,v0,0x10
25c: 344289ab ori v0,v0,0x89ab
260: 00021438 dsll v0,v0,0x10
264: 3442cdef ori v0,v0,0xcdef
268: 3c02abcd lui v0,0xabcd
26c: 3442ef01 ori v0,v0,0xef01
270: 00021438 dsll v0,v0,0x10
274: 34422345 ori v0,v0,0x2345
278: 00021438 dsll v0,v0,0x10
27c: 34426789 ori v0,v0,0x6789
280: 3c028000 lui v0,0x8000
284: 2402ffff li v0,-1
288: 0002103c dsll32 v0,v0,0x0
28c: 3402abcd li v0,0xabcd
290: 00021438 dsll v0,v0,0x10
294: 3442ef01 ori v0,v0,0xef01
298: 3c027fff lui v0,0x7fff
29c: 3442ffff ori v0,v0,0xffff
2a0: 3c020123 lui v0,0x123
2a4: 34424567 ori v0,v0,0x4567
e4: 0023082d daddu at,at,v1
e8: fc22ef01 sd v0,-4351\(at\)
ec: 3c010123 lui at,0x123
f0: 0023082d daddu at,at,v1
f4: fc224567 sd v0,17767\(at\)
f8: 3c020123 lui v0,0x123
fc: 34424567 ori v0,v0,0x4567
100: 00021438 dsll v0,v0,0x10
104: 344289ac ori v0,v0,0x89ac
108: 00021438 dsll v0,v0,0x10
10c: 0043102d daddu v0,v0,v1
110: 8c42cdef lw v0,-12817\(v0\)
114: 3c02abcd lui v0,0xabcd
118: 3442ef01 ori v0,v0,0xef01
11c: 00021438 dsll v0,v0,0x10
120: 34422345 ori v0,v0,0x2345
124: 00021438 dsll v0,v0,0x10
128: 0043102d daddu v0,v0,v1
12c: 8c426789 lw v0,26505\(v0\)
130: 3c028000 lui v0,0x8000
134: 0043102d daddu v0,v0,v1
138: 8c420000 lw v0,0\(v0\)
13c: 2402ffff li v0,-1
140: 0002103c dsll32 v0,v0,0x0
144: 0043102d daddu v0,v0,v1
148: 8c420000 lw v0,0\(v0\)
14c: 3c028000 lui v0,0x8000
150: 0043102d daddu v0,v0,v1
154: 8c42ffff lw v0,-1\(v0\)
158: 3402abce li v0,0xabce
15c: 00021438 dsll v0,v0,0x10
160: 0043102d daddu v0,v0,v1
164: 8c42ef01 lw v0,-4351\(v0\)
168: 3c020123 lui v0,0x123
16c: 0043102d daddu v0,v0,v1
170: 8c424567 lw v0,17767\(v0\)
174: 3c010123 lui at,0x123
178: 34214567 ori at,at,0x4567
17c: 00010c38 dsll at,at,0x10
180: 342189ac ori at,at,0x89ac
184: 00010c38 dsll at,at,0x10
188: 0023082d daddu at,at,v1
18c: ac22cdef sw v0,-12817\(at\)
190: 3c01abcd lui at,0xabcd
194: 3421ef01 ori at,at,0xef01
198: 00010c38 dsll at,at,0x10
19c: 34212345 ori at,at,0x2345
1a0: 00010c38 dsll at,at,0x10
1a4: 0023082d daddu at,at,v1
1a8: ac226789 sw v0,26505\(at\)
1ac: 3c018000 lui at,0x8000
1b0: 0023082d daddu at,at,v1
1b4: ac220000 sw v0,0\(at\)
1b8: 2401ffff li at,-1
1bc: 0001083c dsll32 at,at,0x0
1c0: 0023082d daddu at,at,v1
1c4: ac220000 sw v0,0\(at\)
1c8: 3c018000 lui at,0x8000
1cc: 0023082d daddu at,at,v1
1d0: ac22ffff sw v0,-1\(at\)
1d4: 3401abce li at,0xabce
1d8: 00010c38 dsll at,at,0x10
1dc: 0023082d daddu at,at,v1
1e0: ac22ef01 sw v0,-4351\(at\)
1e4: 3c010123 lui at,0x123
1e8: 0023082d daddu at,at,v1
1ec: ac224567 sw v0,17767\(at\)
1f0: 3c020123 lui v0,0x123
1f4: 34424567 ori v0,v0,0x4567
1f8: 00021438 dsll v0,v0,0x10
1fc: 344289ab ori v0,v0,0x89ab
200: 00021438 dsll v0,v0,0x10
204: 3442cdef ori v0,v0,0xcdef
208: 3c02abcd lui v0,0xabcd
20c: 3442ef01 ori v0,v0,0xef01
210: 00021438 dsll v0,v0,0x10
214: 34422345 ori v0,v0,0x2345
218: 00021438 dsll v0,v0,0x10
21c: 34426789 ori v0,v0,0x6789
220: 3c028000 lui v0,0x8000
224: 2402ffff li v0,-1
228: 0002103c dsll32 v0,v0,0x0
22c: 3402abcd li v0,0xabcd
230: 00021438 dsll v0,v0,0x10
234: 3442ef01 ori v0,v0,0xef01
238: 3c027fff lui v0,0x7fff
23c: 3442ffff ori v0,v0,0xffff
240: 3c020123 lui v0,0x123
244: 34424567 ori v0,v0,0x4567
\.\.\.

View file

@ -0,0 +1,176 @@
dla $4,0xa800000000000000
dla $4,0xa800000000000000($3)
dla $4,0xffffffff80000000
dla $4,0xffffffff80000000($3)
dla $4,0x000000007fff7ff8
dla $4,0x000000007fff7ff8($3)
dla $4,0x000000007ffffff8
dla $4,0x000000007ffffff8($3)
dla $4,0x123456789abcdef0
dla $4,0x123456789abcdef0($3)
dla $4,small_comm
dla $4,small_comm($3)
dla $4,small_comm+3
dla $4,small_comm+3($3)
dla $4,big_comm
dla $4,big_comm($3)
dla $4,big_comm+3
dla $4,big_comm+3($3)
dla $4,small_data
dla $4,small_data($3)
dla $4,small_data+3
dla $4,small_data+3($3)
dla $4,big_data
dla $4,big_data($3)
dla $4,big_data+3
dla $4,big_data+3($3)
dla $4,extern
dla $4,extern($3)
dla $4,extern + 0x34000
dla $4,extern + 0x34000($3)
dla $4,extern - 0x34000
dla $4,extern - 0x34000($3)
lw $4,0xa800000000000000
lw $4,0xa800000000000000($3)
lw $4,0xffffffff80000000
lw $4,0xffffffff80000000($3)
lw $4,0x000000007fff7ff8
lw $4,0x000000007fff7ff8($3)
lw $4,0x000000007ffffff8
lw $4,0x000000007ffffff8($3)
lw $4,0x123456789abcdef0
lw $4,0x123456789abcdef0($3)
lw $4,small_comm
lw $4,small_comm($3)
lw $4,small_comm+3
lw $4,small_comm+3($3)
lw $4,big_comm
lw $4,big_comm($3)
lw $4,big_comm+3
lw $4,big_comm+3($3)
lw $4,small_data
lw $4,small_data($3)
lw $4,small_data+3
lw $4,small_data+3($3)
lw $4,big_data
lw $4,big_data($3)
lw $4,big_data+3
lw $4,big_data+3($3)
lw $4,extern
lw $4,extern($3)
lw $4,extern + 0x34000
lw $4,extern + 0x34000($3)
lw $4,extern - 0x34000
lw $4,extern - 0x34000($3)
sw $4,0xa800000000000000
sw $4,0xa800000000000000($3)
sw $4,0xffffffff80000000
sw $4,0xffffffff80000000($3)
sw $4,0x000000007fff7ff8
sw $4,0x000000007fff7ff8($3)
sw $4,0x000000007ffffff8
sw $4,0x000000007ffffff8($3)
sw $4,0x123456789abcdef0
sw $4,0x123456789abcdef0($3)
sw $4,small_comm
sw $4,small_comm($3)
sw $4,small_comm+3
sw $4,small_comm+3($3)
sw $4,big_comm
sw $4,big_comm($3)
sw $4,big_comm+3
sw $4,big_comm+3($3)
sw $4,small_data
sw $4,small_data($3)
sw $4,small_data+3
sw $4,small_data+3($3)
sw $4,big_data
sw $4,big_data($3)
sw $4,big_data+3
sw $4,big_data+3($3)
sw $4,extern
sw $4,extern($3)
sw $4,extern + 0x34000
sw $4,extern + 0x34000($3)
sw $4,extern - 0x34000
sw $4,extern - 0x34000($3)
usw $4,0xa800000000000000
usw $4,0xa800000000000000($3)
usw $4,0xffffffff80000000
usw $4,0xffffffff80000000($3)
usw $4,0x000000007fff7ff8
usw $4,0x000000007fff7ff8($3)
usw $4,0x000000007ffffff8
usw $4,0x000000007ffffff8($3)
usw $4,0x123456789abcdef0
usw $4,0x123456789abcdef0($3)
usw $4,small_comm
usw $4,small_comm($3)
usw $4,small_comm+3
usw $4,small_comm+3($3)
usw $4,big_comm
usw $4,big_comm($3)
usw $4,big_comm+3
usw $4,big_comm+3($3)
usw $4,small_data
usw $4,small_data($3)
usw $4,small_data+3
usw $4,small_data+3($3)
usw $4,big_data
usw $4,big_data($3)
usw $4,big_data+3
usw $4,big_data+3($3)
usw $4,extern
usw $4,extern($3)
usw $4,extern + 0x34000
usw $4,extern + 0x34000($3)
usw $4,extern - 0x34000
usw $4,extern - 0x34000($3)
.set nosym32
dla $4,extern
lw $4,extern
sw $4,extern
usw $4,extern
.set sym32
dla $4,extern
lw $4,extern
sw $4,extern
usw $4,extern
.section .sdata
.globl small_data
small_data:
.fill 16
.data
.globl big_data
big_data:
.fill 16
.comm small_comm,8
.comm big_comm,16

View file

@ -726,11 +726,11 @@ if { [istarget mips*-*-*] } then {
run_dump_test "ldstla-32"
run_dump_test "ldstla-32-shared"
run_dump_test "ldstla-eabi64"
if $has_newabi {
run_dump_test "ldstla-n32"
run_dump_test "ldstla-n32-shared"
run_dump_test "ldstla-n64"
run_dump_test "ldstla-n64-shared"
run_dump_test "ldstla-n64-sym32"
}
run_dump_test "macro-warn-1"