Lines Matching +full:0 +full:x101
27 #define sign_extend(x, signbit) ((x) | (0 - ((x) & (1 << (signbit)))))
29 #define branch_displacement(insn) sign_extend(((insn) & 0xffffff) << 2, 25)
80 regs->ARM_pc = iaddr + 8 + disp + ((insn >> 23) & 0x2); in simulate_blx1()
87 int rm = insn & 0xf; in simulate_blx2bx()
93 regs->ARM_pc = rmv & ~0x1; in simulate_blx2bx()
95 if (rmv & 0x1) in simulate_blx2bx()
102 int rd = (insn >> 12) & 0xf; in simulate_mrs()
103 unsigned long mask = 0xf8ff03df; /* Mask out execution state */ in simulate_mrs()
127 /* PLDI (immediate) 1111 0100 x101 xxxx xxxx xxxx xxxx xxxx */
129 /* PLD (immediate) 1111 0101 x101 xxxx xxxx xxxx xxxx xxxx */
130 DECODE_SIMULATE (0xfe300000, 0xf4100000, PROBES_PRELOAD_IMM),
133 /* PLDI (register) 1111 0110 x101 xxxx xxxx xxxx xxx0 xxxx */
135 /* PLD (register) 1111 0111 x101 xxxx xxxx xxxx xxx0 xxxx */
136 DECODE_SIMULATE (0xfe300010, 0xf6100000, PROBES_PRELOAD_REG),
139 DECODE_SIMULATE (0xfe000000, 0xfa000000, PROBES_BRANCH_IMM),
163 DECODE_SIMULATEX(0x0ff000f0, 0x01000000, PROBES_MRS,
164 REGS(0, NOPC, 0, 0, 0)),
167 DECODE_SIMULATE (0x0ff000f0, 0x01200010, PROBES_BRANCH_REG),
170 DECODE_SIMULATEX(0x0ff000f0, 0x01200030, PROBES_BRANCH_REG,
171 REGS(0, 0, 0, 0, NOPC)),
174 DECODE_EMULATEX (0x0ff000f0, 0x01600010, PROBES_CLZ,
175 REGS(0, NOPC, 0, 0, NOPC)),
181 DECODE_EMULATEX (0x0f9000f0, 0x01000050, PROBES_SATURATING_ARITHMETIC,
182 REGS(NOPC, NOPC, 0, 0, NOPC)),
185 /* MSR cccc 0001 0x10 xxxx xxxx xxxx 0000 xxxx */
197 DECODE_EMULATEX (0x0ff00090, 0x01400080, PROBES_MUL1,
198 REGS(NOPC, NOPC, NOPC, 0, NOPC)),
201 DECODE_OR (0x0ff000b0, 0x012000a0),
203 DECODE_EMULATEX (0x0ff00090, 0x01600080, PROBES_MUL2,
204 REGS(NOPC, 0, NOPC, 0, NOPC)),
207 DECODE_OR (0x0ff00090, 0x01000080),
209 DECODE_EMULATEX (0x0ff000b0, 0x01200080, PROBES_MUL2,
210 REGS(NOPC, NOPC, NOPC, 0, NOPC)),
220 DECODE_EMULATEX (0x0fe000f0, 0x00000090, PROBES_MUL2,
221 REGS(NOPC, 0, NOPC, 0, NOPC)),
225 DECODE_OR (0x0fe000f0, 0x00200090),
227 DECODE_EMULATEX (0x0ff000f0, 0x00600090, PROBES_MUL2,
228 REGS(NOPC, NOPC, NOPC, 0, NOPC)),
231 DECODE_OR (0x0ff000f0, 0x00400090),
240 DECODE_EMULATEX (0x0f8000f0, 0x00800090, PROBES_MUL1,
241 REGS(NOPC, NOPC, NOPC, 0, NOPC)),
251 /* SMP/SWPB cccc 0001 0x00 xxxx xxxx xxxx 1001 xxxx */
252 DECODE_EMULATEX (0x0fb000f0, 0x01000090, PROBES_SWP,
253 REGS(NOPC, NOPC, 0, 0, NOPC)),
268 DECODE_REJECT (0x0f200090, 0x00200090),
271 DECODE_REJECT (0x0e10e0d0, 0x0000e0d0),
275 DECODE_EMULATEX (0x0e5000d0, 0x000000d0, PROBES_LDRSTRD,
276 REGS(NOPCWB, NOPCX, 0, 0, NOPC)),
280 DECODE_EMULATEX (0x0e5000d0, 0x004000d0, PROBES_LDRSTRD,
281 REGS(NOPCWB, NOPCX, 0, 0, 0)),
284 DECODE_EMULATEX (0x0e5000f0, 0x000000b0, PROBES_STORE_EXTRA,
285 REGS(NOPCWB, NOPC, 0, 0, NOPC)),
290 DECODE_EMULATEX (0x0e500090, 0x00100090, PROBES_LOAD_EXTRA,
291 REGS(NOPCWB, NOPC, 0, 0, NOPC)),
294 DECODE_EMULATEX (0x0e5000f0, 0x004000b0, PROBES_STORE_EXTRA,
295 REGS(NOPCWB, NOPC, 0, 0, 0)),
300 DECODE_EMULATEX (0x0e500090, 0x00500090, PROBES_LOAD_EXTRA,
301 REGS(NOPCWB, NOPC, 0, 0, 0)),
310 DECODE_REJECT (0x0e10f000, 0x0010f000),
313 DECODE_SIMULATE (0xffffffff, 0xe1a0c00d, PROBES_MOV_IP_SP),
319 DECODE_EMULATEX (0x0f900010, 0x01100000, PROBES_DATA_PROCESSING_REG,
320 REGS(ANY, 0, 0, 0, ANY)),
324 DECODE_EMULATEX (0x0fa00010, 0x01a00000, PROBES_DATA_PROCESSING_REG,
325 REGS(0, ANY, 0, 0, ANY)),
337 DECODE_EMULATEX (0x0e000010, 0x00000000, PROBES_DATA_PROCESSING_REG,
338 REGS(ANY, ANY, 0, 0, ANY)),
340 /* TST (reg-shift reg) cccc 0001 0001 xxxx xxxx xxxx 0xx1 xxxx */
341 /* TEQ (reg-shift reg) cccc 0001 0011 xxxx xxxx xxxx 0xx1 xxxx */
342 /* CMP (reg-shift reg) cccc 0001 0101 xxxx xxxx xxxx 0xx1 xxxx */
343 /* CMN (reg-shift reg) cccc 0001 0111 xxxx xxxx xxxx 0xx1 xxxx */
344 DECODE_EMULATEX (0x0f900090, 0x01100010, PROBES_DATA_PROCESSING_REG,
345 REGS(NOPC, 0, NOPC, 0, NOPC)),
347 /* MOV (reg-shift reg) cccc 0001 101x xxxx xxxx xxxx 0xx1 xxxx */
348 /* MVN (reg-shift reg) cccc 0001 111x xxxx xxxx xxxx 0xx1 xxxx */
349 DECODE_EMULATEX (0x0fa00090, 0x01a00010, PROBES_DATA_PROCESSING_REG,
350 REGS(0, NOPC, NOPC, 0, NOPC)),
352 /* AND (reg-shift reg) cccc 0000 000x xxxx xxxx xxxx 0xx1 xxxx */
353 /* EOR (reg-shift reg) cccc 0000 001x xxxx xxxx xxxx 0xx1 xxxx */
354 /* SUB (reg-shift reg) cccc 0000 010x xxxx xxxx xxxx 0xx1 xxxx */
355 /* RSB (reg-shift reg) cccc 0000 011x xxxx xxxx xxxx 0xx1 xxxx */
356 /* ADD (reg-shift reg) cccc 0000 100x xxxx xxxx xxxx 0xx1 xxxx */
357 /* ADC (reg-shift reg) cccc 0000 101x xxxx xxxx xxxx 0xx1 xxxx */
358 /* SBC (reg-shift reg) cccc 0000 110x xxxx xxxx xxxx 0xx1 xxxx */
359 /* RSC (reg-shift reg) cccc 0000 111x xxxx xxxx xxxx 0xx1 xxxx */
360 /* ORR (reg-shift reg) cccc 0001 100x xxxx xxxx xxxx 0xx1 xxxx */
361 /* BIC (reg-shift reg) cccc 0001 110x xxxx xxxx xxxx 0xx1 xxxx */
362 DECODE_EMULATEX (0x0e000090, 0x00000010, PROBES_DATA_PROCESSING_REG,
363 REGS(NOPC, NOPC, NOPC, 0, NOPC)),
373 DECODE_EMULATEX (0x0fb00000, 0x03000000, PROBES_MOV_HALFWORD,
374 REGS(0, NOPC, 0, 0, 0)),
377 DECODE_OR (0x0fff00ff, 0x03200001),
379 DECODE_EMULATE (0x0fff00ff, 0x03200004, PROBES_SEV),
383 DECODE_SIMULATE (0x0fff00fc, 0x03200000, PROBES_WFE),
386 /* MSR (immediate) cccc 0011 0x10 xxxx xxxx xxxx xxxx xxxx */
387 DECODE_REJECT (0x0fb00000, 0x03200000),
390 DECODE_REJECT (0x0e10f000, 0x0210f000),
396 DECODE_EMULATEX (0x0f900000, 0x03100000, PROBES_DATA_PROCESSING_IMM,
397 REGS(ANY, 0, 0, 0, 0)),
401 DECODE_EMULATEX (0x0fa00000, 0x03a00000, PROBES_DATA_PROCESSING_IMM,
402 REGS(0, ANY, 0, 0, 0)),
414 DECODE_EMULATEX (0x0e000000, 0x02000000, PROBES_DATA_PROCESSING_IMM,
415 REGS(ANY, ANY, 0, 0, 0)),
424 DECODE_EMULATEX (0x0ff000f0, 0x068000b0, PROBES_SATURATE,
425 REGS(NOPC, NOPC, 0, 0, NOPC)),
429 DECODE_OR(0x0fa00030, 0x06a00010),
432 DECODE_EMULATEX (0x0fb000f0, 0x06a00030, PROBES_SATURATE,
433 REGS(0, NOPC, 0, 0, NOPC)),
439 DECODE_EMULATEX (0x0fb00070, 0x06b00030, PROBES_REV,
440 REGS(0, NOPC, 0, 0, NOPC)),
442 /* ??? cccc 0110 0x00 xxxx xxxx xxxx xxx1 xxxx */
443 DECODE_REJECT (0x0fb00010, 0x06000010),
444 /* ??? cccc 0110 0xxx xxxx xxxx xxxx 1011 xxxx */
445 DECODE_REJECT (0x0f8000f0, 0x060000b0),
446 /* ??? cccc 0110 0xxx xxxx xxxx xxxx 1101 xxxx */
447 DECODE_REJECT (0x0f8000f0, 0x060000d0),
484 DECODE_EMULATEX (0x0f800010, 0x06000010, PROBES_MMI,
485 REGS(NOPC, NOPC, 0, 0, NOPC)),
488 /* PKHTB cccc 0110 1000 xxxx xxxx xxxx x101 xxxx */
489 DECODE_EMULATEX (0x0ff00030, 0x06800010, PROBES_PACK,
490 REGS(NOPC, NOPC, 0, 0, NOPC)),
494 DECODE_REJECT (0x0fb000f0, 0x06900070),
502 DECODE_EMULATEX (0x0f8f00f0, 0x068f0070, PROBES_EXTEND,
503 REGS(0, NOPC, 0, 0, NOPC)),
511 DECODE_EMULATEX (0x0f8000f0, 0x06800070, PROBES_EXTEND_ADD,
512 REGS(NOPCX, NOPC, 0, 0, NOPC)),
521 DECODE_REJECT (0x0ff000f0, 0x07f000f0),
525 DECODE_EMULATEX (0x0ff00090, 0x07400010, PROBES_MUL_ADD_LONG,
526 REGS(NOPC, NOPC, NOPC, 0, NOPC)),
530 DECODE_OR (0x0ff0f090, 0x0700f010),
532 DECODE_OR (0x0ff0f0d0, 0x0750f010),
534 DECODE_EMULATEX (0x0ff0f0f0, 0x0780f010, PROBES_MUL_ADD,
535 REGS(NOPC, 0, NOPC, 0, NOPC)),
539 DECODE_OR (0x0ff00090, 0x07000010),
541 DECODE_OR (0x0ff000d0, 0x07500010),
543 DECODE_EMULATEX (0x0ff000f0, 0x07800010, PROBES_MUL_ADD,
544 REGS(NOPC, NOPCX, NOPC, 0, NOPC)),
547 DECODE_EMULATEX (0x0ff000d0, 0x075000d0, PROBES_MUL_ADD,
548 REGS(NOPC, NOPC, NOPC, 0, NOPC)),
550 /* SBFX cccc 0111 101x xxxx xxxx xxxx x101 xxxx */
551 /* UBFX cccc 0111 111x xxxx xxxx xxxx x101 xxxx */
552 DECODE_EMULATEX (0x0fa00070, 0x07a00050, PROBES_BITFIELD,
553 REGS(0, NOPC, 0, 0, NOPC)),
556 DECODE_EMULATEX (0x0fe0007f, 0x07c0001f, PROBES_BITFIELD,
557 REGS(0, NOPC, 0, 0, 0)),
560 DECODE_EMULATEX (0x0fe00070, 0x07c00010, PROBES_BITFIELD,
561 REGS(0, NOPC, 0, 0, NOPCX)),
570 DECODE_REJECT (0x0c40f000, 0x0440f000),
576 DECODE_REJECT (0x0d200000, 0x04200000),
580 DECODE_EMULATEX (0x0e100000, 0x04000000, PROBES_STORE,
581 REGS(NOPCWB, ANY, 0, 0, 0)),
585 DECODE_EMULATEX (0x0e100000, 0x04100000, PROBES_LOAD,
586 REGS(NOPCWB, ANY, 0, 0, 0)),
590 DECODE_EMULATEX (0x0e100000, 0x06000000, PROBES_STORE,
591 REGS(NOPCWB, ANY, 0, 0, NOPC)),
595 DECODE_EMULATEX (0x0e100000, 0x06100000, PROBES_LOAD,
596 REGS(NOPCWB, ANY, 0, 0, NOPC)),
606 DECODE_CUSTOM (0x0e400000, 0x08000000, PROBES_LDMSTM),
609 /* LDM (user registers) cccc 100x x1x1 xxxx 0xxx xxxx xxxx xxxx */
619 DECODE_TABLE (0xf0000000, 0xf0000000, arm_1111_table),
623 * cccc 0001 0xx0 xxxx xxxx xxxx 0xxx xxxx
625 DECODE_TABLE (0x0f900080, 0x01000000, arm_cccc_0001_0xx0____0xxx_table),
629 * cccc 0001 0xx0 xxxx xxxx xxxx 1xx0 xxxx
631 DECODE_TABLE (0x0f900090, 0x01000080, arm_cccc_0001_0xx0____1xx0_table),
637 DECODE_TABLE (0x0f0000f0, 0x00000090, arm_cccc_0000_____1001_table),
643 DECODE_TABLE (0x0f0000f0, 0x01000090, arm_cccc_0001_____1001_table),
649 DECODE_TABLE (0x0e000090, 0x00000090, arm_cccc_000x_____1xx1_table),
655 * cccc 000x xxxx xxxx xxxx xxxx 0xx1 xxxx
657 DECODE_TABLE (0x0e000000, 0x00000000, arm_cccc_000x_table),
663 DECODE_TABLE (0x0e000000, 0x02000000, arm_cccc_001x_table),
669 DECODE_TABLE (0x0f000010, 0x06000010, arm_cccc_0110_____xxx1_table),
670 DECODE_TABLE (0x0f000010, 0x07000010, arm_cccc_0111_____xxx1_table),
676 DECODE_TABLE (0x0c000000, 0x04000000, arm_cccc_01xx_table),
682 DECODE_TABLE (0x0e000000, 0x08000000, arm_cccc_100x_table),
686 DECODE_SIMULATE (0x0e000000, 0x0a000000, PROBES_BRANCH),
700 DECODE_REJECT (0x0c000000, 0x0c000000),