[Top] [All Lists]

Re: Immediate branch offset

To: Alexis BRENON <>
Subject: Re: Immediate branch offset
From: David Daney <>
Date: Fri, 07 Jun 2013 09:25:09 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=N+6iEO6mW5FK9wuvWdzHV0nhtl5hQFSKxrNjpuS3wrY=; b=k6k1p8/jLhED0BzDSgzaV2e1+GMttTro8IBVvCCay0kvldEYZVJ5GTTji7dXIsGkAV 4V8PuVuRxN2Q+NemPFCF8fK0O9oG6ICsX3/xUfVhgs7B1SUXvzBsB1oVhseUm2AeZ1TT GGkL/91t5K/4/TsCdwVeqK8Zk7JeUkvQZaJlNfAvH+44NTLZUeB/rBkfMi+GuzPjm6YH 1JRI/aeqpzKxXRIDQ7E+ZroujfGM6YOZUYah4/QOAl6tEVwn3EClBJgrArLbJLNh/2Ob 4oXa9Bj2K2IIJ5ZSh5cF6THGIe7TwAmSwRYhdSo7Gf7LMQoLTHzP0gdmK/ERX+hbztrf Ypmw==
In-reply-to: <>
List-archive: <>
List-help: <>
List-id: linux-mips <>
List-owner: <>
List-post: <>
List-software: Ecartis version 1.0.0
List-subscribe: <>
List-unsubscribe: <>
Original-recipient: rfc822;
References: <>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130311 Thunderbird/17.0.4
On 06/07/2013 03:34 AM, Alexis BRENON wrote:
Hi everyone,

I'm new on the list, so I'll make a short introduction of me.
First of all, I'm french, so, please, be indulgent for my english
I'm working on the Pypy project, to create a MIPS backend (a MIPS JIT).

To create the JIT, I have to load some MIPS instruction directly in
memory without passing through a .asm file or else. So, I cannot set
some labels. So to make some branches, I try to load the equivalent
instruction of :
     bne $t0, $t1, -8
to go back, just before the bne instruction, if $t0 and $t1 are equals.
But when it run, I've got an illegal instruction error.
To debug, I write a small program in the MARS MIPS simulator with this
instruction. But when compiling, assembler says me that -8 is an operand
of incorrect type.

Dump out your program so you can disassemble it with objdump -d (or dissassemble it with gdb) And verify that the code looks good.

David Daney

I would like to know if it's possible to make a branch, with an
immediate offset, or have I to always provide a label ?

I hope my question is clear.
Thanks for your attention, and for your answer :-p


P.S. I try to go to the IRC channel, but I receive '#mipslinux :Cannot
send to channel' every time  I send message. Is there any particular
process to join the channel ?

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