instr 511 platform/ixus200_sd980/sub/100c/stubs.c Error: [undefined instr 28B8] Undefined instruction j instr 80 tools/chdk_dasm.c t_value instr ; /* the raw instruction data */ instr 121 tools/chdk_dasm.c #define RD_is(x) ((instr&RDbits)==RD(x)) instr 122 tools/chdk_dasm.c #define RN_is(x) ((instr&RNbits)==RN(x)) instr 123 tools/chdk_dasm.c #define CP_is(x) ((instr&CPbits)==CP(x)) instr 128 tools/chdk_dasm.c #define BitsDiffer(a,b) ((instr^(instr>>(b-a)))&(1<<a)) instr 567 tools/chdk_dasm.c extern pInstruction instr_disassemble(firmware *fw, t_value instr, t_address addr, pDisOptions opts) { instr 581 tools/chdk_dasm.c fpn = ((instr>>15)&1) + ((instr>>21)&2); instr 586 tools/chdk_dasm.c result.instr = instr 624 tools/chdk_dasm.c switch ((instr>>24)&15) { instr 627 tools/chdk_dasm.c if ((instr&(15<<4))!=(9<<4)) goto lMaybeLDRHetc; // F0 90 instr 629 tools/chdk_dasm.c if (instr&(1<<23)) { /* long multiply */ instr 630 tools/chdk_dasm.c mnemonic = _i_mul[(instr>>21)&3]; instr 634 tools/chdk_dasm.c if (instr&(1<<22)) goto laUndefined; /* "class C" */ instr 636 tools/chdk_dasm.c if (instr&(1<<21)) { /* short multiply */ instr 645 tools/chdk_dasm.c if (instr&Sbit) *flagp++='S'; instr 651 tools/chdk_dasm.c if ((instr&0x0FF000F0)==0x01200010) { /* BX */ instr 656 tools/chdk_dasm.c if ((instr&0x0FF000F0)==0x01200030) { /* BLX */ instr 661 tools/chdk_dasm.c if ((instr&0x02B00FF0)==0x00000090) { /* SWP */ instr 664 tools/chdk_dasm.c if (instr&Bbit) *flagp++='B'; instr 667 tools/chdk_dasm.c if ((instr&0x02BF0FFF)==0x000F0000) { /* MRS */ instr 669 tools/chdk_dasm.c format = (instr&SPSRbit) ? "3,SPSR" : "3,CPSR"; instr 673 tools/chdk_dasm.c if ((instr&0x0FB00010)==0x03200000) { /* MSR psr<P=0/1...>,Rm */ instr 675 tools/chdk_dasm.c format = (instr&SPSRbit) ? "SPSR,0" : "CPSR,0"; instr 679 tools/chdk_dasm.c if ((instr&0x0FB00010)==0x01200000) { /* MSR {C,S}PSR_flag,op2 */ instr 681 tools/chdk_dasm.c format = (instr&SPSRbit) ? "SPSR_cxsf,*" : "CPSR_cxsf,*"; instr 682 tools/chdk_dasm.c if (!(instr&Ibit) && (instr&(15<<4))) instr 689 tools/chdk_dasm.c if ( (instr&(14<<24))==0 && ((instr&(9<<4))==(9<<4)) ) instr 691 tools/chdk_dasm.c if ((instr&(Wbit+Pbit))==Wbit) goto lbUndefined; /* "class E", case 1 */ instr 692 tools/chdk_dasm.c if ((instr&(Lbit+(1<<6)))==(1<<6)) /* is it LDRD/STRD or LDRSH/STRSH */ instr 694 tools/chdk_dasm.c if ((instr&(1<<6))!=(1<<6)) goto lcUndefined ; instr 695 tools/chdk_dasm.c mnemonic = _i_ldr_str[(instr & 0x0000020) >> 5]; /* */ instr 696 tools/chdk_dasm.c if (instr&(1<<6)) *flagp++='D'; instr 698 tools/chdk_dasm.c if (!(instr&(1<<22))) instr |= Ibit; instr 703 tools/chdk_dasm.c mnemonic = _i_str_ldr[(instr&Lbit) >> 20]; instr 704 tools/chdk_dasm.c if (instr&(1<<6)) *flagp++='S'; instr 705 tools/chdk_dasm.c *flagp++ = (instr&(1<<5)) ? 'H' : 'B'; /* fixed 2011/03/27 - B & H reversed */ instr 707 tools/chdk_dasm.c if (!(instr&(1<<22))) instr |= Ibit; instr 714 tools/chdk_dasm.c { t_value op21 = instr&(15<<21); instr 716 tools/chdk_dasm.c && ((instr&(RNbits+Ibit+Sbit))==RN(15)+Ibit) /* imm, no S */ instr 721 tools/chdk_dasm.c if ((instr&(30<<7))!=0 && !(instr&3)) result.oddbits=1; instr 725 tools/chdk_dasm.c && ((instr&(Ibit))==Ibit) /* imm */ instr 726 tools/chdk_dasm.c && ((instr&0xFFF)==0) /* 0 offset */ instr 731 tools/chdk_dasm.c if (instr&Sbit && (op21<(8<<21) || op21>=(12<<21))) *flagp++='S'; instr 740 tools/chdk_dasm.c if (instr&RDbits) { instr 741 tools/chdk_dasm.c if ((instr&Sbit) && RD_is(15)) instr 745 tools/chdk_dasm.c if (!(instr&Sbit)) goto ldUndefined; /* CMP etc, no S bit */ instr 749 tools/chdk_dasm.c if (instr&RNbits) result.oddbits=1; instr 752 tools/chdk_dasm.c if (instr&Sbit && (op21<(8<<21) || op21>=(12<<21))) *flagp++='S'; instr 760 tools/chdk_dasm.c if ((instr&Ibit) && (instr&(1<<4))) goto leUndefined; /* "class A" */ instr 761 tools/chdk_dasm.c mnemonic = _i_str_ldr[(instr&Lbit) >> 20]; instr 763 tools/chdk_dasm.c if (instr&Bbit) *flagp++='B'; instr 764 tools/chdk_dasm.c if ((instr&(Wbit+Pbit))==Wbit) *flagp++='T'; instr 770 tools/chdk_dasm.c mnemonic = _i_stm_ldm[(instr&Lbit) >> 20]; instr 772 tools/chdk_dasm.c t_value x = (instr&(3<<23)) >> 23; instr 773 tools/chdk_dasm.c if (instr&Lbit) x^=3; instr 781 tools/chdk_dasm.c *flagp++ = (instr&Ubit) ? 'I' : 'D'; instr 782 tools/chdk_dasm.c *flagp++ = (instr&Pbit) ? 'B' : 'A'; instr 789 tools/chdk_dasm.c mnemonic = _i_b_bl[(instr&(1<<24))>>24]; instr 796 tools/chdk_dasm.c mnemonic = _i_stf_ldf[(instr&Lbit) >> 20]; instr 802 tools/chdk_dasm.c mnemonic = _i_sfm_lfm[(instr&Lbit) >> 20]; instr 805 tools/chdk_dasm.c if ((instr&255)!=fpn) goto lNonStackLFM; /* r13 and U!=P, so treat as stack */ instr 821 tools/chdk_dasm.c mnemonic = _i_stc_ldc[(instr&Lbit) >> 20]; instr 823 tools/chdk_dasm.c if (instr&(1<<22)) *flagp++ = 'L'; instr 829 tools/chdk_dasm.c if (instr&(1<<4)) { /* MRC/MCR. */ instr 831 tools/chdk_dasm.c if ((instr&Lbit) && RD_is(15)) { /* MCR in FPU with Rd=r15: comparison (ugh) */ instr 832 tools/chdk_dasm.c if (!(instr&(1<<23))) goto lfUndefined; /* unused operation */ instr 833 tools/chdk_dasm.c mnemonic = _i_cmf[(instr&(3<<21)) >> 21]; instr 835 tools/chdk_dasm.c if (instr&((1<<19)+(7<<5))) instr 839 tools/chdk_dasm.c t_value op20 = instr&(15<<20); instr 844 tools/chdk_dasm.c { char c = "SDE*"[((instr>>7)&1) + ((instr>>18)&2)]; instr 847 tools/chdk_dasm.c if (instr&15) result.oddbits=1; /* Fm and const flag unused */ instr 850 tools/chdk_dasm.c if (instr&((1<<7)+(1<<19))) instr 855 tools/chdk_dasm.c *flagp++ = "SDEP"[((instr>>7)&1) + ((instr>>18)&2)]; instr 856 tools/chdk_dasm.c *flagp++ = "\0PMZ"[(instr&(3<<5))>>5]; instr 857 tools/chdk_dasm.c if (instr&(7<<15)) result.oddbits=1; /* Fn unused */ instr 858 tools/chdk_dasm.c if (instr&(1<<3)) result.badbits=1; /* no immediate consts */ instr 862 tools/chdk_dasm.c if (instr&(3<<5)) result.badbits=1; /* rmode reserved */ instr 863 tools/chdk_dasm.c if (instr&(15+(7<<15))) result.oddbits=1; /* iFm, Fn unused */ instr 869 tools/chdk_dasm.c mnemonic = _i_mcr_mrc[(instr&Lbit)>>20]; instr 876 tools/chdk_dasm.c ((instr&(15<<20)) >> 20) /* opcode -> bits 5432 */ instr 877 tools/chdk_dasm.c + ((instr&(1<<15)) >> 11)]; /* monadicP -> bit 6 */ instr 878 tools/chdk_dasm.c format = (instr&(1<<15)) ? "8,+" : "8,9,+"; instr 879 tools/chdk_dasm.c *flagp++ = "SDE*"[((instr>>7)&1) + ((instr>>18)&2)]; instr 880 tools/chdk_dasm.c *flagp++ = "\0PMZ"[(instr&(3<<5))>>5]; /* foregoing relies on this being the last flag! */ instr 939 tools/chdk_dasm.c result.instr = instr ; instr 942 tools/chdk_dasm.c instr = 14 << 28; // no condition code please, see below instr 960 tools/chdk_dasm.c t_value cond = instr>>28; instr 992 tools/chdk_dasm.c if (((unsigned long)result.instr > (unsigned long)addr) && ((unsigned long)result.instr < (unsigned long)addr+0x1000)) { // looks like a jumptable instr 994 tools/chdk_dasm.c op = sub_hex8(fw, op, result.instr); instr 997 tools/chdk_dasm.c op = yhex8(fw, op, result.instr); instr 1002 tools/chdk_dasm.c result.swinum = instr&0x00FFFFFF; instr 1013 tools/chdk_dasm.c { t_value w = instr&0xFFFF; instr 1031 tools/chdk_dasm.c if (instr&(1<<22)) *op++='^'; instr 1035 tools/chdk_dasm.c { t_address target = ((t_address) addr ) + 8 + ((t_address) ((((int)instr)<<8) >>6 )) ; instr 1044 tools/chdk_dasm.c if (instr&Wbit) *op++='!'; instr 1050 tools/chdk_dasm.c { t_value w = (instr>>20)&15; instr 1058 tools/chdk_dasm.c if (instr&Ibit) { instr 1060 tools/chdk_dasm.c t_value imm8 = (instr&255); instr 1061 tools/chdk_dasm.c t_value rot = (instr>>7)&30; instr 1099 tools/chdk_dasm.c if (instr&(1<<22)) a-=imm8; else a+=imm8; instr 1108 tools/chdk_dasm.c const char * rot = _i_lsl_lsr[(instr&(3<<5)) >> 5]; instr 1109 tools/chdk_dasm.c op = append(op, regnames[instr&15]); instr 1110 tools/chdk_dasm.c if (instr&(1<<4)) { instr 1112 tools/chdk_dasm.c if (instr&(1<<7)) goto ljUndefined; instr 1115 tools/chdk_dasm.c op = append(op,regnames[(instr&(15<<8))>>8]); instr 1119 tools/chdk_dasm.c t_value n = instr&(31<<7); instr 1121 tools/chdk_dasm.c if (!(instr&(3<<5))) break; instr 1122 tools/chdk_dasm.c else if ((instr&(3<<5))==(3<<5)) { instr 1134 tools/chdk_dasm.c if (instr&(1<<3)) { instr 1135 tools/chdk_dasm.c t_value w = instr&7; instr 1142 tools/chdk_dasm.c *op++=(char)('0'+(instr&7)); instr 1150 tools/chdk_dasm.c { t_value w = instr&(7<<5); instr 1162 tools/chdk_dasm.c op = append(op, regnames[(instr&RNbits)>>16]); instr 1164 tools/chdk_dasm.c if (!(instr&Pbit)) *op++=']'; instr 1171 tools/chdk_dasm.c if (instr&Ibit) { instr 1173 tools/chdk_dasm.c if (!(instr&Ubit)) *op++='-'; instr 1178 tools/chdk_dasm.c instr ^= Ibit; instr 1179 tools/chdk_dasm.c if (instr&(1<<4)) { instr 1181 tools/chdk_dasm.c if (is_v4 && !(instr&(15<<8))) { instr 1182 tools/chdk_dasm.c ip = (instr&Pbit) ? "0]" : "0"; instr 1190 tools/chdk_dasm.c if (instr&Pbit) ip="*]'"; instr 1191 tools/chdk_dasm.c else if (instr&(1<<27)) { instr 1193 tools/chdk_dasm.c if (!(instr&Wbit)) goto lkUndefined; instr 1203 tools/chdk_dasm.c if (instr&(1<<27)) { /* LDF or LFM or similar */ instr 1204 tools/chdk_dasm.c offset = (instr&255)<<2; instr 1207 tools/chdk_dasm.c else if (is_v4) offset = (instr&15) + ((instr&(15<<8))>>4); instr 1209 tools/chdk_dasm.c offset = instr&0xFFF; instr 1217 tools/chdk_dasm.c if (!(instr&Ubit)) instr 1226 tools/chdk_dasm.c if (RN_is(15) && (instr&Pbit)) instr 1230 tools/chdk_dasm.c result.target = (instr&Ubit) ? addr+8 + offset instr 1232 tools/chdk_dasm.c if (!(instr&Wbit)) instr 1242 tools/chdk_dasm.c if (instr&Pbit) { *op++=']'; goto lPling; } instr 1243 tools/chdk_dasm.c else if (instr&(1<<27)) { instr 1245 tools/chdk_dasm.c if (!(instr&Wbit)) goto llUndefined; instr 1253 tools/chdk_dasm.c op = append(op, regnames[(instr>>(4*(c-'0')))&15]); instr 1257 tools/chdk_dasm.c *op++=(char)('0' + ((instr>>(4*(c-'5')))&7)); instr 1260 tools/chdk_dasm.c *op++ = (char)('0' + ((instr>>21)&7)); instr 1263 tools/chdk_dasm.c op = reg(op, 'p', instr>>8); instr 1267 tools/chdk_dasm.c op = reg(op, 'c', instr >> (4*(c-1))); instr 1342 tools/chdk_dasm.c pInstruction instr = instr_disassemble(fw, w, addr, &options); instr 1372 tools/chdk_dasm.c if (instr->undefined || instr->badbits || instr->oddbits) { instr 1374 tools/chdk_dasm.c if (instr->undefined) fprintf(outfile,"[---undefined instr---] 0x%8.8X ", w); instr 1375 tools/chdk_dasm.c if (instr->badbits) fprintf(outfile, "[---illegal bits---] 0x%8.8X ", w); instr 1376 tools/chdk_dasm.c if (instr->oddbits) fprintf(outfile, "[---unexpected bits---] 0x%8.8X ", w); instr 1377 tools/chdk_dasm.c if ( !((instr->undefined) || (instr->badbits) || (instr->oddbits)) ) instr 1387 tools/chdk_dasm.c strcat( instr->text, " \\n\"") ; instr 1396 tools/chdk_dasm.c fprintf(outfile,"%s%-40s // rom:%.8x 0x%8.8X", indent, instr->text, addr, w); instr 1398 tools/chdk_dasm.c else fprintf(outfile,"%s%s", indent, instr->text);