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);