linux-mips
[Top] [All Lists]

Re: Strange instruction

To: "Dmitriy Tochansky" <toch@dfpost.ru>, <linux-mips@linux-mips.org>
Subject: Re: Strange instruction
From: "Kevin D. Kissell" <kevink@mips.com>
Date: Thu, 14 Oct 2004 10:34:18 +0200
Organization: MIPS Technologies Inc.
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20041014115304.3edbe141.toch@dfpost.ru>
Sender: linux-mips-bounce@linux-mips.org
That's a 64-bit add, which is actually being used as a 64-bit move
of the "sp" register to k1.  Try "objdump -m mips:isa64" (or whatever
variant gives your version of objdump the right to disassemble the
MIPS III+/MIPS64 instructions.

One might suspect that your board monitor ROM was built for a 64-bit CPU.
This illustrates why, if one want to write portable assembler code for MIPS,
one should implement "move" operations as OR Target,$0,Source rather than
using an ADDU or DADDU...

----- Original Message ----- 
From: "Dmitriy Tochansky" <toch@dfpost.ru>
To: <linux-mips@linux-mips.org>
Sent: Thursday, October 14, 2004 13:53
Subject: Strange instruction


> Hello!
> 
> When starts kernel for my au1500 board reseting board. After disassembling I 
> found instruction
> which reseting board. Here is few strings of "mipsel-linux-objdump -D 
> vmlinux" output:
> 
> ---
> 
> a0000650:       07400003        bltz    k0,a0000660 <nmi_handler+0x1c>        
>   
> a0000654:       03a0d82d        0x3a0d82d                                     
>   
> a0000658:       3c1ba020        lui     k1,0xa020 
> 
> ---
> 
> Base address changed by me.
> 
> What is A0000654? There is board resets.
> 
> 

<Prev in Thread] Current Thread [Next in Thread>