diff options
author | David 'Digit' Turner <digit@google.com> | 2009-09-20 13:10:19 -0700 |
---|---|---|
committer | David 'Digit' Turner <digit@google.com> | 2009-09-20 13:10:19 -0700 |
commit | 238b4b0ef1a01afa66ef267dae4a96401ad386db (patch) | |
tree | d6cab191674a2141c5adc12d5becb488f89b7e7e /target-arm | |
parent | 060749410208cd5a0e25faacdd6a5ef1ae8cf6d5 (diff) | |
download | external_qemu-238b4b0ef1a01afa66ef267dae4a96401ad386db.zip external_qemu-238b4b0ef1a01afa66ef267dae4a96401ad386db.tar.gz external_qemu-238b4b0ef1a01afa66ef267dae4a96401ad386db.tar.bz2 |
Fix ARMv7 emulation by disabling CPU alignment exceptions
Disable alignment CPU exceptions to be able to boot an ARMv7 system image.
This is because 4.4.0 emits a machine code sequence that stores an 8-bytes double
on a 4-byte aligned address on the stack in the implementation of cvt() in the C
library (see the disassembly for bionic/libc/stdio/vfprintf.c). It is uncertain
that this is a compiler bug at this point, but the upstream QEMU sources don't have
alignment exceptions enabled for any ARM target anyway.
Also, add a check to force CPU emulation to "cortex-a8" if the kernel file name
ends in "-armv7". This is a poor man's approach to hardware configuration that will
be replaced by a more sophisticated solution in the future. Right now, we just want
to be able to build -user system images with the dex preopt pass running in the
emulator with the minimum amount of fuss.
Diffstat (limited to 'target-arm')
-rw-r--r-- | target-arm/op_helper.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c index 64bab2b..05eb558 100644 --- a/target-arm/op_helper.c +++ b/target-arm/op_helper.c @@ -70,7 +70,7 @@ uint32_t HELPER(neon_tbl)(uint32_t ireg, uint32_t def, static void do_unaligned_access (target_ulong addr, int is_write, int is_user, void *retaddr); #define MMUSUFFIX _mmu -#define ALIGNED_ONLY 1 +//#define ALIGNED_ONLY 1 #define SHIFT 0 #include "softmmu_template.h" |