aboutsummaryrefslogtreecommitdiffstats
path: root/target-arm
diff options
context:
space:
mode:
authorJack Veenstra <veenstra@android.com>2009-04-30 15:07:18 -0700
committerJack Veenstra <veenstra@android.com>2009-04-30 15:07:18 -0700
commitab42ada6ecfb81d6e231d5997b5892efd0fde5ad (patch)
tree1f0b7ee08a368fd702bb750d21b5354c0598d46d /target-arm
parentfbcbf4201b9b56b72e9a06d292ae94360dd66b9e (diff)
downloadexternal_qemu-ab42ada6ecfb81d6e231d5997b5892efd0fde5ad.zip
external_qemu-ab42ada6ecfb81d6e231d5997b5892efd0fde5ad.tar.gz
external_qemu-ab42ada6ecfb81d6e231d5997b5892efd0fde5ad.tar.bz2
Added tracing of exceptions to the emulator.
Exceptions used to be traced but that code was deleted during a large merge.
Diffstat (limited to 'target-arm')
-rw-r--r--target-arm/helper.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/target-arm/helper.c b/target-arm/helper.c
index 7cc8b0f..85753e4 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -7,6 +7,9 @@
#include "gdbstub.h"
#include "helpers.h"
#include "qemu-common.h"
+#ifdef CONFIG_TRACE
+#include "trace.h"
+#endif
static uint32_t cortexa8_cp15_c0_c1[8] =
{ 0x1031, 0x11, 0x400, 0, 0x31100003, 0x20000000, 0x01202000, 0x11 };
@@ -702,6 +705,12 @@ void do_interrupt(CPUARMState *env)
int new_mode;
uint32_t offset;
+#ifdef CONFIG_TRACE
+ if (tracing) {
+ trace_exception(env->regs[15]);
+ }
+#endif
+
if (IS_M(env)) {
do_interrupt_v7m(env);
return;