diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-01-26 17:32:08 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-01-26 17:32:08 +0100 |
commit | 43e09c468b4c6562c93c9375a316012e238d21b2 (patch) | |
tree | 306aedb0dc3c1bc6f35c26a2a60b07d59fd5647d /sys/src/9/omap/trap.c | |
parent | 44eb643cb253eb0743ac69e9aa5073dea3ad232d (diff) |
omap: update omap kernel (from sources)
refactors of the usb ehci code and adds vfp support
Diffstat (limited to 'sys/src/9/omap/trap.c')
-rw-r--r-- | sys/src/9/omap/trap.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/sys/src/9/omap/trap.c b/sys/src/9/omap/trap.c index 7fab7c778..d7f1a592b 100644 --- a/sys/src/9/omap/trap.c +++ b/sys/src/9/omap/trap.c @@ -390,7 +390,7 @@ irq(Ureg* ureg) switch (irqno) { case 56: case 57: - iprint(" (I²C)"); + iprint(" (IC)"); break; case 83: case 86: @@ -589,16 +589,22 @@ trap(Ureg *ureg) break; case PsrMund: /* undefined instruction */ if(user){ - /* look for floating point instructions to interpret */ - x = spllo(); - rv = fpiarm(ureg); - splx(x); - if(rv == 0){ - ldrexvalid = 0; - snprint(buf, sizeof buf, - "undefined instruction: pc %#lux\n", - ureg->pc); + if(seg(up, ureg->pc, 0) != nil && + *(u32int*)ureg->pc == 0xD1200070){ + snprint(buf, sizeof buf, "sys: breakpoint"); postnote(up, 1, buf, NDebug); + }else{ + /* look for floating point instructions to interpret */ + x = spllo(); + rv = fpiarm(ureg); + splx(x); + if(rv == 0){ + ldrexvalid = 0; + snprint(buf, sizeof buf, + "undefined instruction: pc %#lux\n", + ureg->pc); + postnote(up, 1, buf, NDebug); + } } }else{ if (ureg->pc & 3) { |