]> git.lizzy.rs Git - plan9front.git/commitdiff
fpiarm: condok() verfiy before specialop() omap/kw
authorjpathy <jpathy@mail.nanosouffle.net>
Fri, 14 Jun 2013 18:12:30 +0000 (23:42 +0530)
committerjpathy <jpathy@mail.nanosouffle.net>
Fri, 14 Jun 2013 18:12:30 +0000 (23:42 +0530)
sys/src/9/kw/fpiarm.c
sys/src/9/omap/fpiarm.c

index 7adfd135499ec2511e67e58100b260996f0c3d16..8d5a20e52ae6baee24abb780e6eb9e5aa60d26d1 100644 (file)
@@ -749,8 +749,10 @@ fpiarm(Ureg *ur)
                for(i = 0; specialopc[i].f; i++)
                        if((op & specialopc[i].mask) == specialopc[i].opc)
                                break;
-               if(specialopc[i].f)
-                       specialopc[i].f(ur->pc, op, ur);
+               if(specialopc[i].f){
+                       if(condok(ur->psr, op>>28))
+                               specialopc[i].f(ur->pc, op, ur);
+               }
                else if(ISVFPOP(cp, o)){
                        if(condok(ur->psr, op>>28))
                                vfpemu(ur->pc, op, ur, ufp);
index 7adfd135499ec2511e67e58100b260996f0c3d16..8d5a20e52ae6baee24abb780e6eb9e5aa60d26d1 100644 (file)
@@ -749,8 +749,10 @@ fpiarm(Ureg *ur)
                for(i = 0; specialopc[i].f; i++)
                        if((op & specialopc[i].mask) == specialopc[i].opc)
                                break;
-               if(specialopc[i].f)
-                       specialopc[i].f(ur->pc, op, ur);
+               if(specialopc[i].f){
+                       if(condok(ur->psr, op>>28))
+                               specialopc[i].f(ur->pc, op, ur);
+               }
                else if(ISVFPOP(cp, o)){
                        if(condok(ur->psr, op>>28))
                                vfpemu(ur->pc, op, ur, ufp);