qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1843133] Re: Possibly incorrect branch in qemu-system-


From: Richard Henderson
Subject: [Qemu-devel] [Bug 1843133] Re: Possibly incorrect branch in qemu-system-hppa
Date: Sat, 14 Sep 2019 20:29:18 -0000

This test case works for me.

$ ./hppa-linux-user/qemu-hppa ~/a.out
$ echo $?
0

>From -d in_asm,cpu logs:

IN: main
0x000112d0:  addb,*<,n r24,r23,0x112e4

IA_F 000112d3 IA_B 000112d7
PSW  0000bf00 CB   11111111 ------------------
GR00 00000000 GR01 00000000 GR02 0001162b GR03 ff7fe9c0
GR04 00011b94 GR05 00011c6c GR06 00000000 GR07 00000000
GR08 00000000 GR09 00000000 GR10 00000000 GR11 00000000
GR12 00000000 GR13 00000000 GR14 00000000 GR15 00000000
GR16 00000000 GR17 00000000 GR18 00000000 GR19 ff7fe888
GR20 00000000 GR21 00000000 GR22 000112bc GR23 7fffffff
GR24 00000001 GR25 ff7fe674 GR26 00000001 GR27 0009a0e0
GR28 0009f080 GR29 00000001 GR30 ff7fea00 GR31 0001162b

About to execute the addb; r23 and r24 as expected.

----------------
IN: main
0x000112e4:  ldi 0,ret0

IA_F 000112e7 IA_B 000112eb
PSW  0000bf00 CB   11111111 ------------------
GR00 00000000 GR01 00000000 GR02 0001162b GR03 ff7fe9c0
GR04 00011b94 GR05 00011c6c GR06 00000000 GR07 00000000
GR08 00000000 GR09 00000000 GR10 00000000 GR11 00000000
GR12 00000000 GR13 00000000 GR14 00000000 GR15 00000000
GR16 00000000 GR17 00000000 GR18 00000000 GR19 ff7fe888
GR20 00000000 GR21 00000000 GR22 000112bc GR23 80000000
GR24 00000001 GR25 ff7fe674 GR26 00000001 GR27 0009a0e0
GR28 0009f080 GR29 00000001 GR30 ff7fea00 GR31 0001162b

The branch has been taken, correctly.
We can see the expected result in r23.

I've also tested this in system mode, though getting logs
from that is significantly more difficult.

I am testing git master, not v3.1.1.  Can you please try
the development version?

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1843133

Title:
  Possibly incorrect branch in qemu-system-hppa

Status in QEMU:
  Incomplete

Bug description:
  I plan to release a new GNU Lightning soon.
  I no longer have access to any physical HPPA, but code that
  was tested some years ago did work on HPPA/HP-UX, and now it
  appears qemu-system-hppa incorrectly branches in code generated
  by GNU Lightning. Currently only 32 bit hppa jit generation
  supported.

  In the lightning check/test tool, the code would be:

  .code
      prolog
      movi %r0 0x7fffffff
      movi %r1 1
      boaddr L0 %r0 %r1
      calli @abort
  L0:
      ret
      epilog

  The code/debug information looks like this:
              movi r4 0x7fffffff
              0xf8ef5018      ldil L%7ffff800,r4
              0xf8ef501c      ldo 7ff(r4),r4
              movi r5 0x1
              0xf8ef5020      ldi 1,r5
          boaddr L1 r4 r5
              0xf8ef5024      addb,sv,n r5,r4,0xf8ef5044 :a.tst:291
              0xf8ef5028      nop
          calli 0xf8eeb68a
              [...]
      L1:

  Apparently it is not understanding 0x7fffffff + 1 is a signed
  overflow.

  Tested in Fedora with qemu-system-hppa-3.1.1-2.fc30.x86_64 and using
  the debian-10 image.

  To make it a bit easier to test (partially transformed the
  not so optimized code generated by lightning to gcc -S output):
  # cat a.s
        .LEVEL 1.1
        .text
        .align 4
  .globl main
        .type   main, @function
  main:
        .PROC
        .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
        .ENTRY
        copy %r3,%r1
        copy %r30,%r3
        stwm %r1,64(%r30)
        zdepi -1,31,31,%r23
        ldi 1,%r24
        addb,sv,n %r24,%r23,.L0
        nop
        ldi 1,%r28
        b,n .L1
        nop
  .L0:
        ldi 0,%r28
  .L1:
        ldo 64(%r3),%r30
        ldwm -64(%r30),%r3
        bv,n %r0(%r2)
        .EXIT
        .PROCEND
        .size   main, .-main

  # gcc a.s
  # ./a.out; echo $?
  1

  It should have returned 0.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1843133/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]