On 03/06/2013 12:08 AM, Peter Maydell wrote:
> On 5 March 2013 23:07, Fabien Chouteau wrote:
>> On 03/05/2013 01:33 PM, Peter Maydell wrote:
>>> IE + BE8 (data) looks very very similar to BE32 from the point of view
>>> of code on the CPU; it is code that expects a BE32 kind of view of
>>> the wor
On 5 March 2013 23:07, Fabien Chouteau wrote:
> On 03/05/2013 01:33 PM, Peter Maydell wrote:
>> To correctly emulate a bigendian v6/v7 non-R profile core you would
>> need to arrange for the bswap_code flag to be set (which then causes
>> us to re-byte-swap code accesses to undo the endianness fli
On 03/05/2013 01:33 PM, Peter Maydell wrote:
> On 5 March 2013 18:56, Fabien Chouteau wrote:
>> On 03/04/2013 02:24 PM, Paul Brook wrote:
On 03/01/2013 09:58 PM, Paul Brook wrote:
>
> This is wrong for all the CPUs QEMU crrently supports. SCTLR.IE is
> defined to be zero.
>>>
On 5 March 2013 18:56, Fabien Chouteau wrote:
> On 03/04/2013 02:24 PM, Paul Brook wrote:
>>> On 03/01/2013 09:58 PM, Paul Brook wrote:
> +#ifdef TARGET_WORDS_BIGENDIAN
> +if (arm_feature(env, ARM_FEATURE_V6)
> +|| arm_feature(env, ARM_FEATURE_V7)) {
> +/* IE an
On 03/04/2013 02:24 PM, Paul Brook wrote:
>> On 03/01/2013 09:58 PM, Paul Brook wrote:
+#ifdef TARGET_WORDS_BIGENDIAN
+if (arm_feature(env, ARM_FEATURE_V6)
+|| arm_feature(env, ARM_FEATURE_V7)) {
+/* IE and EE bits stay set for big-endian */
+env
> On 03/01/2013 09:58 PM, Paul Brook wrote:
> >> +#ifdef TARGET_WORDS_BIGENDIAN
> >> +if (arm_feature(env, ARM_FEATURE_V6)
> >> +|| arm_feature(env, ARM_FEATURE_V7)) {
> >> +/* IE and EE bits stay set for big-endian */
> >> +env->cp15.c1_sys |= (1 << 31) | (1 << 25);
> >
On 03/01/2013 09:58 PM, Paul Brook wrote:
>> +#ifdef TARGET_WORDS_BIGENDIAN
>> +if (arm_feature(env, ARM_FEATURE_V6)
>> +|| arm_feature(env, ARM_FEATURE_V7)) {
>> +/* IE and EE bits stay set for big-endian */
>> +env->cp15.c1_sys |= (1 << 31) | (1 << 25);
>> +}
>> +#
> +#ifdef TARGET_WORDS_BIGENDIAN
> +if (arm_feature(env, ARM_FEATURE_V6)
> +|| arm_feature(env, ARM_FEATURE_V7)) {
> +/* IE and EE bits stay set for big-endian */
> +env->cp15.c1_sys |= (1 << 31) | (1 << 25);
> +}
> +#endif
This is wrong for all the CPUs QEMU crrent
CPSR.E, SCTLR.EE and SCTLR.IE
Signed-off-by: Fabien Chouteau
---
target-arm/cpu.c| 11 +++
target-arm/helper.c | 18 ++
2 files changed, 29 insertions(+)
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index 5dfcb74..354843e 100644
--- a/target-arm/cpu.c
+++ b/t