qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 661f7f: tcg-aarch64: Properly detect SIGSEGV


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 661f7f: tcg-aarch64: Properly detect SIGSEGV writes
Date: Thu, 17 Apr 2014 13:30:06 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 661f7fa4b088f2734050a751dd9d1d836b49e981
      
https://github.com/qemu/qemu/commit/661f7fa4b088f2734050a751dd9d1d836b49e981
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M user-exec.c

  Log Message:
  -----------
  tcg-aarch64: Properly detect SIGSEGV writes

Since the kernel doesn't pass any info on the reason for the fault,
disassemble the instruction to detect a store.

Reviewed-by: Alex Bennée <address@hidden>
Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 8bf56493f169144416e001ca626ecebe4dc01e7c
      
https://github.com/qemu/qemu/commit/8bf56493f169144416e001ca626ecebe4dc01e7c
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use intptr_t apropriately

As opposed to tcg_target_long.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 929f8b55509fb92320e085504a8492b1908b8110
      
https://github.com/qemu/qemu/commit/929f8b55509fb92320e085504a8492b1908b8110
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use TCGType and TCGMemOp constants

Rather than raw constants that could mean anything.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: dfeb5fe7700d5e29a276f571aee7f6fc4267ee96
      
https://github.com/qemu/qemu/commit/dfeb5fe7700d5e29a276f571aee7f6fc4267ee96
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use MOVN in tcg_out_movi

When profitable, initialize the register with MOVN instead of MOVZ,
before setting the remaining lanes with MOVK.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 4ec4f0bd564f79a7144fcaca59515a9c6cfc4577
      
https://github.com/qemu/qemu/commit/4ec4f0bd564f79a7144fcaca59515a9c6cfc4577
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use ORRI in tcg_out_movi

The subset of logical immediates that we support is quite quick to test,
and such constants are quite common to want to load.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: d8918df577c9e3f2281d24c6c29d37df12bff2da
      
https://github.com/qemu/qemu/commit/d8918df577c9e3f2281d24c6c29d37df12bff2da
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Special case small constants in tcg_out_movi

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: c6e310d938d3348a7a4c56e4bd8a25d12677f1e1
      
https://github.com/qemu/qemu/commit/c6e310d938d3348a7a4c56e4bd8a25d12677f1e1
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use adrp in tcg_out_movi

Loading an qemu pointer as an immediate happens often.  E.g.

- exit_tb $0x7fa8140013
+ exit_tb $0x7f81ee0013
...
- :  d2800260        mov     x0, #0x13
- :  f2b50280        movk    x0, #0xa814, lsl #16
- :  f2c00fe0        movk    x0, #0x7f, lsl #32
+ :  90ff1000        adrp    x0, 0x7f81ee0000
+ :  91004c00        add     x0, x0, #0x13

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 81d8a5ee197eaf33c208b64bcc11c236f1216413
      
https://github.com/qemu/qemu/commit/81d8a5ee197eaf33c208b64bcc11c236f1216413
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use symbolic names for branches

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: cae1f6f3e60406c4f1a85dc11e0c9eb5a3ce466a
      
https://github.com/qemu/qemu/commit/cae1f6f3e60406c4f1a85dc11e0c9eb5a3ce466a
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Create tcg_out_brcond

Rearrange code to put the compare and branch in the same place.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 3d9e69a238874d70861ac219a5a87320efaf21dd
      
https://github.com/qemu/qemu/commit/3d9e69a238874d70861ac219a5a87320efaf21dd
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use CBZ and CBNZ

A compare and branch against zero happens at the start of
every single TB.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: d82b78e48b3583af5cd62c7e096664782c23d04a
      
https://github.com/qemu/qemu/commit/d82b78e48b3583af5cd62c7e096664782c23d04a
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c
    M tcg/aarch64/tcg-target.h

  Log Message:
  -----------
  tcg-aarch64: Reuse LR in translated code

It's obviously call-clobbered, but is otherwise unused.
Repurpose it as the TCG temporary.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 95f72aa90a95af1df27b1864c587e49d9d747786
      
https://github.com/qemu/qemu/commit/95f72aa90a95af1df27b1864c587e49d9d747786
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Introduce tcg_out_insn_3314

Combines 4 other inline functions and tidies the prologue.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 38d195aa05f0efce1c97ed257a8c42ec08d493e7
      
https://github.com/qemu/qemu/commit/38d195aa05f0efce1c97ed257a8c42ec08d493e7
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Implement tcg_register_jit

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 6f4724672c9cda92de9d30d0f76f57d684e03a5d
      
https://github.com/qemu/qemu/commit/6f4724672c9cda92de9d30d0f76f57d684e03a5d
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Avoid add with zero in tlb load

Some guest env are small enough to reach the tlb with only a 12-bit addition.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: ae7ab46aa891c12efee621dcd9cc753aa65f4a94
      
https://github.com/qemu/qemu/commit/ae7ab46aa891c12efee621dcd9cc753aa65f4a94
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use tcg_out_call for qemu_ld/st

In some cases, a direct branch will be in range.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: dc0c8aaf2cf4fe4668aba53ed2e3ecbd16206b73
      
https://github.com/qemu/qemu/commit/dc0c8aaf2cf4fe4668aba53ed2e3ecbd16206b73
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use ADR to pass the return address to the ld/st helpers

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 9e4177ad6d5e5430b03a6262fe80fb9e5ffc275d
      
https://github.com/qemu/qemu/commit/9e4177ad6d5e5430b03a6262fe80fb9e5ffc275d
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use TCGMemOp in qemu_ld/st

Making the bswap conditional on the memop instead of a compile-time test.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 667b1cdd4eb8a3b1c34a906ca3d50c33a650a37d
      
https://github.com/qemu/qemu/commit/667b1cdd4eb8a3b1c34a906ca3d50c33a650a37d
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Pass qemu_ld/st arguments directly

Instead of passing them the "args" array.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: de61d14fa7f7bbcb55a2301d9e5939904f4e2670
      
https://github.com/qemu/qemu/commit/de61d14fa7f7bbcb55a2301d9e5939904f4e2670
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c
    M tcg/aarch64/tcg-target.h

  Log Message:
  -----------
  tcg-aarch64: Implement TCG_TARGET_HAS_new_ldst

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: e81864a109c8ae11dd17afbb6dd279b5e35d8c48
      
https://github.com/qemu/qemu/commit/e81864a109c8ae11dd17afbb6dd279b5e35d8c48
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Support stores of zero

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: edd8824cd4e2c8e0af24b5c3064aad504d80a790
      
https://github.com/qemu/qemu/commit/edd8824cd4e2c8e0af24b5c3064aad504d80a790
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Introduce tcg_out_insn_3507

Cleaning up the implementation of REV and REV16 at the same time.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: dc73dfd4bce199235c7cfd80d00c5c4646dc5c1d
      
https://github.com/qemu/qemu/commit/dc73dfd4bce199235c7cfd80d00c5c4646dc5c1d
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Merge aarch64_ldst_get_data/type into tcg_out_op

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 3d4299f425eef29bbb883132d66b1a8c7910dfaf
      
https://github.com/qemu/qemu/commit/3d4299f425eef29bbb883132d66b1a8c7910dfaf
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Introduce tcg_out_insn_3312, _3310, _3313

Replace aarch64_ldst_op_data with AArch64LdstType, as it wasn't encoded
for the proper shift for the field and was confusing.

Merge aarch64_ldst_op_data, AArch64LdstType, and a few stray opcode bits
into a single I3312_* argument, eliminating some magic numbers from the
helper functions.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: a056c9faa4a0bd790630caac4ff9f5a841a33177
      
https://github.com/qemu/qemu/commit/a056c9faa4a0bd790630caac4ff9f5a841a33177
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Prefer unsigned offsets before signed offsets for ldst

The assembler seems to prefer them, perhaps we should too.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: b825025f08823453929ad02cb16dcfbab7eab327
      
https://github.com/qemu/qemu/commit/b825025f08823453929ad02cb16dcfbab7eab327
  Author: Richard Henderson <address@hidden>
  Date:   2014-04-16 (Wed, 16 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c

  Log Message:
  -----------
  tcg-aarch64: Use tcg_out_mov in preference to tcg_out_movr

It's the more canonical interface.

Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: c6138aabfb2a8769392d605dc1e339b3095aab6a
      
https://github.com/qemu/qemu/commit/c6138aabfb2a8769392d605dc1e339b3095aab6a
  Author: Peter Maydell <address@hidden>
  Date:   2014-04-17 (Thu, 17 Apr 2014)

  Changed paths:
    M tcg/aarch64/tcg-target.c
    M tcg/aarch64/tcg-target.h
    M user-exec.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/rth/tcg-aarch-6-5' into staging

* remotes/rth/tcg-aarch-6-5: (25 commits)
  tcg-aarch64: Use tcg_out_mov in preference to tcg_out_movr
  tcg-aarch64: Prefer unsigned offsets before signed offsets for ldst
  tcg-aarch64: Introduce tcg_out_insn_3312, _3310, _3313
  tcg-aarch64: Merge aarch64_ldst_get_data/type into tcg_out_op
  tcg-aarch64: Introduce tcg_out_insn_3507
  tcg-aarch64: Support stores of zero
  tcg-aarch64: Implement TCG_TARGET_HAS_new_ldst
  tcg-aarch64: Pass qemu_ld/st arguments directly
  tcg-aarch64: Use TCGMemOp in qemu_ld/st
  tcg-aarch64: Use ADR to pass the return address to the ld/st helpers
  tcg-aarch64: Use tcg_out_call for qemu_ld/st
  tcg-aarch64: Avoid add with zero in tlb load
  tcg-aarch64: Implement tcg_register_jit
  tcg-aarch64: Introduce tcg_out_insn_3314
  tcg-aarch64: Reuse LR in translated code
  tcg-aarch64: Use CBZ and CBNZ
  tcg-aarch64: Create tcg_out_brcond
  tcg-aarch64: Use symbolic names for branches
  tcg-aarch64: Use adrp in tcg_out_movi
  tcg-aarch64: Special case small constants in tcg_out_movi
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/5149e557d786...c6138aabfb2a

reply via email to

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