summaryrefslogtreecommitdiff
path: root/sys/src/libmach/5db.c
diff options
context:
space:
mode:
authorjpathy <jpathy@mail.nanosouffle.net>2013-06-10 18:07:16 +0530
committerjpathy <jpathy@mail.nanosouffle.net>2013-06-10 18:07:16 +0530
commitde463408482b3d1e5c361866ac7500c07c5f4e96 (patch)
tree9c549e05c063bc3b3ad86a8089db2993feadcca9 /sys/src/libmach/5db.c
parent686f9fa1db8c6f12d86f186cd141485eadaae15e (diff)
ARM: kernel changes make teg2 procfork() call fpuprocfork() and acid fixes for vfp instruction
Diffstat (limited to 'sys/src/libmach/5db.c')
-rw-r--r--sys/src/libmach/5db.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/src/libmach/5db.c b/sys/src/libmach/5db.c
index 21b788d55..c477ec44c 100644
--- a/sys/src/libmach/5db.c
+++ b/sys/src/libmach/5db.c
@@ -247,13 +247,14 @@ armclass(long w)
op = 108;
break;
case 7:
- if(((w >> 19) & 0x1) == 0)
+ if(((w >> 19) & 0x1) == 0){
if(((w >> 17) & 0x1) == 0)
op = 109 + ((w >> 16) & 0x4) +
((w >> 15) & 0x2) +
((w >> 7) & 0x1);
else if(((w >> 16) & 0x7) == 0x7)
op = 117;
+ }
else
switch((w >> 16) & 0x7){
case 0:
@@ -405,6 +406,16 @@ armdps(Opcode *o, Instr *i)
return;
}
}
+ if(i->rd == 15) {
+ if(i->op == 120) {
+ format("MOVW", i, "PSR, %x");
+ return;
+ } else
+ if(i->op == 121) {
+ format("MOVW", i, "%x, PSR");
+ return;
+ }
+ }
format(o->o, i, o->a);
}