From: Baojun Wang <wangbj@gmail.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: Misbehavior of qemu ppc tcg/translation?
Date: Wed, 15 Jul 2009 23:35:55 +0800 [thread overview]
Message-ID: <3cdfa5bc0907150835h756ab118y39d83c9f0c1eb7e4@mail.gmail.com> (raw)
In-Reply-To: <3cdfa5bc0907150833w4bf27bfj283242a7e0b5eb9a@mail.gmail.com>
BTW: The source code is dummy:
# hello.S
.data
msg:
.string "hello, world!\n"
len = . - msg
.text
.global _raw_write
_raw_write:
sc
blr
.global _start
_start:
li 0, 4
li 3, 1
lis 4, msg@ha
addi 4, 4, msg@l
li 5, len
bl _raw_write
.long 0x10001234
li 0, 1
li 3, 0
sc
On Wed, Jul 15, 2009 at 11:33 PM, Baojun Wang<wangbj@gmail.com> wrote:
> hi, list:
>
> I hope the following example is self-explained, in the assembler
> code, we can use instruction like (instruction-as-data?):
>
> 100000b4: 10 00 12 34 .long 0x10001234
>
> but the ppc translator set the exception flag and raise a PROGRAM
> exception later, however on real machine, if the above instruction is
> never ran, then everything should be OK. Thus the ppc translator raise
> the exception too early? (I think it should only raise the PROGRAM
> exception until tcg really trying to exec the instruction, but not on
> translation time)
>
> Thanks,
> Wang Baojun
>
> $ qemu-ppc -L emu-ppc ./hello
> hello, world!
> invalid/unsupported opcode: 04 - 1a - 08 (10001234) 100000b4 0
> Invalid instruction
> NIP 100000b8 LR 100000b4 CTR 00000000 XER 00000000
> MSR 00006040 HID0 00000000 HF 00006000 idx 0
> TB 00000000 00000000
> GPR00 0000000000000004 000000004007f588 0000000000000000 000000000000000f
> GPR04 00000000100100c4 000000000000000f 0000000000000000 0000000000000000
> GPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> GPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> GPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> GPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> GPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> GPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> CR 00000000 [ - - - - - - - - ] RES ffffffff
> FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> FPSCR 00000000
> Segmentation fault
>
>
> on a real machine:
> $ ./hello
> hello, world!
> $ powerpc-unknown-linux-gnu-objdump -d hello
>
> hello: file format elf32-powerpc
>
> Disassembly of section .text:
>
> 10000094 <_raw_write>:
> 10000094: 44 00 00 02 sc
> 10000098: 4e 80 00 20 blr
>
> 1000009c <_start>:
> 1000009c: 38 00 00 04 li r0,4
> 100000a0: 38 60 00 01 li r3,1
> 100000a4: 3c 80 10 01 lis r4,4097
> 100000a8: 38 84 00 c4 addi r4,r4,196
> 100000ac: 38 a0 00 0f li r5,15
> 100000b0: 4b ff ff e5 bl 10000094 <_raw_write>
> 100000b4: 10 00 12 34 .long 0x10001234
> 100000b8: 38 00 00 01 li r0,1
> 100000bc: 38 60 00 00 li r3,0
> 100000c0: 44 00 00 02 sc
>
next prev parent reply other threads:[~2009-07-15 15:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-15 15:33 [Qemu-devel] Misbehavior of qemu ppc tcg/translation? Baojun Wang
2009-07-15 15:35 ` Baojun Wang [this message]
2009-07-15 16:34 ` Blue Swirl
2009-07-16 11:49 ` Baojun Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3cdfa5bc0907150835h756ab118y39d83c9f0c1eb7e4@mail.gmail.com \
--to=wangbj@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).