Statistics
| Branch: | Revision:

root / target-arm / neon_helper.c @ feature-archipelago

History | View | Annotate | Download (53.2 kB)

# Date Author Comment
057d5f62 02/20/2014 12:35 pm Peter Maydell

target-arm: A64: Implement remaining 3-same instructions

Implement the remaining instructions in the SIMD 3-reg-same
and scalar-3-reg-same groups: FMULX, FRECPS, FRSQRTS, FACGE,
FACGT, FMLA and FMLS.

Signed-off-by: Peter Maydell <>...

86cbc418 02/08/2014 04:47 pm Peter Maydell

target-arm: A64: Implement 2-reg-misc CNT, NOT and RBIT

Implement the 2-reg-misc CNT, NOT and RBIT instructions.

Signed-off-by: Peter Maydell <>
Reviewed-by: Richard Henderson <>

f71a2ae5 01/08/2014 09:07 pm Peter Maydell

target-arm: Use VFP_BINOP macro for min, max, minnum, maxnum

Use the VFP_BINOP macro to provide helpers for min, max, minnum
and maxnum, rather than hand-rolling them. (The float64 max
version is not used by A32 but will be needed for A64.)

Signed-off-by: Peter Maydell <>...

022c62cb 12/19/2012 09:31 am Paolo Bonzini

exec: move include files to include/exec/

Signed-off-by: Paolo Bonzini <>

ee6fa559 10/24/2012 03:33 pm Peter Maydell

target-arm: Use TCG operation for Neon 64 bit negation

Use the TCG operation to do Neon 64 bit negations rather than calling
a helper routine for it.

Reviewed-by: Aurelien Jarno <>
Signed-off-by: Peter Maydell <>

02c7ac0c 10/19/2012 11:32 am Peter Maydell

target-arm/neon_helper: Remove obsolete FIXME comment

Commit 33ebc29 fixed the bugs in the implementation of VQRSHL,
but forgot to remove the FIXME comment...

Signed-off-by: Peter Maydell <>
Signed-off-by: Stefan Hajnoczi <>

b90372ad 08/10/2012 04:37 pm Peter Maydell

target-arm: Fix typos in comments

Fix a variety of typos in comments in target-arm files.

Signed-off-by: Peter Maydell <>
Reviewed-by: Peter Crosthwaite <>
Signed-off-by: Stefan Hajnoczi <>

7e598de0 05/10/2012 03:56 pm Matt Craighead

target-arm: When setting FPSCR.QC, don't clear other FPSCR bits

This patch fixes a bug affecting a variety of Neon instructions, such as
VQADD.

Signed-off-by: Matt Craighead <>
Signed-off-by: Peter Maydell <>

0ecb72a5 03/14/2012 11:20 pm Andreas Färber

target-arm: Don't overuse CPUState

Scripted conversion:
sed -i "s/CPUState/CPUARMState/g" target-arm/*.[hc]
sed -i "s/#define CPUARMState/#define CPUState/" target-arm/cpu.h

Signed-off-by: Andreas Färber <>
Acked-by: Anthony Liguori <>...

8e31bf38 07/23/2011 07:26 pm Matthew Fernandez

Correct spelling of licensed

Correct typos of "licenced" to "licensed".

Reviewed-by: Stefan Weil <>
Reviewed-by: Andreas F=E4rber <>
Signed-off-by: Matthew Fernandez <>
Signed-off-by: Anthony Liguori <>

02da0b2d 06/22/2011 06:01 pm Peter Maydell

Revert "target-arm: Use global env in neon_helper.c helpers"

This effectively reverts commit 2a3f75b42ac255be09ec2939b96c549ec830efd3
so that we return to passing CPUState to helpers as an explicit parameter.
(There were a number of conflicts in target-arm/translate.c which had...

aa47cfdd 06/22/2011 06:01 pm Peter Maydell

target-arm: Pass fp status pointer explicitly to neon fp helpers

Make the Neon helpers for various floating point operations take an
explicit pointer to the float_status they use, so they don't rely on
the global environment pointer any more. This also allows us to drop...

cab565c4 05/23/2011 11:39 pm Peter Maydell

target-arm: Signal InvalidOp for Neon GE and GT compares of QNaN

If the input to a Neon float comparison is a quiet NaN, the ARM ARM
specifies that we should raise InvalidOp if the comparison is GE or GT
but not for EQ. (Signaling NaNs raise InvalidOp regardless). This means...

7b59220e 04/17/2011 09:41 pm Lluís

move helpers.h to helper.h

This provides a consistent naming scheme across all targets.

Signed-off-by: Lluís Vilanova <>
Signed-off-by: Aurelien Jarno <>

4d9ad7f7 04/13/2011 09:47 pm Peter Maydell

target-arm: Don't overflow when calculating value for signed VABAL

In the VABAL instruction we take the absolute difference of two
values of size x and store it in a result of size 2x. This means
we have to be careful to calculate the absolute difference using...

cc49f217 04/04/2011 09:18 pm Peter Maydell

target-arm: Make Neon helper routines use correct FP status

Make the Neon helper routines use the correct FP status from
the CPUEnv rather than using a dummy static one. This means
they will correctly handle denormals and NaNs and will set
FPSCR exception bits properly....

2a3f75b4 04/04/2011 09:18 pm Peter Maydell

target-arm: Use global env in neon_helper.c helpers

Use the global 'env' variable in the helper functions in neon_helper.c.
This means we don't need to pass env as an argument to them any more.

Signed-off-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

79c18be7 04/03/2011 06:19 pm Peter Maydell

target-arm: Correct ABD's handling of negative zeroes

Implement ABD by taking the absolute value of the difference
of the operands (as the ARM ARM specifies) rather than by
flipping the order of the operands to the subtract based
on the results of a comparison. The latter approch gives...

4a9f9cb2 04/03/2011 06:19 pm Peter Maydell

target-arm: Use new softfloat min/max functions for VMAX, VMIN

Use the new softfloat min/max functions to implement the Neon VMAX
and VMIN instructions. This allows us to get the right behaviour
for NaN and negative zero.

Signed-off-by: Peter Maydell <>...

c7498dae 04/03/2011 06:05 pm Peter Maydell

target-arm: Return right result for Neon comparison with NaNs

Fix the helper functions implementing the Neon floating point comparison
ops (VCGE, VCGT, VCEQ, VACGT, VACGE) to return the right answer when
one of the values being compared is a NaN.

Signed-off-by: Peter Maydell <>...

51d85267 04/03/2011 06:04 pm Peter Maydell

target-arm/neon_helper.c: Use make_float32/float32_val macros

Use the softfloat make_float32 and float32_val macros to convert between
softfloat's float32 type and raw uint32_t types, rather than private
conversion functions.

Signed-off-by: Peter Maydell <>...

4bd4ee07 02/20/2011 06:43 pm Christophe Lyon

target-arm: Fix rounding constant addition for Neon shifts

Handle cases where adding the rounding constant could overflow in Neon
shift instructions: VRSHR, VRSRA, VQRSHRN, VQRSHRUN, VRSHRN.

Signed-off-by: Christophe Lyon <>
[: fix handling of large shifts in rshl_s32,...

0670a7b6 02/20/2011 06:43 pm Peter Maydell

target-arm: Fix signed VRSHL by large shift counts

Correctly handle VRSHL of signed values by a shift count of the
width of the data type or larger, which must be special-cased in the
rshl_s* helper functions.

Signed-off-by: Peter Maydell <>...

b6c63b98 02/20/2011 06:43 pm Christophe Lyon

target-arm: Fix unsigned VRSHL.s8 and .s16 right shifts by type width

Fix handling of unsigned VRSHL.s8 and .s16 right shifts by the type
width.

Signed-off-by: Christophe Lyon <>
Reviewed-by: Peter Maydell <>...

51e3930f 02/20/2011 06:43 pm Christophe Lyon

target-arm: fix unsigned 64 bit right shifts.

Fix range of shift amounts which always give 0 as result.

Signed-off-by: Christophe Lyon <>
Reviewed-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

960e623b 02/20/2011 06:43 pm Peter Maydell

target-arm: Fix saturated values for Neon right shifts

Fix value returned by signed 8 and 16 bit qrshl helpers
when the result has saturated.

Signed-off-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

7b6ecf5b 02/20/2011 06:43 pm Peter Maydell

target-arm: Fix signed VQRSHL by large shift counts

Handle the case of signed VQRSHL by a shift count of the width of the
data type or larger, which must be special cased in the qrshl_s*
helper functions.

Signed-off-by: Peter Maydell <>...

33ebc293 02/20/2011 06:43 pm Peter Maydell

target-arm: Fix unsigned VQRSHL by large shift counts

Correctly handle VQRSHL of unsigned values by a shift count of the
width of the data type or larger, which must be special-cased in the
qrshl_u* helper functions.

Signed-off-by: Peter Maydell <>...

d68a6f3a 02/20/2011 06:31 pm Peter Maydell

target-arm: Move Neon VZIP to helper functions

Move the implementation of the Neon VUZP unzip instruction from inline
code to helper functions. (At 50+ TCG ops it was well over the
recommended limit for coding inline.) The helper implementations also
give the correct answers where the inline implementation did not....

02acedf9 02/20/2011 06:31 pm Peter Maydell

target-arm: Move Neon VUZP to helper functions

Move the implementation of the Neon VUZP unzip instruction from inline
code to helper functions. (At 50+ TCG ops it was well over the
recommended limit for coding inline.) The helper implementations also
fix the handling of the quadword version of the instruction....

e5ca24cb 02/20/2011 06:26 pm Peter Maydell

target-arm: Implement VMULL.P8

Implement VMULL.P8 (the 32x32->64 version of the polynomial multiply
instruction).

Signed-off-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

f2f27b9f 02/10/2011 10:21 pm Peter Maydell

target-arm: Remove stray #include from middle of neon_helper.c

Remove a stray #include <stdio.h> from the middle of neon_helper.c:
it was harmless but pointless since we include stdio.h at the top
of the file anyway.

Signed-off-by: Peter Maydell <>...

cc2212c2 02/09/2011 08:37 pm Peter Maydell

target-arm: Fix 32 bit signed saturating narrow

The returned value when doing saturating signed 64->32 bit
conversion of a negative number was incorrect due to a missing cast.

Signed-off-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

af1bbf30 02/09/2011 08:37 pm Juha Riihimäki

target-arm: Fix VQMOVUN Neon instruction.

VQMOVUN does a signed-to-unsigned saturating conversion. This is
different from both the signed-to-signed and unsigned-to-unsigned
conversions already implemented, so we need a new set of helper
functions (neon_unarrow_sat*)....

72902672 02/04/2011 09:57 pm Christophe Lyon

Set the right overflow bit for neon 32 and 64 bit saturating add/sub.

Signed-off-by: Christophe Lyon <>
Reviewed-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

46eece9d 01/29/2011 04:16 pm Juha Riihimäki

target-arm: Fix Neon VQDMULH.S16 instructions

Correct an error in the implementation of the 16 bit
forms of VQDMULH, bringing them into line with the
32 bit implementation.

Signed-off-by: Juha Riihimäki <>
Reviewed-by: Peter Maydell <>...

4ca4502c 01/12/2011 01:06 am Juha Riihimäki

ARM: add neon helpers for VQSHLU

Add neon helper functions to implement VQSHLU, which is a
signed-to-unsigned version of VQSHL available only as an
immediate form.

Signed-off-by: Juha Riihimäki <>
Reviewed-by: Aurelien Jarno <>...

a5d88f3e 12/27/2010 10:07 pm Peter Maydell

target-arm: Correct result in saturating cases for VQSHL of s8/16/32

Where VQSHL of a signed 8/16/32 bit value saturated, the result
value was not being calculated correctly (it should be either
the minimum or maximum value for the size of the signed type)....

620d791e 12/27/2010 10:07 pm Juha Riihimäki

target-arm: remove pointless else clause in VQSHL of u64

Remove a pointless else clause in the neon_qshl_u64 helper.

Signed-off-by: Juha Riihimäki <>
Reviewed-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

eb7a3d79 12/27/2010 10:07 pm Peter Maydell

target-arm: Fix VQSHL of signed 64 bit values by shift counts >= 64

VQSHL of a signed 64 bit non-zero value by a shift count >= 64 should
saturate; return the correct value in this case.

Signed-off-by: Peter Maydell <>
Signed-off-by: Aurelien Jarno <>

4c9b70ae 12/27/2010 10:07 pm Juha Riihimäki

target-arm: Fix VQSHL of signed 64 bit values

Add a missing '-' which meant that we were misinterpreting the shift
argument for VQSHL of 64 bit signed values and treating almost every
shift value as if it were an extremely large right shift.

Signed-off-by: Juha Riihimäki <>...

50f67e95 10/27/2009 10:46 am Juha Riihimäki

target-arm: fix neon shift helper functions

Current code is broken at least on recent compilers, comparison
between signed and unsigned types yield incorrect code and render
the neon shift helper functions defunct. This is the third revision
of this patch, casting all comparisons with the sizeof operator to...

e2542fe2 07/27/2009 10:09 pm Juan Quintela

rename WORDS_BIGENDIAN to HOST_WORDS_BIGENDIAN

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

cb76e138 05/10/2009 01:12 am Paul Brook

Fixe ARM NEON vrshl.

Signed-off-by: Paul Brook <>

1654b2d6 04/11/2008 07:55 am aurel32

Fix few spelling issues in comments

(Stefan Weil)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4187 c046a42c-6fe2-441c-8c8c-71466251a162

e677137d 03/31/2008 06:49 am pbrook

ARM TCG conversion 15/16.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4152 c046a42c-6fe2-441c-8c8c-71466251a162

ad69471c 03/31/2008 06:48 am pbrook

ARM TCG conversion 14/16.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4151 c046a42c-6fe2-441c-8c8c-71466251a162