drc: fix sub assem_debug print
[pcsx_rearmed.git] / libpcsxcore / new_dynarec / assem_arm.c
index d0d43f4..6524d1f 100644 (file)
@@ -1149,7 +1149,7 @@ void emit_addimm(u_int rs,int imm,u_int rt)
       assem_debug("add %s,%s,#%d\n",regname[rt],regname[rs],imm);
       output_w32(0xe2800000|rd_rn_rm(rt,rs,0)|armval);
     }else if(genimm(-imm,&armval)) {
-      assem_debug("sub %s,%s,#%d\n",regname[rt],regname[rs],imm);
+      assem_debug("sub %s,%s,#%d\n",regname[rt],regname[rs],-imm);
       output_w32(0xe2400000|rd_rn_rm(rt,rs,0)|armval);
     }else if(imm<0) {
       assert(imm>-65536);
@@ -3209,7 +3209,6 @@ do_writestub(int n)
     set_jump_target(restore_jump,(int)out);
   restore_regs(reglist);
   ra=stubs[n][2];
-  if(!restore_jump) ra+=4*3; // skip invcode check
   emit_jmp(ra);
 #else // if !PCSX
   if(addr<0) addr=get_reg(i_regmap,-1);
@@ -4410,11 +4409,19 @@ void cop2_assemble(int i,struct regstat *i_regs)
 static void c2op_prologue(u_int op,u_int reglist)
 {
   save_regs_all(reglist);
+#ifdef PCNT
+  emit_movimm(op,0);
+  emit_call((int)pcnt_gte_start);
+#endif
   emit_addimm(FP,(int)&psxRegs.CP2D.r[0]-(int)&dynarec_local,0); // cop2 regs
 }
 
 static void c2op_epilogue(u_int op,u_int reglist)
 {
+#ifdef PCNT
+  emit_movimm(op,0);
+  emit_call((int)pcnt_gte_end);
+#endif
   restore_regs_all(reglist);
 }