Statistics
| Branch: | Revision:

root / target-arm / translate.c @ d4e6df63

History | View | Annotate | Download (350.1 kB)

# Date Author Comment
db9707f7 06/14/2013 03:50 pm Anthony Liguori

Merge remote-tracking branch 'pmaydell/target-arm.next' into staging

  1. By Peter Chubb
  2. Via Peter Maydell
    • pmaydell/target-arm.next:
      Fix rfe instruction

Message-id:
Signed-off-by: Anthony Liguori <>

5866e078 06/03/2013 04:59 pm Peter Chubb

Fix rfe instruction

The rfe instruction has been broken since patch
5a839c0d54fac9db0516904db873a4fe01f50f4b because of a typo.

Signed-off-by: Peter Chubb <>
Reviewed-by: Peter Maydell <>
Signed-off-by: Peter Maydell <>

6681fca3 06/01/2013 01:25 pm Stefan Weil

Remove unnecessary break statements

Fix these warnings from cppcheck:

hw/display/cirrus_vga.c:2603:
hw/sd/sd.c:348:
hw/timer/exynos4210_mct.c:1033:
target-arm/translate.c:9886:
target-s390x/mem_helper.c:518:
target-unicore32/translate.c:1936:
style: Consecutive return, break, continue, goto or throw statements are unnecessary....

5b35b4e9 05/26/2013 01:05 pm Peter Maydell

target-arm: Remove gen_{ld,st}* definitions

All the uses of the gen_{ld,st}* functions are gone now, so remove
the functions themselves.

Signed-off-by: Peter Maydell <>
Signed-off-by: Blue Swirl <>

58ab8e96 05/26/2013 01:05 pm Peter Maydell

target-arm: Remove uses of gen_{ld,st}* from Neon code

Signed-off-by: Peter Maydell <>
Signed-off-by: Blue Swirl <>

94ee24e7 05/26/2013 01:05 pm Peter Maydell

target-arm: Remove use of gen_{ld,st}* from ldrex/strex

Signed-off-by: Peter Maydell <>
Signed-off-by: Blue Swirl <>

5a839c0d 05/26/2013 01:05 pm Peter Maydell

target-arm: Remove gen_{ld,st}* from basic ARM insns

Signed-off-by: Peter Maydell <>
Signed-off-by: Blue Swirl <>

c40c8556 05/26/2013 01:05 pm Peter Maydell

target-arm: Remove gen_{ld,st}* from Thumb insns

Signed-off-by: Peter Maydell <>
Signed-off-by: Blue Swirl <>

e2592fad 05/26/2013 01:05 pm Peter Maydell

target-arm: Remove gen_{ld,st}* from thumb2 decoder

Signed-off-by: Peter Maydell <>
Signed-off-by: Blue Swirl <>

29531141 05/26/2013 01:05 pm Peter Maydell

target-arm: Remove uses of gen_{ld,st}* from iWMMXt code

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

8ed1237d 05/26/2013 01:05 pm Peter Maydell

target-arm: Remove gen_ld64() and gen_st64()

gen_ld64() and gen_st64() are used only in one place, so just
expand them out.

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

39d5492a 05/26/2013 01:04 pm Peter Maydell

target-arm: Don't use TCGv when we mean TCGv_i32

TCGv changes size depending on the compile time value of
TARGET_LONG_BITS. This is useful for generating code for MIPS style
"instructions are the same but the register width changes" CPUs, and
also for the generic bits of QEMU which operate on "width of a...

3b328448 04/19/2013 02:24 pm Peter Chubb

target-arm: Reinsert missing return statement in ARM mode SRS decode

Since patch
81465888c5306cd94abb9847e560796fd13d3c2f
target-arm: factor out handling of SRS instruction
the ARM mode SRS instruction has not worked in QEMU.

The problem is a missing return directive that was removed in the...

81465888 03/05/2013 02:31 am Peter Maydell

target-arm: Factor out handling of SRS instruction

Factor out the handling of the SRS instruction rather than
duplicating it between the Thumb and ARM decoders. This in
passing fixes two bugs in the Thumb decoder's SRS handling
which didn't exist in the ARM decoder:...

00115976 03/05/2013 02:31 am Peter Maydell

target-arm: Don't decode RFE or SRS on M profile cores

M profile cores do not have the RFE or SRS instructions, so
correctly UNDEF these insn patterns on those cores.

Signed-off-by: Peter Maydell <>

806f352d 03/03/2013 04:29 pm Peter Maydell

gen-icount.h: Rename gen_icount_start/end to gen_tb_start/end

The gen_icount_start/end functions are now somewhat misnamed since they
are useful for generic "start/end of TB" code, used for more than just
icount. Rename them to gen_tb_start/end.

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

8c3ac601 02/25/2013 10:32 pm Peter Crosthwaite

arm/translate.c: Fix adc_CC/sbc_CC implementation

commits 49b4c31efcce45ab714f286f14fa5d5173f9069d and
2de68a4900ef6eb67380b0c128abfe1976bc66e8 reworked the implementation of adc_CC
and sub_CC. The new implementations (on the TCG_TARGET_HAS_add2_i32 code path)...

e77f0832 02/25/2013 10:32 pm Richard Henderson

target-arm: Fix sbc_CC carry

While T0+~T1+CF = T0-T1+CF-1 is true for the low 32-bits,
it does not produce the correct carry-out to bit 33. Do
exactly what the manual says.

Using the ~T1 makes the add and subtract code paths nearly
identical, so have sbc_CC use adc_CC....

831d7fe8 02/23/2013 07:25 pm Richard Henderson

target-arm: Use mul[us]2 in gen_mul[us]_i64_i32

Cc: Peter Maydell <>
Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

c9f10124 02/23/2013 07:25 pm Richard Henderson

target-arm: Use mul[us]2 and add2 in umlal et al

Cc: Peter Maydell <>
Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

e3482cb8 02/23/2013 07:25 pm Richard Henderson

target-arm: Use add2 in gen_add_CC

Cc: Peter Maydell <>
Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

49b4c31e 02/23/2013 07:25 pm Richard Henderson

target-arm: Implement adc_cc inline

Use add2 if available, otherwise use 64-bit arithmetic.

Cc: Peter Maydell <>
Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

2de68a49 02/23/2013 07:25 pm Richard Henderson

target-arm: Implement sbc_cc inline

Use sub2 if available, otherwise use 64-bit arithmetic.

Cc: Peter Maydell <>
Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

e4c1cfa5 01/30/2013 06:01 pm Peter Maydell

target-arm: Fix TCG temp leaks for WI and UNDEF VFP sysreg writes

Fix a leak of a TCG temporary in code paths for VFP system register
writes for cases which UNDEF or are write-ignored.

Signed-off-by: Peter Maydell <>

1de7afc9 12/19/2012 09:32 am Paolo Bonzini

misc: move include files to include/qemu/

Signed-off-by: Paolo Bonzini <>

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

exec: move include files to include/exec/

Signed-off-by: Paolo Bonzini <>

76cad711 12/19/2012 09:29 am Paolo Bonzini

build: kill libdis, move disassemblers to disas/

Signed-off-by: Paolo Bonzini <>

ab1103de 12/08/2012 04:24 pm Evgeny Voevodin

TCG: Use gen_opc_instr_start from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Signed-off-by: Blue Swirl <>

25983cad 12/08/2012 04:24 pm Evgeny Voevodin

TCG: Use gen_opc_pc from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Signed-off-by: Blue Swirl <>

c9c99c22 12/08/2012 04:24 pm Evgeny Voevodin

TCG: Use gen_opc_icount from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Signed-off-by: Blue Swirl <>

92414b31 11/17/2012 03:53 pm Evgeny Voevodin

TCG: Use gen_opc_buf from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Reviewed-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

efd7f486 11/17/2012 03:53 pm Evgeny Voevodin

TCG: Use gen_opc_ptr from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Reviewed-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

f4359b9f 11/10/2012 03:49 pm Blue Swirl

disas: avoid using cpu_single_env

Pass around CPUArchState instead of using global cpu_single_env.

Signed-off-by: Blue Swirl <>
Acked-by: Richard Henderson <>
Acked-by: Aurelien Jarno <>
Acked-by: Guan Xuetao <>

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

36c91fd1 10/24/2012 03:33 pm Peter Maydell

target-arm: Implement abs_i32 inline rather than as a helper

Implement abs_i32 inline (with movcond) rather than using a helper
function.

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

b6348f29 10/17/2012 08:56 pm Peter Crosthwaite

target-arm/translate: Fix RRX operands

Instructions that both use the RRX second operand and update CS were
incorrect, as the Carry flag was updated too early. An example of such an
instruction would be:

ands r12,r13,RRX

Ands, because of the "s" flag will update the carry flag. But the RRX second...

d593c48e 10/05/2012 05:04 pm Aurelien Jarno

target-arm: use deposit instead of hardcoded version

Use the deposit op instead of and hardcoded bit field insertion. It
allows the host to emit the corresponding instruction if available.

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

f2617cfc 10/05/2012 05:04 pm Peter Maydell

target-arm: Reinstate display of VFP registers in cpu_dump_state

Reinstate the display of VFP registers in cpu_dump_state(), if
the CPU has them (this code had been #if 0'd out a for a long time).
We drop the attempt ot display the values as floating point, since...

66c374de 10/05/2012 05:04 pm Aurelien Jarno

target-arm: use globals for CC flags

Use globals for CC flags instead of loading/storing them each they are
accessed. This allows some optimizations to be performed by the TCG
optimization passes.

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

72485ec4 10/05/2012 05:04 pm Aurelien Jarno

target-arm: convert add_cc and sub_cc helpers to TCG

Now that the setcond TCG op is available, it's possible to replace
add_cc and sub_cc helpers by TCG code. The code generated by TCG is
actually very close to the one generated by GCC for the helper, and...

365af80e 10/05/2012 05:04 pm Aurelien Jarno

target-arm: convert sar, shl and shr helpers to TCG

Now that the movcond TCG op is available, it's possible to replace
shl and shr helpers by TCG code. The code generated by TCG is slightly
longer than the code generated by GCC for the helper but is still worth...

fdefe51c 09/27/2012 10:38 pm Richard Henderson

Emit debug_insn for CPU_LOG_TB_OP_OPT as well.

For all targets that currently call tcg_gen_debug_insn_start,
add CPU_LOG_TB_OP_OPT to the condition that gates it.

This is useful for comparing optimization dumps, when the
pre-optimization dump is merely noise....

1ce94f81 09/15/2012 08:44 pm Blue Swirl

target-arm: convert void helpers

Add an explicit CPUState parameter instead of relying on AREG0.

For easier review, convert only op helpers which don't return any value.

Signed-off-by: Blue Swirl <>
Reviewed-by: Peter Maydell <>

9ef39277 09/15/2012 08:44 pm Blue Swirl

target-arm: convert remaining helpers

Convert remaining helpers to AREG0 free mode: add an explicit
CPUState parameter instead of relying on AREG0.

Signed-off-by: Blue Swirl <>
Reviewed-by: Peter Maydell <>

d31dd73e 09/15/2012 08:44 pm Blue Swirl

target-arm: final conversion to AREG0 free mode

Convert code load functions and switch to AREG0 free mode.

Signed-off-by: Blue Swirl <>
Reviewed-by: Peter Maydell <>

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

65626741 08/10/2012 04:33 pm Peter A. G. Crosthwaite

arm: translate: comment typo - s/middel/middle/

Signed-off-by: Peter A. G. Crosthwaite <>
Reviewed-by: Andreas Färber <>
Reviewed-by: Peter Maydell <>
Signed-off-by: Stefan Hajnoczi <>

ed336850 07/12/2012 01:59 pm Peter Maydell

target-arm: Fix TCG temp handling in 64 bit cp writes

Fix errors in the TCG temp handling in the 64 bit coprocessor
write path: we were reusing a 32 bit temp after it had been
freed by store_reg(), and failing to free a 64 bit temp.

This bug has no visible effect at this point because there...

2bee5105 07/12/2012 01:58 pm Paul Brook

target-arm: Fix CP15 based WFI

The coprocessor register rework broke cp15 based WFI instructions.
We incorrectly fall through the normal register write case, which
incorrectly adds a forced block termination. We've already done
a special version of this (DISAS_WFI), so return immediately....

4a9a539f 06/20/2012 03:13 pm Peter Maydell

target-arm: Remove remaining old cp15 infrastructure

There are now no uses of the old cp15 infrastructure,
so it can be deleted.

Signed-off-by: Peter Maydell <>

30b05bba 06/20/2012 03:12 pm Peter Maydell

target-arm: Move block cache ops to new cp15 framework

Move the v6 optional block cache ops to the new cp15 framework.
This includes only providing them on the CPUs which implemented
them, rather than the previous blunderbuss approach of making
all MCRR instructions on all CPUs act as NOPs....

200ac0ef 06/20/2012 03:05 pm Peter Maydell

target-arm: Convert performance monitor registers

Convert the v7 performance monitor cp15 registers to
the new scheme.

Signed-off-by: Peter Maydell <>

4d31c596 06/20/2012 03:04 pm Peter Maydell

target-arm: Convert TLS registers

Convert TLS registers to the new cp15 framework

Signed-off-by: Peter Maydell <>

7d57f408 06/20/2012 03:04 pm Peter Maydell

target-arm: Convert WFI/barriers special cases to cp_reginfo

Convert the various WFI and barrier instruction special cases to use
cp_reginfo infrastructure.

Signed-off-by: Peter Maydell <>

c326b979 06/20/2012 03:04 pm Peter Maydell

target-arm: Convert TEECR, TEEHBR to new scheme

Convert the THUMB2EE cp14 registers TEECR and TEEHBR to
use arm_cp_reginfo.

Signed-off-by: Peter Maydell <>

e9aa6c21 06/20/2012 03:03 pm Peter Maydell

target-arm: Convert debug registers to cp_reginfo

Convert the cp14 debug registers (DBGDIDR, DBGDRAR, DBGDSAR) to the
cp_reginfo scheme.

Signed-off-by: Peter Maydell <>

e8070a23 06/20/2012 03:02 pm Peter Maydell

target-arm: Remove old cpu_arm_set_cp_io infrastructure

All the users of cpu_arm_set_cp_io have been converted, so we
can remove it and the infrastructure it used.

Signed-off-by: Peter Maydell <>

4b6a83fb 06/20/2012 03:01 pm Peter Maydell

target-arm: initial coprocessor register framework

Initial infrastructure for data-driven registration of
coprocessor register implementations.

We still fall back to the old-style switch statements pending
complete conversion of all existing registers.
...

10962fd5 04/27/2012 02:07 pm Peter Maydell

target-arm: Make SETEND respect bswap_code (BE8) setting

Make the SETEND instruction respect the setting of bswap_code,
so that in BE8 mode we UNDEF for attempts to switch into
little-endian mode and nop for attempts to stay in big-endian
mode. (This is the inverse of the existing handling of SETEND...

d8fd2954 04/06/2012 07:25 pm Paul Brook

Userspace ARM BE8 support

Add support for ARM BE8 userspace binaries.
i.e. big-endian data and little-endian code.
In principle LE8 mode is also possible, but AFAIK has never actually
been implemented/used.

System emulation doesn't have any useable big-endian board models,...

06ed5d66 03/30/2012 01:10 pm Andrew Towers

ARM: Permit any ARMv6K CPU to read the MVFR0 and MVFR1 VFP registers.

This patch replaces the ARM_FEATURE_VFP3 test when reading MVFR registers
with a test for a new feature flag ARM_FEATURE_MVFR, and sets this feature
for all ARMv6K cores (ARM1156 is not a v6K core, yet supports MVFR; qemu...

d9e028c1 03/15/2012 07:00 pm Peter Maydell

target-arm: Decode SETEND correctly in Thumb

Decode the SETEND instruction correctly in Thumb mode,
rather than accidentally treating it like CPS. We don't
support BE8 mode, but this change brings the Thumb mode
in to line with behaviour in ARM mode: 'SETEND BE' is...

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

d3cb6e2b 01/13/2012 07:25 pm Peter Maydell

target-arm: Fix errors in decode of M profile CPS

Fix errors in the decode of M profile CPS: * the decode of the I (affects PRIMASK) and F (affects FAULTMASK)
bits was reversed * the FAULTMASK system register number is 19, not 17

This fixes an issue reported as LP:913925....

02afbf64 12/05/2011 10:38 pm Peter Maydell

target-arm/translate.c: Fix slightly misleading comment in Thumb decoder

Clarify some slightly misleading comments in the Thumb decoder's
handling of the memory hint space -- in particular one code path
marked as 'UNPREDICTABLE or unallocated hint' also includes some...

da97f52c 10/19/2011 07:14 pm Peter Maydell

target-arm: Implement VFPv4 fused multiply-accumulate insns

Implement the fused multiply-accumulate instructions (VFMA, VFMS,
VFNMA, VFNMS) which are new in VFPv4.

Signed-off-by: Peter Maydell <>

47789990 10/19/2011 07:14 pm Peter Maydell

target-arm: Rename ARM_FEATURE_DIV to _THUMB_DIV

Rename the ARM_FEATURE_DIV feature bit to _THUMB_DIV, to
make room for a new feature switch enabling DIV in the ARM
encoding. (Cores may implement either (a) no divide insns
(b) divide insns in Thumb encodings only (c) divide insns...

b8b8ea05 10/19/2011 07:14 pm Peter Maydell

target-arm: Add ARM UDIV/SDIV support

Add support for UDIV and SDIV in ARM mode. This is a new optional
feature for A profile cores (Thumb mode has had UDIV and SDIV for
M profile cores for some time).

Signed-off-by: Peter Maydell <>

41e9564d 10/19/2011 07:14 pm Peter Maydell

target-arm: v6 media multiply space: UNDEF on unassigned encodings

Clean up the decoding of the v6 media multiply space so that we UNDEF
on unassigned encodings rather than randomly interpreting them as
some instruction in this space.

Signed-off-by: Peter Maydell <>

87f19eb2 07/26/2011 05:30 pm Peter Maydell

target-arm: Support v6 barriers in linux-user mode

ARMv6 implemented various operations as special cases of cp15 accesses
which are true instructions in v7; this includes barriers (DMB, DSB, ISB).
Catch this special case at translate time, so that it works in linux-user...

934814f1 07/26/2011 05:30 pm Peter Maydell

target-arm: Handle UNDEF and UNPREDICTABLE cases for VLDM, VSTM

Handle the UNDEF and UNPREDICTABLE cases for VLDM and VSTM. In
particular, we now generate an undef exception for overlarge imm8
values rather than generating 1000+ TCG ops and hitting an assertion....

6e0c0ed1 07/26/2011 05:30 pm Peter Maydell

target-arm: UNDEF on a VCVTT/VCVTB UNPREDICTABLE to avoid TCG assert

VCVTT/VCVTB with bit 8 set is UNPREDICTABLE; we choose to UNDEF.
This avoids a TCG assert later when the VCVTT/VCVTB code tries to
use a source register that wasn't ever set up.

We pull the check for the presence of the half-precision extension...

a492892c 07/26/2011 05:30 pm Peter Maydell

target-arm: Don't print debug messages for various UNDEF cases

Remove some stray printfs for cases which don't generally happen
(some VFP UNDEF cases, reads and writes to unknown cp14 registers);
we should simply generate an UNDEF when the instruction is executed....

a3ce3668 07/20/2011 11:23 pm Blue Swirl

Merge branch 'for-upstream' of git://git.linaro.org/people/pmaydell/qemu-arm

  • 'for-upstream' of git://git.linaro.org/people/pmaydell/qemu-arm:
    target-arm: Fix BASEPRI, BASEPRI_MAX, and FAULTMASK access
    target-arm: Minimal implementation of performance counters...
2b41f10e 06/26/2011 09:25 pm Blue Swirl

Remove exec-all.h include directives

Most exec-all.h include directives are now useless, remove them.

Signed-off-by: Blue Swirl <>

74594c9d 06/22/2011 06:02 pm Peter Maydell

target-arm: Minimal implementation of performance counters

Newer Linux kernels assume the existence of the performance counter
cp15 registers. Provide a minimal implementation of these registers.
We support no events. This should be compliant with the ARM ARM,...

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

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

target-arm: Make VFP binop helpers take pointer to fpstatus, not CPUState

Make the VFP binop helper functions take a pointer to the fp status, not
the entire CPUState. This will allow us to use them for Neon operations too.

Signed-off-by: Peter Maydell <>

5aaebd13 06/22/2011 06:01 pm Peter Maydell

target-arm: Add helper function to generate code to get fpstatus pointer

Add and use a helper function which returns a TCGv which is a pointer
to the fp_status for either Neon or VFP operations.

Signed-off-by: Peter Maydell <>

477955bd 06/22/2011 06:01 pm Peter Maydell

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

This reverts commit 947a2fa21b61703802a660a938cabd7b3600ee79,
returning the iwmmxt helpers to passing env in as a parameter.

Signed-off-by: Peter Maydell <>

b7fa9214 06/03/2011 07:13 pm Peter Maydell

target-arm: Fix compilation failure for 64 bit hosts

Use the correct _ptr aliases for manipulating the pointer to
the fp_status; this fixes a compilation failure on 64 bit hosts.

Signed-off-by: Peter Maydell <>
Acked-by: Stefan Weil <>...

5500b06c 05/23/2011 11:39 pm Peter Maydell

target-arm: Use correct float status for Neon int-float conversions

The Neon versions of int-float conversions must use the "standard FPSCR"
rather than the default FPSCR. Implement this by having the helper
functions take a pointer to the appropriate float_status value rather...

605a6aed 05/15/2011 01:22 am Peter Maydell

target-arm: Fix VMLA, VMLS, VNMLS, VNMLA handling of NaNs

Correct handling of NaNs for VFP VMLA, VMLS, VNMLS and VNMLA requires that
we implement the set of negations and additions specified by the ARM ARM;
plausible looking simplifications like turning (-A + B) into (B - A) or...

1301f322 05/08/2011 12:02 pm Stefan Weil

Fix typos in comments (neccessary -> necessary)

Signed-off-by: Stefan Weil <>
Signed-off-by: Stefan Hajnoczi <>

a1c7273b 05/08/2011 12:02 pm Stefan Weil

Fix typos in comments and code (occured -> occurred and related)

The code changed here is an unused data type name (evt_flush_occurred).

Signed-off-by: Stefan Weil <>
Signed-off-by: Stefan Hajnoczi <>

a7d3970d 04/27/2011 09:14 pm Peter Maydell

target-arm: Don't update base register on abort in Thumb T1 LDM

Make sure the base register isn't updated if it is in the load list
for a Thumb LDM (T1 encoding) which aborts partway through the load.

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

5856d44e 04/27/2011 09:13 pm YuYeon Oh

target-arm: fix LDMIA bug on page boundary
target-arm: fix LDMIA bug on page boundary

When consecutive memory locations are on page boundary, a base register may be
loaded before page fault occurs. After page fault handling, it losts the memory
location information. To solve this problem, loading a base register has to put back....

f2dd89d0 04/25/2011 11:10 pm Peter Maydell

target-arm: Handle UNDEF cases for Neon VLD/VST multiple-structures

Correctly UNDEF for Neon VLD/VST "multiple structures" forms where the
align field is not valid.

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

93262b16 04/25/2011 11:10 pm Peter Maydell

target-arm: Handle UNDEFs for Neon single element load/stores

Handle the UNDEF and UNPREDICTABLE cases for Neon "single element to
one lane" VLD and "single element from one lane" VST.

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

e87b7cb0 04/20/2011 11:33 am Stefan Weil

Remove unused function parameters from gen_pc_load and rename the function

Function gen_pc_load was introduced in commit
d2856f1ad4c259e5766847c49acbb4e390731bd4.
The only reason for parameter searched_pc was
a debug statement in target-i386/translate.c....

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

7d80fee5 04/13/2011 12:33 am Peter Maydell

target-arm: Handle UNDEF cases for Neon invalid modified-immediates

For Neon "one register and a modified immediate value" forms, the
combination op=1 cmode=1111 is unallocated and should UNDEF.
All instructions of this form also UNDEF if Q 1 and Vd&lt;0&gt; 1....

695272dc 04/13/2011 12:33 am Peter Maydell

target-arm: Handle UNDEF cases for Neon 3-regs-different-widths

Add missing UNDEF checks for instructions in the Neon "3 registers of
different widths" data processing space.

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

3e3326df 04/13/2011 12:33 am Peter Maydell

target-arm: Handle UNDEF cases for Neon 2 regs + scalar forms

Add missing checks for cases which must UNDEF in the Neon "2 registers and
a scalar" data processing instruction space.

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

52579ea1 04/13/2011 12:33 am Peter Maydell

target-arm: Handle UNDEF cases for VEXT

VEXT must UNDEF if Q 1 && (Vd&lt;0&gt; 1 || Vr<0> 1 || Vm&lt;0&gt; 1)

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

600b828c 04/13/2011 12:33 am Peter Maydell

target-arm: Simplify checking of size field in Neon 2reg-misc forms

Many of the Neon "2 register misc" instruction forms require invalid
size fields to cause the instruction to UNDEF. Pull this information
out into an array; this simplifies the code and also means we can do...

fc2a9b37 04/13/2011 12:33 am Peter Maydell

target-arm: Handle UNDEF cases for Neon 2 register misc forms

Add missing UNDEF checks for Neon "two register miscellaneous" forms: * all instructions except VMOVN,VQMOVN must UNDEF
if Q==1 && (Vd<0> 1 || Vm&lt;0&gt; 1) * VMOVN,VQMOVN,VCVT.F16.F32 UNDEF if Q 1 || Vm&lt;0&gt; 1...

56907d77 04/13/2011 12:33 am Peter Maydell

target-arm: Treat UNPREDICTABLE VTBL, VTBX case as UNDEF

Catch the UNPREDICTABLE case for Neon VTBL,VTBX, and UNDEF it
rather than allowing the helper function to index off the end
of the register file.

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

133da6aa 04/13/2011 12:33 am Juha Riihimäki

target-arm: Handle UNDEF cases for VDUP (scalar)

Handle the UNDEF cases for VDUP:
imm4 x000
Q 1 && Vd<0> == 1

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