qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 2bd5f4: target/arm: generate a custom MIDR fo


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 2bd5f4: target/arm: generate a custom MIDR for -cpu max
Date: Fri, 16 Aug 2019 10:02:45 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 2bd5f41c00686a1f847a60824d0375f3df2c26bf
      
https://github.com/qemu/qemu/commit/2bd5f41c00686a1f847a60824d0375f3df2c26bf
  Author: Alex Bennée <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/cpu.h
    M target/arm/cpu64.c

  Log Message:
  -----------
  target/arm: generate a custom MIDR for -cpu max

While most features are now detected by probing the ID_* registers
kernels can (and do) use MIDR_EL1 for working out of they have to
apply errata. This can trip up warnings in the kernel as it tries to
work out if it should apply workarounds to features that don't
actually exist in the reported CPU type.

Avoid this problem by synthesising our own MIDR value.

Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: a6b3ed2348dc06623622fefec6753296d431f155
      
https://github.com/qemu/qemu/commit/a6b3ed2348dc06623622fefec6753296d431f155
  Author: Damien Hedde <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M hw/misc/zynq_slcr.c

  Log Message:
  -----------
  hw/misc/zynq_slcr: use standard register definition

Replace the zynq_slcr registers enum and macros using the
hw/registerfields.h macros.

Signed-off-by: Damien Hedde <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alistair Francis <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 88e1b59ee30950a66ea28b740914bf603fa9a1ec
      
https://github.com/qemu/qemu/commit/88e1b59ee30950a66ea28b740914bf603fa9a1ec
  Author: Aaron Hill <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M hw/net/imx_fec.c

  Log Message:
  -----------
  Set ENET_BD_BDU in I.MX FEC controller

This commit properly sets the ENET_BD_BDU flag once the emulated FEC controller
has finished processing the last descriptor. This is done for both transmit
and receive descriptors.

This allows the QNX 7.0.0 BSP for the Sabrelite board (which can be
found at http://blackberry.qnx.com/en/developers/bsp) to properly
control the FEC. Without this patch, the BSP ethernet driver will never
re-use FEC descriptors, as the unset ENET_BD_BDU flag will cause
it to believe that the descriptors are still in use by the NIC.

Note that Linux does not appear to use this field at all, and is
unaffected by this patch.

Without this patch, QNX will think that the NIC is still processing its
transaction descriptors, and won't send any more data over the network.

For reference:

On page 1192 of the I.MX 6DQ reference manual revision (Rev. 5, 06/2018),
which can be found at 
https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/i.mx-applications-processors/i.mx-6-processors/i.mx-6quad-processors-high-performance-3d-graphics-hd-video-arm-cortex-a9-core:i.MX6Q?&tab=Documentation_Tab&linkline=Application-Note

the 'BDU' field is described as follows for the 'Enhanced transmit
buffer descriptor':

'Last buffer descriptor update done. Indicates that the last BD data has been 
updated by
uDMA. This field is written by the user (=0) and uDMA (=1).'

The same description is used for the receive buffer descriptor.

Signed-off-by: Aaron Hill <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: c1d5f50f094ab204accfacc2ee6aafc9601dd5c4
      
https://github.com/qemu/qemu/commit/c1d5f50f094ab204accfacc2ee6aafc9601dd5c4
  Author: Peter Maydell <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate-a64.c
    M target/arm/translate.c
    M target/arm/translate.h

  Log Message:
  -----------
  target/arm: Factor out 'generate singlestep exception' function

Factor out code to 'generate a singlestep exception', which is
currently repeated in four places.

To do this we need to also pull the identical copies of the
gen-exception() function out of translate-a64.c and translate.c
into translate.h.

(There is a bug in the code: we're taking the exception to the wrong
target EL.  This will be simpler to fix if there's only one place to
do it.)

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Message-id: address@hidden


  Commit: 8bd587c1066f4456ddfe611b571d9439a947d74c
      
https://github.com/qemu/qemu/commit/8bd587c1066f4456ddfe611b571d9439a947d74c
  Author: Peter Maydell <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/cpu.h
    M target/arm/helper.c
    M target/arm/translate-a64.c
    M target/arm/translate.c
    M target/arm/translate.h

  Log Message:
  -----------
  target/arm: Fix routing of singlestep exceptions

When generating an architectural single-step exception we were
routing it to the "default exception level", which is to say
the same exception level we execute at except that EL0 exceptions
go to EL1. This is incorrect because the debug exception level
can be configured by the guest for situations such as single
stepping of EL0 and EL1 code by EL2.

We have to track the target debug exception level in the TB
flags, because it is dependent on CPU state like HCR_EL2.TGE
and MDCR_EL2.TDE. (That we were previously calling the
arm_debug_target_el() function to determine dc->ss_same_el
is itself a bug, though one that would only have manifested
as incorrect syndrome information.) Since we are out of TB
flag bits unless we want to expand into the cs_base field,
we share some bits with the M-profile only HANDLER and
STACKCHECK bits, since only A-profile has this singlestep.

Fixes: https://bugs.launchpad.net/qemu/+bug/1838913
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Tested-by: Alex Bennée <address@hidden>
Message-id: address@hidden


  Commit: 331b1ca616cb708db30dab68e3262d286e687f24
      
https://github.com/qemu/qemu/commit/331b1ca616cb708db30dab68e3262d286e687f24
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Pass in pc to thumb_insn_is_16bit

This function is used in two different contexts, and it will be
clearer if the function is given the address to which it applies.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 43722a6d4f0c92f7e7e1e291580039b0f9789df1
      
https://github.com/qemu/qemu/commit/43722a6d4f0c92f7e7e1e291580039b0f9789df1
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate-a64.c
    M target/arm/translate-a64.h
    M target/arm/translate.c
    M target/arm/translate.h

  Log Message:
  -----------
  target/arm: Introduce pc_curr

Add a new field to retain the address of the instruction currently
being translated.  The 32-bit uses are all within subroutines used
by a32 and t32.  This will become less obvious when t16 support is
merged with a32+t32, and having a clear definition will help.

Convert aarch64 as well for consistency.  Note that there is one
instance of a pre-assert fprintf that used the wrong value for the
address of the current instruction.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: fdbcf6329d0c2984c55d7019419a72bf8e583c36
      
https://github.com/qemu/qemu/commit/fdbcf6329d0c2984c55d7019419a72bf8e583c36
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Introduce read_pc

We currently have 3 different ways of computing the architectural
value of "PC" as seen in the ARM ARM.

The value of s->pc has been incremented past the current insn,
but that is all.  Thus for a32, PC = s->pc + 4; for t32, PC = s->pc;
for t16, PC = s->pc + 2.  These differing computations make it
impossible at present to unify the various code paths.

With the newly introduced s->pc_curr, we can compute the correct
value for all cases, using the formula given in the ARM ARM.

This changes the behaviour for load_reg() and load_reg_var()
when called with reg==15 from a 32-bit Thumb instruction:
previously they would have returned the incorrect value
of pc_curr + 6, and now they will return the architecturally
correct value of PC, which is pc_curr + 4. This will not
affect well-behaved guest software, because all of the places
we call these functions from T32 code are instructions where
using r15 is UNPREDICTABLE. Using the architectural PC value
here is more consistent with the T16 and A32 behaviour.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
[PMM: added commit message note about UNPREDICTABLE T32 cases]
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 16e0d8234ef9291747332d2c431e46808a060472
      
https://github.com/qemu/qemu/commit/16e0d8234ef9291747332d2c431e46808a060472
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate-vfp.inc.c
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Introduce add_reg_for_lit

Provide a common routine for the places that require ALIGN(PC, 4)
as the base address as opposed to plain PC.  The two are always
the same for A32, but the difference is meaningful for thumb mode.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 4818c3743b0e0095fdcecd24457da9b3443730ab
      
https://github.com/qemu/qemu/commit/4818c3743b0e0095fdcecd24457da9b3443730ab
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Remove redundant s->pc & ~1

The thumb bit has already been removed from s->pc, and is always even.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: a04159166b880b505ccadc16f2fe84169806883d
      
https://github.com/qemu/qemu/commit/a04159166b880b505ccadc16f2fe84169806883d
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate-a64.c
    M target/arm/translate.c
    M target/arm/translate.h

  Log Message:
  -----------
  target/arm: Replace s->pc with s->base.pc_next

We must update s->base.pc_next when we return from the translate_insn
hook to the main translator loop.  By incrementing s->base.pc_next
immediately after reading the insn word, "pc_next" contains the address
of the next instruction throughout translation.

All remaining uses of s->pc are referencing the address of the next insn,
so this is now a simple global replacement.  Remove the "s->pc" field.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: a767fac802f6fa6220330ea6f408dde2fb41db22
      
https://github.com/qemu/qemu/commit/a767fac802f6fa6220330ea6f408dde2fb41db22
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate-a64.c
    M target/arm/translate-vfp.inc.c
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Replace offset with pc in gen_exception_insn

The offset is variable depending on the instruction set, whereas
we have stored values for the current pc and the next pc.  Passing
in the actual value is clearer in intent.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: aee828e7541a5895669ade3a4b6978382b6b094a
      
https://github.com/qemu/qemu/commit/aee828e7541a5895669ade3a4b6978382b6b094a
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate-a64.c
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Replace offset with pc in gen_exception_internal_insn

The offset is variable depending on the instruction set.
Passing in the actual value is clearer in intent.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 06bcbda3f64d464b6ecac789bce4bd69f199cd68
      
https://github.com/qemu/qemu/commit/06bcbda3f64d464b6ecac789bce4bd69f199cd68
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate-a64.c
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Remove offset argument to gen_exception_bkpt_insn

Unlike the other more generic gen_exception{,_internal}_insn
interfaces, breakpoints always refer to the current instruction.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 3cb36637157088892e9e33ddb1034bffd1251d3b
      
https://github.com/qemu/qemu/commit/3cb36637157088892e9e33ddb1034bffd1251d3b
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate-a64.c
    M target/arm/translate-a64.h
    M target/arm/translate-vfp.inc.c
    M target/arm/translate.c
    M target/arm/translate.h

  Log Message:
  -----------
  target/arm: Use unallocated_encoding for aarch32

Promote this function from aarch64 to fully general use.
Use it to unify the code sequences for generating illegal
opcode exceptions.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 640581a06d14e2d0d3c3ba79b916de6bc43578b0
      
https://github.com/qemu/qemu/commit/640581a06d14e2d0d3c3ba79b916de6bc43578b0
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/helper.h
    M target/arm/op_helper.c
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Remove helper_double_saturate

Replace x = double_saturate(y) with x = add_saturate(y, y).
There is no need for a separate more specialized helper.

Signed-off-by: Richard Henderson <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


  Commit: b9e758f0b5bc64b5800432c0a436dd1afc98ba33
      
https://github.com/qemu/qemu/commit/b9e758f0b5bc64b5800432c0a436dd1afc98ba33
  Author: Andrew Jones <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/cpu64.c
    M target/arm/kvm64.c
    M target/arm/kvm_arm.h

  Log Message:
  -----------
  target/arm/cpu64: Ensure kvm really supports aarch64=off

If -cpu <cpu>,aarch64=off is used then KVM must also be used, and it
and the host must support running the vcpu in 32-bit mode. Also, if
-cpu <cpu>,aarch64=on is used, then it doesn't matter if kvm is
enabled or not.

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: ae502508f83e06abddab3ac1a11dd822718472e1
      
https://github.com/qemu/qemu/commit/ae502508f83e06abddab3ac1a11dd822718472e1
  Author: Andrew Jones <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/cpu.c
    M target/arm/kvm.c
    M target/arm/kvm_arm.h

  Log Message:
  -----------
  target/arm/cpu: Ensure we can use the pmu with kvm

We first convert the pmu property from a static property to one with
its own accessors. Then we use the set accessor to check if the PMU is
supported when using KVM. Indeed a 32-bit KVM host does not support
the PMU, so this check will catch an attempt to use it at property-set
time.

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 7b351d98709d3f77d6bb18562e1bf228862b0d57
      
https://github.com/qemu/qemu/commit/7b351d98709d3f77d6bb18562e1bf228862b0d57
  Author: Andrew Jones <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/helper.c

  Log Message:
  -----------
  target/arm/helper: zcr: Add build bug next to value range assumption

The current implementation of ZCR_ELx matches the architecture, only
implementing the lower four bits, with the rest RAZ/WI. This puts
a strict limit on ARM_MAX_VQ of 16. Make sure we don't let ARM_MAX_VQ
grow without a corresponding update here.

Suggested-by: Dave Martin <address@hidden>
Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 46417784d21c89446763f2047228977bdc267895
      
https://github.com/qemu/qemu/commit/46417784d21c89446763f2047228977bdc267895
  Author: Andrew Jones <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/cpu.h

  Log Message:
  -----------
  target/arm/cpu: Use div-round-up to determine predicate register array size

Unless we're guaranteed to always increase ARM_MAX_VQ by a multiple of
four, then we should use DIV_ROUND_UP to ensure we get an appropriate
array size.

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 4ed9d9f894a7ab19f5b927fe0d833effeabac0ce
      
https://github.com/qemu/qemu/commit/4ed9d9f894a7ab19f5b927fe0d833effeabac0ce
  Author: Andrew Jones <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/kvm64.c

  Log Message:
  -----------
  target/arm/kvm64: Fix error returns

A couple return -EINVAL's forgot their '-'s.

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 30e3537fa5948e6346d23422b8397dee086a434e
      
https://github.com/qemu/qemu/commit/30e3537fa5948e6346d23422b8397dee086a434e
  Author: Andrew Jones <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/kvm64.c

  Log Message:
  -----------
  target/arm/kvm64: Move the get/put of fpsimd registers out

Move the getting/putting of the fpsimd registers out of
kvm_arch_get/put_registers() into their own helper functions
to prepare for alternatively getting/putting SVE registers.

No functional change.

Signed-off-by: Andrew Jones <address@hidden>
Reviewed-by: Eric Auger <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 191f4bfe8d6cf0c7d5cd7f84cd7076e32e3745dd
      
https://github.com/qemu/qemu/commit/191f4bfe8d6cf0c7d5cd7f84cd7076e32e3745dd
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Use tcg_gen_extract_i32 for shifter_out_im

Extract is a compact combination of shift + and.

Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: d1f8755fc93911f5b27246b1da794542d222fa1b
      
https://github.com/qemu/qemu/commit/d1f8755fc93911f5b27246b1da794542d222fa1b
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Use tcg_gen_deposit_i32 for PKHBT, PKHTB

Use deposit as the composit operation to merge the
bits from the two inputs.

Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 464eaa9571fae5867d9aea7d7209c091c8a50223
      
https://github.com/qemu/qemu/commit/464eaa9571fae5867d9aea7d7209c091c8a50223
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Remove redundant shift tests

The immediate shift generator functions already test for,
and eliminate, the case of a shift by zero.

Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: dd861b3f29be97a9e3cdb9769dcbc0c7d7825185
      
https://github.com/qemu/qemu/commit/dd861b3f29be97a9e3cdb9769dcbc0c7d7825185
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Use ror32 instead of open-coding the operation

The helper function is more documentary, and also already
handles the case of rotate by zero.

Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: adefba76e8bf10dfb342094d2f5debfeedb1a74d
      
https://github.com/qemu/qemu/commit/adefba76e8bf10dfb342094d2f5debfeedb1a74d
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Use tcg_gen_rotri_i32 for gen_swap_half

Rotate is the more compact and obvious way to swap 16-bit
elements of a 32-bit word.

Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 5f8cd06ebcf57420be8fea4574de2e074de46709
      
https://github.com/qemu/qemu/commit/5f8cd06ebcf57420be8fea4574de2e074de46709
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Simplify SMMLA, SMMLAR, SMMLS, SMMLSR

All of the inputs to these instructions are 32-bits.  Rather than
extend each input to 64-bits and then extract the high 32-bits of
the output, use tcg_gen_muls2_i32 and other 32-bit generator functions.

Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: 664b7e3b97d6376f3329986c465b3782458b0f8b
      
https://github.com/qemu/qemu/commit/664b7e3b97d6376f3329986c465b3782458b0f8b
  Author: Richard Henderson <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M target/arm/translate.c

  Log Message:
  -----------
  target/arm: Use tcg_gen_extrh_i64_i32 to extract the high word

Separate shift + extract low will result in one extra insn
for hosts like RISC-V, MIPS, and Sparc.

Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>


  Commit: afd760539308a5524accf964107cdb1d54a059e3
      
https://github.com/qemu/qemu/commit/afd760539308a5524accf964107cdb1d54a059e3
  Author: Peter Maydell <address@hidden>
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
    M hw/misc/zynq_slcr.c
    M hw/net/imx_fec.c
    M target/arm/cpu.c
    M target/arm/cpu.h
    M target/arm/cpu64.c
    M target/arm/helper.c
    M target/arm/helper.h
    M target/arm/kvm.c
    M target/arm/kvm64.c
    M target/arm/kvm_arm.h
    M target/arm/op_helper.c
    M target/arm/translate-a64.c
    M target/arm/translate-a64.h
    M target/arm/translate-vfp.inc.c
    M target/arm/translate.c
    M target/arm/translate.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20190816' 
into staging

target-arm queue:
 * target/arm: generate a custom MIDR for -cpu max
 * hw/misc/zynq_slcr: refactor to use standard register definition
 * Set ENET_BD_BDU in I.MX FEC controller
 * target/arm: Fix routing of singlestep exceptions
 * refactor a32/t32 decoder handling of PC
 * minor optimisations/cleanups of some a32/t32 codegen
 * target/arm/cpu64: Ensure kvm really supports aarch64=off
 * target/arm/cpu: Ensure we can use the pmu with kvm
 * target/arm: Minor cleanups preparatory to KVM SVE support

# gpg: Signature made Fri 16 Aug 2019 14:15:55 BST
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "address@hidden"
# gpg: Good signature from "Peter Maydell <address@hidden>" [ultimate]
# gpg:                 aka "Peter Maydell <address@hidden>" [ultimate]
# gpg:                 aka "Peter Maydell <address@hidden>" [ultimate]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* remotes/pmaydell/tags/pull-target-arm-20190816: (29 commits)
  target/arm: Use tcg_gen_extrh_i64_i32 to extract the high word
  target/arm: Simplify SMMLA, SMMLAR, SMMLS, SMMLSR
  target/arm: Use tcg_gen_rotri_i32 for gen_swap_half
  target/arm: Use ror32 instead of open-coding the operation
  target/arm: Remove redundant shift tests
  target/arm: Use tcg_gen_deposit_i32 for PKHBT, PKHTB
  target/arm: Use tcg_gen_extract_i32 for shifter_out_im
  target/arm/kvm64: Move the get/put of fpsimd registers out
  target/arm/kvm64: Fix error returns
  target/arm/cpu: Use div-round-up to determine predicate register array size
  target/arm/helper: zcr: Add build bug next to value range assumption
  target/arm/cpu: Ensure we can use the pmu with kvm
  target/arm/cpu64: Ensure kvm really supports aarch64=off
  target/arm: Remove helper_double_saturate
  target/arm: Use unallocated_encoding for aarch32
  target/arm: Remove offset argument to gen_exception_bkpt_insn
  target/arm: Replace offset with pc in gen_exception_internal_insn
  target/arm: Replace offset with pc in gen_exception_insn
  target/arm: Replace s->pc with s->base.pc_next
  target/arm: Remove redundant s->pc & ~1
  ...

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


Compare: https://github.com/qemu/qemu/compare/e018ccb3fbfa...afd760539308



reply via email to

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