qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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
>

  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).