cpu.c (9ac5df20f51fabcba0d902025df4bd7ea987c158) | cpu.c (7fbc6a403a0aab834e764fa61d81ed8586cfe352) |
---|---|
1/* 2 * QEMU ARM CPU 3 * 4 * Copyright (c) 2012 SUSE LINUX Products GmbH 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 --- 279 unchanged lines hidden (view full) --- 288 env->v7m.ccr[M_REG_NS] |= R_V7M_CCR_NONBASETHRDENA_MASK; 289 env->v7m.ccr[M_REG_S] |= R_V7M_CCR_NONBASETHRDENA_MASK; 290 } 291 if (!arm_feature(env, ARM_FEATURE_M_MAIN)) { 292 env->v7m.ccr[M_REG_NS] |= R_V7M_CCR_UNALIGN_TRP_MASK; 293 env->v7m.ccr[M_REG_S] |= R_V7M_CCR_UNALIGN_TRP_MASK; 294 } 295 | 1/* 2 * QEMU ARM CPU 3 * 4 * Copyright (c) 2012 SUSE LINUX Products GmbH 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 --- 279 unchanged lines hidden (view full) --- 288 env->v7m.ccr[M_REG_NS] |= R_V7M_CCR_NONBASETHRDENA_MASK; 289 env->v7m.ccr[M_REG_S] |= R_V7M_CCR_NONBASETHRDENA_MASK; 290 } 291 if (!arm_feature(env, ARM_FEATURE_M_MAIN)) { 292 env->v7m.ccr[M_REG_NS] |= R_V7M_CCR_UNALIGN_TRP_MASK; 293 env->v7m.ccr[M_REG_S] |= R_V7M_CCR_UNALIGN_TRP_MASK; 294 } 295 |
296 if (arm_feature(env, ARM_FEATURE_VFP)) { | 296 if (cpu_isar_feature(aa32_vfp_simd, cpu)) { |
297 env->v7m.fpccr[M_REG_NS] = R_V7M_FPCCR_ASPEN_MASK; 298 env->v7m.fpccr[M_REG_S] = R_V7M_FPCCR_ASPEN_MASK | 299 R_V7M_FPCCR_LSPEN_MASK | R_V7M_FPCCR_S_MASK; 300 } 301 /* Unlike A/R profile, M profile defines the reset LR value */ 302 env->regs[14] = 0xffffffff; 303 304 env->v7m.vecbase[M_REG_S] = cpu->init_svtor & 0xffffff80; --- 701 unchanged lines hidden (view full) --- 1006 ns_status, 1007 aarch32_mode_name(psr), (psr & 0x10) ? 32 : 26); 1008 } 1009 1010 if (flags & CPU_DUMP_FPU) { 1011 int numvfpregs = 0; 1012 if (cpu_isar_feature(aa32_simd_r32, cpu)) { 1013 numvfpregs = 32; | 297 env->v7m.fpccr[M_REG_NS] = R_V7M_FPCCR_ASPEN_MASK; 298 env->v7m.fpccr[M_REG_S] = R_V7M_FPCCR_ASPEN_MASK | 299 R_V7M_FPCCR_LSPEN_MASK | R_V7M_FPCCR_S_MASK; 300 } 301 /* Unlike A/R profile, M profile defines the reset LR value */ 302 env->regs[14] = 0xffffffff; 303 304 env->v7m.vecbase[M_REG_S] = cpu->init_svtor & 0xffffff80; --- 701 unchanged lines hidden (view full) --- 1006 ns_status, 1007 aarch32_mode_name(psr), (psr & 0x10) ? 32 : 26); 1008 } 1009 1010 if (flags & CPU_DUMP_FPU) { 1011 int numvfpregs = 0; 1012 if (cpu_isar_feature(aa32_simd_r32, cpu)) { 1013 numvfpregs = 32; |
1014 } else if (arm_feature(env, ARM_FEATURE_VFP)) { | 1014 } else if (cpu_isar_feature(aa32_vfp_simd, cpu)) { |
1015 numvfpregs = 16; 1016 } 1017 for (i = 0; i < numvfpregs; i++) { 1018 uint64_t v = *aa32_vfp_dreg(env, i); 1019 qemu_fprintf(f, "s%02d=%08x s%02d=%08x d%02d=%016" PRIx64 "\n", 1020 i * 2, (uint32_t)v, 1021 i * 2 + 1, (uint32_t)(v >> 32), 1022 i, v); --- 1931 unchanged lines hidden --- | 1015 numvfpregs = 16; 1016 } 1017 for (i = 0; i < numvfpregs; i++) { 1018 uint64_t v = *aa32_vfp_dreg(env, i); 1019 qemu_fprintf(f, "s%02d=%08x s%02d=%08x d%02d=%016" PRIx64 "\n", 1020 i * 2, (uint32_t)v, 1021 i * 2 + 1, (uint32_t)(v >> 32), 1022 i, v); --- 1931 unchanged lines hidden --- |