| OLD | NEW |
| 1 /* Instruction printing code for the ARM | 1 /* Instruction printing code for the ARM |
| 2 Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, | 2 Copyright 1994-2013 Free Software Foundation, Inc. |
| 3 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. | |
| 4 Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) | 3 Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) |
| 5 Modification by James G. Smith (jsmith@cygnus.co.uk) | 4 Modification by James G. Smith (jsmith@cygnus.co.uk) |
| 6 | 5 |
| 7 This file is part of libopcodes. | 6 This file is part of libopcodes. |
| 8 | 7 |
| 9 This library is free software; you can redistribute it and/or modify | 8 This library is free software; you can redistribute it and/or modify |
| 10 it under the terms of the GNU General Public License as published by | 9 it under the terms of the GNU General Public License as published by |
| 11 the Free Software Foundation; either version 3 of the License, or | 10 the Free Software Foundation; either version 3 of the License, or |
| 12 (at your option) any later version. | 11 (at your option) any later version. |
| 13 | 12 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 unsigned short value, mask; /* Recognise insn if (op & mask) == value. */ | 83 unsigned short value, mask; /* Recognise insn if (op & mask) == value. */ |
| 85 const char *assembler; /* How to disassemble this insn. */ | 84 const char *assembler; /* How to disassemble this insn. */ |
| 86 }; | 85 }; |
| 87 | 86 |
| 88 /* print_insn_coprocessor recognizes the following format control codes: | 87 /* print_insn_coprocessor recognizes the following format control codes: |
| 89 | 88 |
| 90 %% % | 89 %% % |
| 91 | 90 |
| 92 %c print condition code (always bits 28-31 in ARM mode) | 91 %c print condition code (always bits 28-31 in ARM mode) |
| 93 %q print shifter argument | 92 %q print shifter argument |
| 94 %u» » » print condition code (unconditional in ARM mode) | 93 %u» » » print condition code (unconditional in ARM mode, |
| 94 UNPREDICTABLE if not AL in Thumb) |
| 95 %A print address for ldc/stc/ldf/stf instruction | 95 %A print address for ldc/stc/ldf/stf instruction |
| 96 %B print vstm/vldm register list | 96 %B print vstm/vldm register list |
| 97 %I print cirrus signed shift immediate: bits 0..3|4..6 | 97 %I print cirrus signed shift immediate: bits 0..3|4..6 |
| 98 %F print the COUNT field of a LFM/SFM instruction. | 98 %F print the COUNT field of a LFM/SFM instruction. |
| 99 %P print floating point precision in arithmetic insn | 99 %P print floating point precision in arithmetic insn |
| 100 %Q print floating point precision in ldf/stf insn | 100 %Q print floating point precision in ldf/stf insn |
| 101 %R print floating point rounding mode | 101 %R print floating point rounding mode |
| 102 | 102 |
| 103 %<bitfield>c print as a condition code (for vsel) |
| 103 %<bitfield>r print as an ARM register | 104 %<bitfield>r print as an ARM register |
| 104 %<bitfield>R as %<>r but r15 is UNPREDICTABLE | 105 %<bitfield>R as %<>r but r15 is UNPREDICTABLE |
| 105 %<bitfield>ru as %<>r but each u register must be unique. | 106 %<bitfield>ru as %<>r but each u register must be unique. |
| 106 %<bitfield>d print the bitfield in decimal | 107 %<bitfield>d print the bitfield in decimal |
| 107 %<bitfield>k print immediate for VFPv3 conversion instruction | 108 %<bitfield>k print immediate for VFPv3 conversion instruction |
| 108 %<bitfield>x print the bitfield in hex | 109 %<bitfield>x print the bitfield in hex |
| 109 %<bitfield>X print the bitfield as 1 hex digit without leading "0x" | 110 %<bitfield>X print the bitfield as 1 hex digit without leading "0x" |
| 110 %<bitfield>f print a floating point constant if >7 else a | 111 %<bitfield>f print a floating point constant if >7 else a |
| 111 floating point register | 112 floating point register |
| 112 %<bitfield>w print as an iWMMXt width field - [bhwd]ss/us | 113 %<bitfield>w print as an iWMMXt width field - [bhwd]ss/us |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 309 {FPU_NEON_EXT_V1, 0x0ee00b10, 0x0ff00f70, "vdup%c.8\t%16-19,7Q, %12-15r"}, | 310 {FPU_NEON_EXT_V1, 0x0ee00b10, 0x0ff00f70, "vdup%c.8\t%16-19,7Q, %12-15r"}, |
| 310 {FPU_NEON_EXT_V1, 0x0c400b10, 0x0ff00fd0, "vmov%c\t%0-3,5D, %12-15r, %16-19r"}
, | 311 {FPU_NEON_EXT_V1, 0x0c400b10, 0x0ff00fd0, "vmov%c\t%0-3,5D, %12-15r, %16-19r"}
, |
| 311 {FPU_NEON_EXT_V1, 0x0c500b10, 0x0ff00fd0, "vmov%c\t%12-15r, %16-19r, %0-3,5D"}
, | 312 {FPU_NEON_EXT_V1, 0x0c500b10, 0x0ff00fd0, "vmov%c\t%12-15r, %16-19r, %0-3,5D"}
, |
| 312 {FPU_NEON_EXT_V1, 0x0e000b10, 0x0fd00f70, "vmov%c.32\t%16-19,7D[%21d], %12-15r
"}, | 313 {FPU_NEON_EXT_V1, 0x0e000b10, 0x0fd00f70, "vmov%c.32\t%16-19,7D[%21d], %12-15r
"}, |
| 313 {FPU_NEON_EXT_V1, 0x0e100b10, 0x0f500f70, "vmov%c.32\t%12-15r, %16-19,7D[%21d]
"}, | 314 {FPU_NEON_EXT_V1, 0x0e100b10, 0x0f500f70, "vmov%c.32\t%12-15r, %16-19,7D[%21d]
"}, |
| 314 {FPU_NEON_EXT_V1, 0x0e000b30, 0x0fd00f30, "vmov%c.16\t%16-19,7D[%6,21d], %12-1
5r"}, | 315 {FPU_NEON_EXT_V1, 0x0e000b30, 0x0fd00f30, "vmov%c.16\t%16-19,7D[%6,21d], %12-1
5r"}, |
| 315 {FPU_NEON_EXT_V1, 0x0e100b30, 0x0f500f30, "vmov%c.%23?us16\t%12-15r, %16-19,7D
[%6,21d]"}, | 316 {FPU_NEON_EXT_V1, 0x0e100b30, 0x0f500f30, "vmov%c.%23?us16\t%12-15r, %16-19,7D
[%6,21d]"}, |
| 316 {FPU_NEON_EXT_V1, 0x0e400b10, 0x0fd00f10, "vmov%c.8\t%16-19,7D[%5,6,21d], %12-
15r"}, | 317 {FPU_NEON_EXT_V1, 0x0e400b10, 0x0fd00f10, "vmov%c.8\t%16-19,7D[%5,6,21d], %12-
15r"}, |
| 317 {FPU_NEON_EXT_V1, 0x0e500b10, 0x0f500f10, "vmov%c.%23?us8\t%12-15r, %16-19,7D[
%5,6,21d]"}, | 318 {FPU_NEON_EXT_V1, 0x0e500b10, 0x0f500f10, "vmov%c.%23?us8\t%12-15r, %16-19,7D[
%5,6,21d]"}, |
| 318 /* Half-precision conversion instructions. */ | 319 /* Half-precision conversion instructions. */ |
| 320 {FPU_VFP_EXT_ARMV8, 0x0eb20b40, 0x0fbf0f50, "vcvt%7?tb%c.f64.f16\t%z1, %y0"}, |
| 321 {FPU_VFP_EXT_ARMV8, 0x0eb30b40, 0x0fbf0f50, "vcvt%7?tb%c.f16.f64\t%y1, %z0"}, |
| 319 {FPU_VFP_EXT_FP16, 0x0eb20a40, 0x0fbf0f50, "vcvt%7?tb%c.f32.f16\t%y1, %y0"}, | 322 {FPU_VFP_EXT_FP16, 0x0eb20a40, 0x0fbf0f50, "vcvt%7?tb%c.f32.f16\t%y1, %y0"}, |
| 320 {FPU_VFP_EXT_FP16, 0x0eb30a40, 0x0fbf0f50, "vcvt%7?tb%c.f16.f32\t%y1, %y0"}, | 323 {FPU_VFP_EXT_FP16, 0x0eb30a40, 0x0fbf0f50, "vcvt%7?tb%c.f16.f32\t%y1, %y0"}, |
| 321 | 324 |
| 322 /* Floating point coprocessor (VFP) instructions. */ | 325 /* Floating point coprocessor (VFP) instructions. */ |
| 323 {FPU_VFP_EXT_V1xD, 0x0ee00a10, 0x0fff0fff, "vmsr%c\tfpsid, %12-15r"}, | 326 {FPU_VFP_EXT_V1xD, 0x0ee00a10, 0x0fff0fff, "vmsr%c\tfpsid, %12-15r"}, |
| 324 {FPU_VFP_EXT_V1xD, 0x0ee10a10, 0x0fff0fff, "vmsr%c\tfpscr, %12-15r"}, | 327 {FPU_VFP_EXT_V1xD, 0x0ee10a10, 0x0fff0fff, "vmsr%c\tfpscr, %12-15r"}, |
| 325 {FPU_VFP_EXT_V1xD, 0x0ee60a10, 0x0fff0fff, "vmsr%c\tmvfr1, %12-15r"}, | 328 {FPU_VFP_EXT_V1xD, 0x0ee60a10, 0x0fff0fff, "vmsr%c\tmvfr1, %12-15r"}, |
| 326 {FPU_VFP_EXT_V1xD, 0x0ee70a10, 0x0fff0fff, "vmsr%c\tmvfr0, %12-15r"}, | 329 {FPU_VFP_EXT_V1xD, 0x0ee70a10, 0x0fff0fff, "vmsr%c\tmvfr0, %12-15r"}, |
| 327 {FPU_VFP_EXT_V1xD, 0x0ee80a10, 0x0fff0fff, "vmsr%c\tfpexc, %12-15r"}, | 330 {FPU_VFP_EXT_V1xD, 0x0ee80a10, 0x0fff0fff, "vmsr%c\tfpexc, %12-15r"}, |
| 328 {FPU_VFP_EXT_V1xD, 0x0ee90a10, 0x0fff0fff, "vmsr%c\tfpinst, %12-15r\t@ Impl de
f"}, | 331 {FPU_VFP_EXT_V1xD, 0x0ee90a10, 0x0fff0fff, "vmsr%c\tfpinst, %12-15r\t@ Impl de
f"}, |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 /* VFP Fused multiply add instructions. */ | 480 /* VFP Fused multiply add instructions. */ |
| 478 {FPU_VFP_EXT_FMA, 0x0ea00a00, 0x0fb00f50, "vfma%c.f32\t%y1, %y2, %y0"}, | 481 {FPU_VFP_EXT_FMA, 0x0ea00a00, 0x0fb00f50, "vfma%c.f32\t%y1, %y2, %y0"}, |
| 479 {FPU_VFP_EXT_FMA, 0x0ea00b00, 0x0fb00f50, "vfma%c.f64\t%z1, %z2, %z0"}, | 482 {FPU_VFP_EXT_FMA, 0x0ea00b00, 0x0fb00f50, "vfma%c.f64\t%z1, %z2, %z0"}, |
| 480 {FPU_VFP_EXT_FMA, 0x0ea00a40, 0x0fb00f50, "vfms%c.f32\t%y1, %y2, %y0"}, | 483 {FPU_VFP_EXT_FMA, 0x0ea00a40, 0x0fb00f50, "vfms%c.f32\t%y1, %y2, %y0"}, |
| 481 {FPU_VFP_EXT_FMA, 0x0ea00b40, 0x0fb00f50, "vfms%c.f64\t%z1, %z2, %z0"}, | 484 {FPU_VFP_EXT_FMA, 0x0ea00b40, 0x0fb00f50, "vfms%c.f64\t%z1, %z2, %z0"}, |
| 482 {FPU_VFP_EXT_FMA, 0x0e900a40, 0x0fb00f50, "vfnma%c.f32\t%y1, %y2, %y0"}, | 485 {FPU_VFP_EXT_FMA, 0x0e900a40, 0x0fb00f50, "vfnma%c.f32\t%y1, %y2, %y0"}, |
| 483 {FPU_VFP_EXT_FMA, 0x0e900b40, 0x0fb00f50, "vfnma%c.f64\t%z1, %z2, %z0"}, | 486 {FPU_VFP_EXT_FMA, 0x0e900b40, 0x0fb00f50, "vfnma%c.f64\t%z1, %z2, %z0"}, |
| 484 {FPU_VFP_EXT_FMA, 0x0e900a00, 0x0fb00f50, "vfnms%c.f32\t%y1, %y2, %y0"}, | 487 {FPU_VFP_EXT_FMA, 0x0e900a00, 0x0fb00f50, "vfnms%c.f32\t%y1, %y2, %y0"}, |
| 485 {FPU_VFP_EXT_FMA, 0x0e900b00, 0x0fb00f50, "vfnms%c.f64\t%z1, %z2, %z0"}, | 488 {FPU_VFP_EXT_FMA, 0x0e900b00, 0x0fb00f50, "vfnms%c.f64\t%z1, %z2, %z0"}, |
| 486 | 489 |
| 490 /* FP v5. */ |
| 491 {FPU_VFP_EXT_ARMV8, 0xfe000a00, 0xff800f00, "vsel%20-21c%u.f32\t%y1, %y2, %y0"
}, |
| 492 {FPU_VFP_EXT_ARMV8, 0xfe000b00, 0xff800f00, "vsel%20-21c%u.f64\t%z1, %z2, %z0"
}, |
| 493 {FPU_VFP_EXT_ARMV8, 0xfe800a00, 0xffb00f40, "vmaxnm%u.f32\t%y1, %y2, %y0"}, |
| 494 {FPU_VFP_EXT_ARMV8, 0xfe800b00, 0xffb00f40, "vmaxnm%u.f64\t%z1, %z2, %z0"}, |
| 495 {FPU_VFP_EXT_ARMV8, 0xfe800a40, 0xffb00f40, "vminnm%u.f32\t%y1, %y2, %y0"}, |
| 496 {FPU_VFP_EXT_ARMV8, 0xfe800b40, 0xffb00f40, "vminnm%u.f64\t%z1, %z2, %z0"}, |
| 497 {FPU_VFP_EXT_ARMV8, 0xfebc0a40, 0xffbc0f50, "vcvt%16-17?mpna%u.%7?su32.f32\t%y
1, %y0"}, |
| 498 {FPU_VFP_EXT_ARMV8, 0xfebc0b40, 0xffbc0f50, "vcvt%16-17?mpna%u.%7?su32.f64\t%y
1, %z0"}, |
| 499 {FPU_VFP_EXT_ARMV8, 0x0eb60a40, 0x0fbe0f50, "vrint%7,16??xzr%c.f32\t%y1, %y0"}
, |
| 500 {FPU_VFP_EXT_ARMV8, 0x0eb60b40, 0x0fbe0f50, "vrint%7,16??xzr%c.f64\t%z1, %z0"}
, |
| 501 {FPU_VFP_EXT_ARMV8, 0xfeb80a40, 0xffbc0f50, "vrint%16-17?mpna%u.f32\t%y1, %y0"
}, |
| 502 {FPU_VFP_EXT_ARMV8, 0xfeb80b40, 0xffbc0f50, "vrint%16-17?mpna%u.f64\t%z1, %z0"
}, |
| 503 |
| 487 /* Generic coprocessor instructions. */ | 504 /* Generic coprocessor instructions. */ |
| 488 { 0, SENTINEL_GENERIC_START, 0, "" }, | 505 { 0, SENTINEL_GENERIC_START, 0, "" }, |
| 489 {ARM_EXT_V5E, 0x0c400000, 0x0ff00000, "mcrr%c\t%8-11d, %4-7d, %12-15R, %16-19r
, cr%0-3d"}, | 506 {ARM_EXT_V5E, 0x0c400000, 0x0ff00000, "mcrr%c\t%8-11d, %4-7d, %12-15R, %16-19r
, cr%0-3d"}, |
| 490 {ARM_EXT_V5E, 0x0c500000, 0x0ff00000, "mrrc%c\t%8-11d, %4-7d, %12-15Ru, %16-19
Ru, cr%0-3d"}, | 507 {ARM_EXT_V5E, 0x0c500000, 0x0ff00000, "mrrc%c\t%8-11d, %4-7d, %12-15Ru, %16-19
Ru, cr%0-3d"}, |
| 491 {ARM_EXT_V2, 0x0e000000, 0x0f000010, "cdp%c\t%8-11d, %20-23d, cr%12-15d, cr%16
-19d, cr%0-3d, {%5-7d}"}, | 508 {ARM_EXT_V2, 0x0e000000, 0x0f000010, "cdp%c\t%8-11d, %20-23d, cr%12-15d, cr%16
-19d, cr%0-3d, {%5-7d}"}, |
| 492 {ARM_EXT_V2, 0x0e10f010, 0x0f10f010, "mrc%c\t%8-11d, %21-23d, APSR_nzcv, cr%16
-19d, cr%0-3d, {%5-7d}"}, | 509 {ARM_EXT_V2, 0x0e10f010, 0x0f10f010, "mrc%c\t%8-11d, %21-23d, APSR_nzcv, cr%16
-19d, cr%0-3d, {%5-7d}"}, |
| 493 {ARM_EXT_V2, 0x0e100010, 0x0f100010, "mrc%c\t%8-11d, %21-23d, %12-15r, cr%16-1
9d, cr%0-3d, {%5-7d}"}, | 510 {ARM_EXT_V2, 0x0e100010, 0x0f100010, "mrc%c\t%8-11d, %21-23d, %12-15r, cr%16-1
9d, cr%0-3d, {%5-7d}"}, |
| 494 {ARM_EXT_V2, 0x0e000010, 0x0f100010, "mcr%c\t%8-11d, %21-23d, %12-15R, cr%16-1
9d, cr%0-3d, {%5-7d}"}, | 511 {ARM_EXT_V2, 0x0e000010, 0x0f100010, "mcr%c\t%8-11d, %21-23d, %12-15R, cr%16-1
9d, cr%0-3d, {%5-7d}"}, |
| 495 {ARM_EXT_V2, 0x0c000000, 0x0e100000, "stc%22'l%c\t%8-11d, cr%12-15d, %A"}, | 512 {ARM_EXT_V2, 0x0c000000, 0x0e100000, "stc%22'l%c\t%8-11d, cr%12-15d, %A"}, |
| 496 {ARM_EXT_V2, 0x0c100000, 0x0e100000, "ldc%22'l%c\t%8-11d, cr%12-15d, %A"}, | 513 {ARM_EXT_V2, 0x0c100000, 0x0e100000, "ldc%22'l%c\t%8-11d, cr%12-15d, %A"}, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 511 | 528 |
| 512 /* Neon opcode table: This does not encode the top byte -- that is | 529 /* Neon opcode table: This does not encode the top byte -- that is |
| 513 checked by the print_insn_neon routine, as it depends on whether we are | 530 checked by the print_insn_neon routine, as it depends on whether we are |
| 514 doing thumb32 or arm32 disassembly. */ | 531 doing thumb32 or arm32 disassembly. */ |
| 515 | 532 |
| 516 /* print_insn_neon recognizes the following format control codes: | 533 /* print_insn_neon recognizes the following format control codes: |
| 517 | 534 |
| 518 %% % | 535 %% % |
| 519 | 536 |
| 520 %c print condition code | 537 %c print condition code |
| 538 %u print condition code (unconditional in ARM mode, |
| 539 UNPREDICTABLE if not AL in Thumb) |
| 521 %A print v{st,ld}[1234] operands | 540 %A print v{st,ld}[1234] operands |
| 522 %B print v{st,ld}[1234] any one operands | 541 %B print v{st,ld}[1234] any one operands |
| 523 %C print v{st,ld}[1234] single->all operands | 542 %C print v{st,ld}[1234] single->all operands |
| 524 %D print scalar | 543 %D print scalar |
| 525 %E print vmov, vmvn, vorr, vbic encoded constant | 544 %E print vmov, vmvn, vorr, vbic encoded constant |
| 526 %F print vtbl,vtbx register list | 545 %F print vtbl,vtbx register list |
| 527 | 546 |
| 528 %<bitfield>r print as an ARM register | 547 %<bitfield>r print as an ARM register |
| 529 %<bitfield>d print the bitfield in decimal | 548 %<bitfield>d print the bitfield in decimal |
| 530 %<bitfield>e print the 2^N - bitfield in decimal | 549 %<bitfield>e print the 2^N - bitfield in decimal |
| (...skipping 25 matching lines...) Expand all Loading... |
| 556 | 575 |
| 557 /* Half-precision conversions. */ | 576 /* Half-precision conversions. */ |
| 558 {FPU_VFP_EXT_FP16, 0xf3b60600, 0xffbf0fd0, "vcvt%c.f16.f32\t%12-15,22D, %0-3,5
Q"}, | 577 {FPU_VFP_EXT_FP16, 0xf3b60600, 0xffbf0fd0, "vcvt%c.f16.f32\t%12-15,22D, %0-3,5
Q"}, |
| 559 {FPU_VFP_EXT_FP16, 0xf3b60700, 0xffbf0fd0, "vcvt%c.f32.f16\t%12-15,22Q, %0-3,5
D"}, | 578 {FPU_VFP_EXT_FP16, 0xf3b60700, 0xffbf0fd0, "vcvt%c.f32.f16\t%12-15,22Q, %0-3,5
D"}, |
| 560 | 579 |
| 561 /* NEON fused multiply add instructions. */ | 580 /* NEON fused multiply add instructions. */ |
| 562 {FPU_NEON_EXT_FMA, 0xf2000c10, 0xffa00f10, "vfma%c.f%20U0\t%12-15,22R, %16-19,
7R, %0-3,5R"}, | 581 {FPU_NEON_EXT_FMA, 0xf2000c10, 0xffa00f10, "vfma%c.f%20U0\t%12-15,22R, %16-19,
7R, %0-3,5R"}, |
| 563 {FPU_NEON_EXT_FMA, 0xf2200c10, 0xffa00f10, "vfms%c.f%20U0\t%12-15,22R, %16-19,
7R, %0-3,5R"}, | 582 {FPU_NEON_EXT_FMA, 0xf2200c10, 0xffa00f10, "vfms%c.f%20U0\t%12-15,22R, %16-19,
7R, %0-3,5R"}, |
| 564 | 583 |
| 565 /* Two registers, miscellaneous. */ | 584 /* Two registers, miscellaneous. */ |
| 585 {FPU_NEON_EXT_ARMV8, 0xf3ba0400, 0xffbf0c10, "vrint%7-9?p?m?zaxn%u.f32\t%12-15
,22R, %0-3,5R"}, |
| 586 {FPU_NEON_EXT_ARMV8, 0xf3bb0000, 0xffbf0c10, "vcvt%8-9?mpna%u.%7?us32.f32\t%12
-15,22R, %0-3,5R"}, |
| 587 {FPU_CRYPTO_EXT_ARMV8, 0xf3b00300, 0xffbf0fd0, "aese%u.8\t%12-15,22Q, %0-3,5Q"
}, |
| 588 {FPU_CRYPTO_EXT_ARMV8, 0xf3b00340, 0xffbf0fd0, "aesd%u.8\t%12-15,22Q, %0-3,5Q"
}, |
| 589 {FPU_CRYPTO_EXT_ARMV8, 0xf3b00380, 0xffbf0fd0, "aesmc%u.8\t%12-15,22Q, %0-3,5Q
"}, |
| 590 {FPU_CRYPTO_EXT_ARMV8, 0xf3b003c0, 0xffbf0fd0, "aesimc%u.8\t%12-15,22Q, %0-3,5
Q"}, |
| 591 {FPU_CRYPTO_EXT_ARMV8, 0xf3b902c0, 0xffbf0fd0, "sha1h%u.32\t%12-15,22Q, %0-3,5
Q"}, |
| 592 {FPU_CRYPTO_EXT_ARMV8, 0xf3ba0380, 0xffbf0fd0, "sha1su1%u.32\t%12-15,22Q, %0-3
,5Q"}, |
| 593 {FPU_CRYPTO_EXT_ARMV8, 0xf3ba03c0, 0xffbf0fd0, "sha256su0%u.32\t%12-15,22Q, %0
-3,5Q"}, |
| 566 {FPU_NEON_EXT_V1, 0xf2880a10, 0xfebf0fd0, "vmovl%c.%24?us8\t%12-15,22Q, %0-3,5
D"}, | 594 {FPU_NEON_EXT_V1, 0xf2880a10, 0xfebf0fd0, "vmovl%c.%24?us8\t%12-15,22Q, %0-3,5
D"}, |
| 567 {FPU_NEON_EXT_V1, 0xf2900a10, 0xfebf0fd0, "vmovl%c.%24?us16\t%12-15,22Q, %0-3,
5D"}, | 595 {FPU_NEON_EXT_V1, 0xf2900a10, 0xfebf0fd0, "vmovl%c.%24?us16\t%12-15,22Q, %0-3,
5D"}, |
| 568 {FPU_NEON_EXT_V1, 0xf2a00a10, 0xfebf0fd0, "vmovl%c.%24?us32\t%12-15,22Q, %0-3,
5D"}, | 596 {FPU_NEON_EXT_V1, 0xf2a00a10, 0xfebf0fd0, "vmovl%c.%24?us32\t%12-15,22Q, %0-3,
5D"}, |
| 569 {FPU_NEON_EXT_V1, 0xf3b00500, 0xffbf0f90, "vcnt%c.8\t%12-15,22R, %0-3,5R"}, | 597 {FPU_NEON_EXT_V1, 0xf3b00500, 0xffbf0f90, "vcnt%c.8\t%12-15,22R, %0-3,5R"}, |
| 570 {FPU_NEON_EXT_V1, 0xf3b00580, 0xffbf0f90, "vmvn%c\t%12-15,22R, %0-3,5R"}, | 598 {FPU_NEON_EXT_V1, 0xf3b00580, 0xffbf0f90, "vmvn%c\t%12-15,22R, %0-3,5R"}, |
| 571 {FPU_NEON_EXT_V1, 0xf3b20000, 0xffbf0f90, "vswp%c\t%12-15,22R, %0-3,5R"}, | 599 {FPU_NEON_EXT_V1, 0xf3b20000, 0xffbf0f90, "vswp%c\t%12-15,22R, %0-3,5R"}, |
| 572 {FPU_NEON_EXT_V1, 0xf3b20200, 0xffb30fd0, "vmovn%c.i%18-19T2\t%12-15,22D, %0-3
,5Q"}, | 600 {FPU_NEON_EXT_V1, 0xf3b20200, 0xffb30fd0, "vmovn%c.i%18-19T2\t%12-15,22D, %0-3
,5Q"}, |
| 573 {FPU_NEON_EXT_V1, 0xf3b20240, 0xffb30fd0, "vqmovun%c.s%18-19T2\t%12-15,22D, %0
-3,5Q"}, | 601 {FPU_NEON_EXT_V1, 0xf3b20240, 0xffb30fd0, "vqmovun%c.s%18-19T2\t%12-15,22D, %0
-3,5Q"}, |
| 574 {FPU_NEON_EXT_V1, 0xf3b20280, 0xffb30fd0, "vqmovn%c.s%18-19T2\t%12-15,22D, %0-
3,5Q"}, | 602 {FPU_NEON_EXT_V1, 0xf3b20280, 0xffb30fd0, "vqmovn%c.s%18-19T2\t%12-15,22D, %0-
3,5Q"}, |
| 575 {FPU_NEON_EXT_V1, 0xf3b202c0, 0xffb30fd0, "vqmovn%c.u%18-19T2\t%12-15,22D, %0-
3,5Q"}, | 603 {FPU_NEON_EXT_V1, 0xf3b202c0, 0xffb30fd0, "vqmovn%c.u%18-19T2\t%12-15,22D, %0-
3,5Q"}, |
| (...skipping 15 matching lines...) Expand all Loading... |
| 591 {FPU_NEON_EXT_V1, 0xf3b10100, 0xffb30b90, "vceq%c.%10?fi%18-19S2\t%12-15,22R,
%0-3,5R, #0"}, | 619 {FPU_NEON_EXT_V1, 0xf3b10100, 0xffb30b90, "vceq%c.%10?fi%18-19S2\t%12-15,22R,
%0-3,5R, #0"}, |
| 592 {FPU_NEON_EXT_V1, 0xf3b10180, 0xffb30b90, "vcle%c.%10?fs%18-19S2\t%12-15,22R,
%0-3,5R, #0"}, | 620 {FPU_NEON_EXT_V1, 0xf3b10180, 0xffb30b90, "vcle%c.%10?fs%18-19S2\t%12-15,22R,
%0-3,5R, #0"}, |
| 593 {FPU_NEON_EXT_V1, 0xf3b10200, 0xffb30b90, "vclt%c.%10?fs%18-19S2\t%12-15,22R,
%0-3,5R, #0"}, | 621 {FPU_NEON_EXT_V1, 0xf3b10200, 0xffb30b90, "vclt%c.%10?fs%18-19S2\t%12-15,22R,
%0-3,5R, #0"}, |
| 594 {FPU_NEON_EXT_V1, 0xf3b10300, 0xffb30b90, "vabs%c.%10?fs%18-19S2\t%12-15,22R,
%0-3,5R"}, | 622 {FPU_NEON_EXT_V1, 0xf3b10300, 0xffb30b90, "vabs%c.%10?fs%18-19S2\t%12-15,22R,
%0-3,5R"}, |
| 595 {FPU_NEON_EXT_V1, 0xf3b10380, 0xffb30b90, "vneg%c.%10?fs%18-19S2\t%12-15,22R,
%0-3,5R"}, | 623 {FPU_NEON_EXT_V1, 0xf3b10380, 0xffb30b90, "vneg%c.%10?fs%18-19S2\t%12-15,22R,
%0-3,5R"}, |
| 596 {FPU_NEON_EXT_V1, 0xf3b00200, 0xffb30f10, "vpaddl%c.%7?us%18-19S2\t%12-15,22R,
%0-3,5R"}, | 624 {FPU_NEON_EXT_V1, 0xf3b00200, 0xffb30f10, "vpaddl%c.%7?us%18-19S2\t%12-15,22R,
%0-3,5R"}, |
| 597 {FPU_NEON_EXT_V1, 0xf3b00600, 0xffb30f10, "vpadal%c.%7?us%18-19S2\t%12-15,22R,
%0-3,5R"}, | 625 {FPU_NEON_EXT_V1, 0xf3b00600, 0xffb30f10, "vpadal%c.%7?us%18-19S2\t%12-15,22R,
%0-3,5R"}, |
| 598 {FPU_NEON_EXT_V1, 0xf3b30600, 0xffb30e10, "vcvt%c.%7-8?usff%18-19Sa.%7-8?ffus%
18-19Sa\t%12-15,22R, %0-3,5R"}, | 626 {FPU_NEON_EXT_V1, 0xf3b30600, 0xffb30e10, "vcvt%c.%7-8?usff%18-19Sa.%7-8?ffus%
18-19Sa\t%12-15,22R, %0-3,5R"}, |
| 599 | 627 |
| 600 /* Three registers of the same length. */ | 628 /* Three registers of the same length. */ |
| 629 {FPU_CRYPTO_EXT_ARMV8, 0xf2000c40, 0xffb00f50, "sha1c%u.32\t%12-15,22Q, %16-19
,7Q, %0-3,5Q"}, |
| 630 {FPU_CRYPTO_EXT_ARMV8, 0xf2100c40, 0xffb00f50, "sha1p%u.32\t%12-15,22Q, %16-19
,7Q, %0-3,5Q"}, |
| 631 {FPU_CRYPTO_EXT_ARMV8, 0xf2200c40, 0xffb00f50, "sha1m%u.32\t%12-15,22Q, %16-19
,7Q, %0-3,5Q"}, |
| 632 {FPU_CRYPTO_EXT_ARMV8, 0xf2300c40, 0xffb00f50, "sha1su0%u.32\t%12-15,22Q, %16-
19,7Q, %0-3,5Q"}, |
| 633 {FPU_CRYPTO_EXT_ARMV8, 0xf3000c40, 0xffb00f50, "sha256h%u.32\t%12-15,22Q, %16-
19,7Q, %0-3,5Q"}, |
| 634 {FPU_CRYPTO_EXT_ARMV8, 0xf3100c40, 0xffb00f50, "sha256h2%u.32\t%12-15,22Q, %16
-19,7Q, %0-3,5Q"}, |
| 635 {FPU_CRYPTO_EXT_ARMV8, 0xf3200c40, 0xffb00f50, "sha256su1%u.32\t%12-15,22Q, %1
6-19,7Q, %0-3,5Q"}, |
| 636 {FPU_NEON_EXT_ARMV8, 0xf3000f10, 0xffa00f10, "vmaxnm%u.f%20U0\t%12-15,22R, %16
-19,7R, %0-3,5R"}, |
| 637 {FPU_NEON_EXT_ARMV8, 0xf3200f10, 0xffa00f10, "vminnm%u.f%20U0\t%12-15,22R, %16
-19,7R, %0-3,5R"}, |
| 601 {FPU_NEON_EXT_V1, 0xf2000110, 0xffb00f10, "vand%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, | 638 {FPU_NEON_EXT_V1, 0xf2000110, 0xffb00f10, "vand%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, |
| 602 {FPU_NEON_EXT_V1, 0xf2100110, 0xffb00f10, "vbic%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, | 639 {FPU_NEON_EXT_V1, 0xf2100110, 0xffb00f10, "vbic%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, |
| 603 {FPU_NEON_EXT_V1, 0xf2200110, 0xffb00f10, "vorr%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, | 640 {FPU_NEON_EXT_V1, 0xf2200110, 0xffb00f10, "vorr%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, |
| 604 {FPU_NEON_EXT_V1, 0xf2300110, 0xffb00f10, "vorn%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, | 641 {FPU_NEON_EXT_V1, 0xf2300110, 0xffb00f10, "vorn%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, |
| 605 {FPU_NEON_EXT_V1, 0xf3000110, 0xffb00f10, "veor%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, | 642 {FPU_NEON_EXT_V1, 0xf3000110, 0xffb00f10, "veor%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, |
| 606 {FPU_NEON_EXT_V1, 0xf3100110, 0xffb00f10, "vbsl%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, | 643 {FPU_NEON_EXT_V1, 0xf3100110, 0xffb00f10, "vbsl%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, |
| 607 {FPU_NEON_EXT_V1, 0xf3200110, 0xffb00f10, "vbit%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, | 644 {FPU_NEON_EXT_V1, 0xf3200110, 0xffb00f10, "vbit%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, |
| 608 {FPU_NEON_EXT_V1, 0xf3300110, 0xffb00f10, "vbif%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, | 645 {FPU_NEON_EXT_V1, 0xf3300110, 0xffb00f10, "vbif%c\t%12-15,22R, %16-19,7R, %0-3
,5R"}, |
| 609 {FPU_NEON_EXT_V1, 0xf2000d00, 0xffa00f10, "vadd%c.f%20U0\t%12-15,22R, %16-19,7
R, %0-3,5R"}, | 646 {FPU_NEON_EXT_V1, 0xf2000d00, 0xffa00f10, "vadd%c.f%20U0\t%12-15,22R, %16-19,7
R, %0-3,5R"}, |
| 610 {FPU_NEON_EXT_V1, 0xf2000d10, 0xffa00f10, "vmla%c.f%20U0\t%12-15,22R, %16-19,7
R, %0-3,5R"}, | 647 {FPU_NEON_EXT_V1, 0xf2000d10, 0xffa00f10, "vmla%c.f%20U0\t%12-15,22R, %16-19,7
R, %0-3,5R"}, |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 667 {FPU_NEON_EXT_V1, 0xf2800010, 0xfeb808b0, "vmov%c.i32\t%12-15,22R, %E"}, | 704 {FPU_NEON_EXT_V1, 0xf2800010, 0xfeb808b0, "vmov%c.i32\t%12-15,22R, %E"}, |
| 668 {FPU_NEON_EXT_V1, 0xf2800030, 0xfeb808b0, "vmvn%c.i32\t%12-15,22R, %E"}, | 705 {FPU_NEON_EXT_V1, 0xf2800030, 0xfeb808b0, "vmvn%c.i32\t%12-15,22R, %E"}, |
| 669 | 706 |
| 670 /* Two registers and a shift amount. */ | 707 /* Two registers and a shift amount. */ |
| 671 {FPU_NEON_EXT_V1, 0xf2880810, 0xffb80fd0, "vshrn%c.i16\t%12-15,22D, %0-3,5Q, #
%16-18e"}, | 708 {FPU_NEON_EXT_V1, 0xf2880810, 0xffb80fd0, "vshrn%c.i16\t%12-15,22D, %0-3,5Q, #
%16-18e"}, |
| 672 {FPU_NEON_EXT_V1, 0xf2880850, 0xffb80fd0, "vrshrn%c.i16\t%12-15,22D, %0-3,5Q,
#%16-18e"}, | 709 {FPU_NEON_EXT_V1, 0xf2880850, 0xffb80fd0, "vrshrn%c.i16\t%12-15,22D, %0-3,5Q,
#%16-18e"}, |
| 673 {FPU_NEON_EXT_V1, 0xf2880810, 0xfeb80fd0, "vqshrun%c.s16\t%12-15,22D, %0-3,5Q,
#%16-18e"}, | 710 {FPU_NEON_EXT_V1, 0xf2880810, 0xfeb80fd0, "vqshrun%c.s16\t%12-15,22D, %0-3,5Q,
#%16-18e"}, |
| 674 {FPU_NEON_EXT_V1, 0xf2880850, 0xfeb80fd0, "vqrshrun%c.s16\t%12-15,22D, %0-3,5Q
, #%16-18e"}, | 711 {FPU_NEON_EXT_V1, 0xf2880850, 0xfeb80fd0, "vqrshrun%c.s16\t%12-15,22D, %0-3,5Q
, #%16-18e"}, |
| 675 {FPU_NEON_EXT_V1, 0xf2880910, 0xfeb80fd0, "vqshrn%c.%24?us16\t%12-15,22D, %0-3
,5Q, #%16-18e"}, | 712 {FPU_NEON_EXT_V1, 0xf2880910, 0xfeb80fd0, "vqshrn%c.%24?us16\t%12-15,22D, %0-3
,5Q, #%16-18e"}, |
| 676 {FPU_NEON_EXT_V1, 0xf2880950, 0xfeb80fd0, "vqrshrn%c.%24?us16\t%12-15,22D, %0-
3,5Q, #%16-18e"}, | 713 {FPU_NEON_EXT_V1, 0xf2880950, 0xfeb80fd0, "vqrshrn%c.%24?us16\t%12-15,22D, %0-
3,5Q, #%16-18e"}, |
| 677 {FPU_NEON_EXT_V1, 0xf2880a10, 0xfeb80fd0, "vshll%c.%24?us8\t%12-15,22D, %0-3,5
Q, #%16-18d"}, | 714 {FPU_NEON_EXT_V1, 0xf2880a10, 0xfeb80fd0, "vshll%c.%24?us8\t%12-15,22Q, %0-3,5
D, #%16-18d"}, |
| 678 {FPU_NEON_EXT_V1, 0xf2900810, 0xffb00fd0, "vshrn%c.i32\t%12-15,22D, %0-3,5Q, #
%16-19e"}, | 715 {FPU_NEON_EXT_V1, 0xf2900810, 0xffb00fd0, "vshrn%c.i32\t%12-15,22D, %0-3,5Q, #
%16-19e"}, |
| 679 {FPU_NEON_EXT_V1, 0xf2900850, 0xffb00fd0, "vrshrn%c.i32\t%12-15,22D, %0-3,5Q,
#%16-19e"}, | 716 {FPU_NEON_EXT_V1, 0xf2900850, 0xffb00fd0, "vrshrn%c.i32\t%12-15,22D, %0-3,5Q,
#%16-19e"}, |
| 680 {FPU_NEON_EXT_V1, 0xf2880510, 0xffb80f90, "vshl%c.%24?us8\t%12-15,22R, %0-3,5R
, #%16-18d"}, | 717 {FPU_NEON_EXT_V1, 0xf2880510, 0xffb80f90, "vshl%c.%24?us8\t%12-15,22R, %0-3,5R
, #%16-18d"}, |
| 681 {FPU_NEON_EXT_V1, 0xf3880410, 0xffb80f90, "vsri%c.8\t%12-15,22R, %0-3,5R, #%16
-18e"}, | 718 {FPU_NEON_EXT_V1, 0xf3880410, 0xffb80f90, "vsri%c.8\t%12-15,22R, %0-3,5R, #%16
-18e"}, |
| 682 {FPU_NEON_EXT_V1, 0xf3880510, 0xffb80f90, "vsli%c.8\t%12-15,22R, %0-3,5R, #%16
-18d"}, | 719 {FPU_NEON_EXT_V1, 0xf3880510, 0xffb80f90, "vsli%c.8\t%12-15,22R, %0-3,5R, #%16
-18d"}, |
| 683 {FPU_NEON_EXT_V1, 0xf3880610, 0xffb80f90, "vqshlu%c.s8\t%12-15,22R, %0-3,5R, #
%16-18d"}, | 720 {FPU_NEON_EXT_V1, 0xf3880610, 0xffb80f90, "vqshlu%c.s8\t%12-15,22R, %0-3,5R, #
%16-18d"}, |
| 684 {FPU_NEON_EXT_V1, 0xf2900810, 0xfeb00fd0, "vqshrun%c.s32\t%12-15,22D, %0-3,5Q,
#%16-19e"}, | 721 {FPU_NEON_EXT_V1, 0xf2900810, 0xfeb00fd0, "vqshrun%c.s32\t%12-15,22D, %0-3,5Q,
#%16-19e"}, |
| 685 {FPU_NEON_EXT_V1, 0xf2900850, 0xfeb00fd0, "vqrshrun%c.s32\t%12-15,22D, %0-3,5Q
, #%16-19e"}, | 722 {FPU_NEON_EXT_V1, 0xf2900850, 0xfeb00fd0, "vqrshrun%c.s32\t%12-15,22D, %0-3,5Q
, #%16-19e"}, |
| 686 {FPU_NEON_EXT_V1, 0xf2900910, 0xfeb00fd0, "vqshrn%c.%24?us32\t%12-15,22D, %0-3
,5Q, #%16-19e"}, | 723 {FPU_NEON_EXT_V1, 0xf2900910, 0xfeb00fd0, "vqshrn%c.%24?us32\t%12-15,22D, %0-3
,5Q, #%16-19e"}, |
| 687 {FPU_NEON_EXT_V1, 0xf2900950, 0xfeb00fd0, "vqrshrn%c.%24?us32\t%12-15,22D, %0-
3,5Q, #%16-19e"}, | 724 {FPU_NEON_EXT_V1, 0xf2900950, 0xfeb00fd0, "vqrshrn%c.%24?us32\t%12-15,22D, %0-
3,5Q, #%16-19e"}, |
| 688 {FPU_NEON_EXT_V1, 0xf2900a10, 0xfeb00fd0, "vshll%c.%24?us16\t%12-15,22D, %0-3,
5Q, #%16-19d"}, | 725 {FPU_NEON_EXT_V1, 0xf2900a10, 0xfeb00fd0, "vshll%c.%24?us16\t%12-15,22Q, %0-3,
5D, #%16-19d"}, |
| 689 {FPU_NEON_EXT_V1, 0xf2880010, 0xfeb80f90, "vshr%c.%24?us8\t%12-15,22R, %0-3,5R
, #%16-18e"}, | 726 {FPU_NEON_EXT_V1, 0xf2880010, 0xfeb80f90, "vshr%c.%24?us8\t%12-15,22R, %0-3,5R
, #%16-18e"}, |
| 690 {FPU_NEON_EXT_V1, 0xf2880110, 0xfeb80f90, "vsra%c.%24?us8\t%12-15,22R, %0-3,5R
, #%16-18e"}, | 727 {FPU_NEON_EXT_V1, 0xf2880110, 0xfeb80f90, "vsra%c.%24?us8\t%12-15,22R, %0-3,5R
, #%16-18e"}, |
| 691 {FPU_NEON_EXT_V1, 0xf2880210, 0xfeb80f90, "vrshr%c.%24?us8\t%12-15,22R, %0-3,5
R, #%16-18e"}, | 728 {FPU_NEON_EXT_V1, 0xf2880210, 0xfeb80f90, "vrshr%c.%24?us8\t%12-15,22R, %0-3,5
R, #%16-18e"}, |
| 692 {FPU_NEON_EXT_V1, 0xf2880310, 0xfeb80f90, "vrsra%c.%24?us8\t%12-15,22R, %0-3,5
R, #%16-18e"}, | 729 {FPU_NEON_EXT_V1, 0xf2880310, 0xfeb80f90, "vrsra%c.%24?us8\t%12-15,22R, %0-3,5
R, #%16-18e"}, |
| 693 {FPU_NEON_EXT_V1, 0xf2880710, 0xfeb80f90, "vqshl%c.%24?us8\t%12-15,22R, %0-3,5
R, #%16-18d"}, | 730 {FPU_NEON_EXT_V1, 0xf2880710, 0xfeb80f90, "vqshl%c.%24?us8\t%12-15,22R, %0-3,5
R, #%16-18d"}, |
| 694 {FPU_NEON_EXT_V1, 0xf2a00810, 0xffa00fd0, "vshrn%c.i64\t%12-15,22D, %0-3,5Q, #
%16-20e"}, | 731 {FPU_NEON_EXT_V1, 0xf2a00810, 0xffa00fd0, "vshrn%c.i64\t%12-15,22D, %0-3,5Q, #
%16-20e"}, |
| 695 {FPU_NEON_EXT_V1, 0xf2a00850, 0xffa00fd0, "vrshrn%c.i64\t%12-15,22D, %0-3,5Q,
#%16-20e"}, | 732 {FPU_NEON_EXT_V1, 0xf2a00850, 0xffa00fd0, "vrshrn%c.i64\t%12-15,22D, %0-3,5Q,
#%16-20e"}, |
| 696 {FPU_NEON_EXT_V1, 0xf2900510, 0xffb00f90, "vshl%c.%24?us16\t%12-15,22R, %0-3,5
R, #%16-19d"}, | 733 {FPU_NEON_EXT_V1, 0xf2900510, 0xffb00f90, "vshl%c.%24?us16\t%12-15,22R, %0-3,5
R, #%16-19d"}, |
| 697 {FPU_NEON_EXT_V1, 0xf3900410, 0xffb00f90, "vsri%c.16\t%12-15,22R, %0-3,5R, #%1
6-19e"}, | 734 {FPU_NEON_EXT_V1, 0xf3900410, 0xffb00f90, "vsri%c.16\t%12-15,22R, %0-3,5R, #%1
6-19e"}, |
| 698 {FPU_NEON_EXT_V1, 0xf3900510, 0xffb00f90, "vsli%c.16\t%12-15,22R, %0-3,5R, #%1
6-19d"}, | 735 {FPU_NEON_EXT_V1, 0xf3900510, 0xffb00f90, "vsli%c.16\t%12-15,22R, %0-3,5R, #%1
6-19d"}, |
| 699 {FPU_NEON_EXT_V1, 0xf3900610, 0xffb00f90, "vqshlu%c.s16\t%12-15,22R, %0-3,5R,
#%16-19d"}, | 736 {FPU_NEON_EXT_V1, 0xf3900610, 0xffb00f90, "vqshlu%c.s16\t%12-15,22R, %0-3,5R,
#%16-19d"}, |
| 700 {FPU_NEON_EXT_V1, 0xf2a00a10, 0xfea00fd0, "vshll%c.%24?us32\t%12-15,22D, %0-3,
5Q, #%16-20d"}, | 737 {FPU_NEON_EXT_V1, 0xf2a00a10, 0xfea00fd0, "vshll%c.%24?us32\t%12-15,22Q, %0-3,
5D, #%16-20d"}, |
| 701 {FPU_NEON_EXT_V1, 0xf2900010, 0xfeb00f90, "vshr%c.%24?us16\t%12-15,22R, %0-3,5
R, #%16-19e"}, | 738 {FPU_NEON_EXT_V1, 0xf2900010, 0xfeb00f90, "vshr%c.%24?us16\t%12-15,22R, %0-3,5
R, #%16-19e"}, |
| 702 {FPU_NEON_EXT_V1, 0xf2900110, 0xfeb00f90, "vsra%c.%24?us16\t%12-15,22R, %0-3,5
R, #%16-19e"}, | 739 {FPU_NEON_EXT_V1, 0xf2900110, 0xfeb00f90, "vsra%c.%24?us16\t%12-15,22R, %0-3,5
R, #%16-19e"}, |
| 703 {FPU_NEON_EXT_V1, 0xf2900210, 0xfeb00f90, "vrshr%c.%24?us16\t%12-15,22R, %0-3,
5R, #%16-19e"}, | 740 {FPU_NEON_EXT_V1, 0xf2900210, 0xfeb00f90, "vrshr%c.%24?us16\t%12-15,22R, %0-3,
5R, #%16-19e"}, |
| 704 {FPU_NEON_EXT_V1, 0xf2900310, 0xfeb00f90, "vrsra%c.%24?us16\t%12-15,22R, %0-3,
5R, #%16-19e"}, | 741 {FPU_NEON_EXT_V1, 0xf2900310, 0xfeb00f90, "vrsra%c.%24?us16\t%12-15,22R, %0-3,
5R, #%16-19e"}, |
| 705 {FPU_NEON_EXT_V1, 0xf2900710, 0xfeb00f90, "vqshl%c.%24?us16\t%12-15,22R, %0-3,
5R, #%16-19d"}, | 742 {FPU_NEON_EXT_V1, 0xf2900710, 0xfeb00f90, "vqshl%c.%24?us16\t%12-15,22R, %0-3,
5R, #%16-19d"}, |
| 706 {FPU_NEON_EXT_V1, 0xf2a00810, 0xfea00fd0, "vqshrun%c.s64\t%12-15,22D, %0-3,5Q,
#%16-20e"}, | 743 {FPU_NEON_EXT_V1, 0xf2a00810, 0xfea00fd0, "vqshrun%c.s64\t%12-15,22D, %0-3,5Q,
#%16-20e"}, |
| 707 {FPU_NEON_EXT_V1, 0xf2a00850, 0xfea00fd0, "vqrshrun%c.s64\t%12-15,22D, %0-3,5Q
, #%16-20e"}, | 744 {FPU_NEON_EXT_V1, 0xf2a00850, 0xfea00fd0, "vqrshrun%c.s64\t%12-15,22D, %0-3,5Q
, #%16-20e"}, |
| 708 {FPU_NEON_EXT_V1, 0xf2a00910, 0xfea00fd0, "vqshrn%c.%24?us64\t%12-15,22D, %0-3
,5Q, #%16-20e"}, | 745 {FPU_NEON_EXT_V1, 0xf2a00910, 0xfea00fd0, "vqshrn%c.%24?us64\t%12-15,22D, %0-3
,5Q, #%16-20e"}, |
| 709 {FPU_NEON_EXT_V1, 0xf2a00950, 0xfea00fd0, "vqrshrn%c.%24?us64\t%12-15,22D, %0-
3,5Q, #%16-20e"}, | 746 {FPU_NEON_EXT_V1, 0xf2a00950, 0xfea00fd0, "vqrshrn%c.%24?us64\t%12-15,22D, %0-
3,5Q, #%16-20e"}, |
| 710 {FPU_NEON_EXT_V1, 0xf2a00510, 0xffa00f90, "vshl%c.%24?us32\t%12-15,22R, %0-3,5
R, #%16-20d"}, | 747 {FPU_NEON_EXT_V1, 0xf2a00510, 0xffa00f90, "vshl%c.%24?us32\t%12-15,22R, %0-3,5
R, #%16-20d"}, |
| (...skipping 10 matching lines...) Expand all Loading... |
| 721 {FPU_NEON_EXT_V1, 0xf3800590, 0xff800f90, "vsli%c.64\t%12-15,22R, %0-3,5R, #%1
6-21d"}, | 758 {FPU_NEON_EXT_V1, 0xf3800590, 0xff800f90, "vsli%c.64\t%12-15,22R, %0-3,5R, #%1
6-21d"}, |
| 722 {FPU_NEON_EXT_V1, 0xf3800690, 0xff800f90, "vqshlu%c.s64\t%12-15,22R, %0-3,5R,
#%16-21d"}, | 759 {FPU_NEON_EXT_V1, 0xf3800690, 0xff800f90, "vqshlu%c.s64\t%12-15,22R, %0-3,5R,
#%16-21d"}, |
| 723 {FPU_NEON_EXT_V1, 0xf2800090, 0xfe800f90, "vshr%c.%24?us64\t%12-15,22R, %0-3,5
R, #%16-21e"}, | 760 {FPU_NEON_EXT_V1, 0xf2800090, 0xfe800f90, "vshr%c.%24?us64\t%12-15,22R, %0-3,5
R, #%16-21e"}, |
| 724 {FPU_NEON_EXT_V1, 0xf2800190, 0xfe800f90, "vsra%c.%24?us64\t%12-15,22R, %0-3,5
R, #%16-21e"}, | 761 {FPU_NEON_EXT_V1, 0xf2800190, 0xfe800f90, "vsra%c.%24?us64\t%12-15,22R, %0-3,5
R, #%16-21e"}, |
| 725 {FPU_NEON_EXT_V1, 0xf2800290, 0xfe800f90, "vrshr%c.%24?us64\t%12-15,22R, %0-3,
5R, #%16-21e"}, | 762 {FPU_NEON_EXT_V1, 0xf2800290, 0xfe800f90, "vrshr%c.%24?us64\t%12-15,22R, %0-3,
5R, #%16-21e"}, |
| 726 {FPU_NEON_EXT_V1, 0xf2800390, 0xfe800f90, "vrsra%c.%24?us64\t%12-15,22R, %0-3,
5R, #%16-21e"}, | 763 {FPU_NEON_EXT_V1, 0xf2800390, 0xfe800f90, "vrsra%c.%24?us64\t%12-15,22R, %0-3,
5R, #%16-21e"}, |
| 727 {FPU_NEON_EXT_V1, 0xf2800790, 0xfe800f90, "vqshl%c.%24?us64\t%12-15,22R, %0-3,
5R, #%16-21d"}, | 764 {FPU_NEON_EXT_V1, 0xf2800790, 0xfe800f90, "vqshl%c.%24?us64\t%12-15,22R, %0-3,
5R, #%16-21d"}, |
| 728 {FPU_NEON_EXT_V1, 0xf2a00e10, 0xfea00e90, "vcvt%c.%24,8?usff32.%24,8?ffus32\t%
12-15,22R, %0-3,5R, #%16-20e"}, | 765 {FPU_NEON_EXT_V1, 0xf2a00e10, 0xfea00e90, "vcvt%c.%24,8?usff32.%24,8?ffus32\t%
12-15,22R, %0-3,5R, #%16-20e"}, |
| 729 | 766 |
| 730 /* Three registers of different lengths. */ | 767 /* Three registers of different lengths. */ |
| 768 {FPU_CRYPTO_EXT_ARMV8, 0xf2a00e00, 0xfeb00f50, "vmull%c.p64\t%12-15,22Q, %16-1
9,7D, %0-3,5D"}, |
| 731 {FPU_NEON_EXT_V1, 0xf2800e00, 0xfea00f50, "vmull%c.p%20S0\t%12-15,22Q, %16-19,
7D, %0-3,5D"}, | 769 {FPU_NEON_EXT_V1, 0xf2800e00, 0xfea00f50, "vmull%c.p%20S0\t%12-15,22Q, %16-19,
7D, %0-3,5D"}, |
| 732 {FPU_NEON_EXT_V1, 0xf2800400, 0xff800f50, "vaddhn%c.i%20-21T2\t%12-15,22D, %16
-19,7Q, %0-3,5Q"}, | 770 {FPU_NEON_EXT_V1, 0xf2800400, 0xff800f50, "vaddhn%c.i%20-21T2\t%12-15,22D, %16
-19,7Q, %0-3,5Q"}, |
| 733 {FPU_NEON_EXT_V1, 0xf2800600, 0xff800f50, "vsubhn%c.i%20-21T2\t%12-15,22D, %16
-19,7Q, %0-3,5Q"}, | 771 {FPU_NEON_EXT_V1, 0xf2800600, 0xff800f50, "vsubhn%c.i%20-21T2\t%12-15,22D, %16
-19,7Q, %0-3,5Q"}, |
| 734 {FPU_NEON_EXT_V1, 0xf2800900, 0xff800f50, "vqdmlal%c.s%20-21S6\t%12-15,22Q, %1
6-19,7D, %0-3,5D"}, | 772 {FPU_NEON_EXT_V1, 0xf2800900, 0xff800f50, "vqdmlal%c.s%20-21S6\t%12-15,22Q, %1
6-19,7D, %0-3,5D"}, |
| 735 {FPU_NEON_EXT_V1, 0xf2800b00, 0xff800f50, "vqdmlsl%c.s%20-21S6\t%12-15,22Q, %1
6-19,7D, %0-3,5D"}, | 773 {FPU_NEON_EXT_V1, 0xf2800b00, 0xff800f50, "vqdmlsl%c.s%20-21S6\t%12-15,22Q, %1
6-19,7D, %0-3,5D"}, |
| 736 {FPU_NEON_EXT_V1, 0xf2800d00, 0xff800f50, "vqdmull%c.s%20-21S6\t%12-15,22Q, %1
6-19,7D, %0-3,5D"}, | 774 {FPU_NEON_EXT_V1, 0xf2800d00, 0xff800f50, "vqdmull%c.s%20-21S6\t%12-15,22Q, %1
6-19,7D, %0-3,5D"}, |
| 737 {FPU_NEON_EXT_V1, 0xf3800400, 0xff800f50, "vraddhn%c.i%20-21T2\t%12-15,22D, %1
6-19,7Q, %0-3,5Q"}, | 775 {FPU_NEON_EXT_V1, 0xf3800400, 0xff800f50, "vraddhn%c.i%20-21T2\t%12-15,22D, %1
6-19,7Q, %0-3,5Q"}, |
| 738 {FPU_NEON_EXT_V1, 0xf3800600, 0xff800f50, "vrsubhn%c.i%20-21T2\t%12-15,22D, %1
6-19,7Q, %0-3,5Q"}, | 776 {FPU_NEON_EXT_V1, 0xf3800600, 0xff800f50, "vrsubhn%c.i%20-21T2\t%12-15,22D, %1
6-19,7Q, %0-3,5Q"}, |
| 739 {FPU_NEON_EXT_V1, 0xf2800000, 0xfe800f50, "vaddl%c.%24?us%20-21S2\t%12-15,22Q,
%16-19,7D, %0-3,5D"}, | 777 {FPU_NEON_EXT_V1, 0xf2800000, 0xfe800f50, "vaddl%c.%24?us%20-21S2\t%12-15,22Q,
%16-19,7D, %0-3,5D"}, |
| 740 {FPU_NEON_EXT_V1, 0xf2800100, 0xfe800f50, "vaddw%c.%24?us%20-21S2\t%12-15,22Q,
%16-19,7Q, %0-3,5D"}, | 778 {FPU_NEON_EXT_V1, 0xf2800100, 0xfe800f50, "vaddw%c.%24?us%20-21S2\t%12-15,22Q,
%16-19,7Q, %0-3,5D"}, |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 810 %m print register mask for ldm/stm instruction | 848 %m print register mask for ldm/stm instruction |
| 811 %o print operand2 (immediate or register + shift) | 849 %o print operand2 (immediate or register + shift) |
| 812 %p print 'p' iff bits 12-15 are 15 | 850 %p print 'p' iff bits 12-15 are 15 |
| 813 %t print 't' iff bit 21 set and bit 24 clear | 851 %t print 't' iff bit 21 set and bit 24 clear |
| 814 %B print arm BLX(1) destination | 852 %B print arm BLX(1) destination |
| 815 %C print the PSR sub type. | 853 %C print the PSR sub type. |
| 816 %U print barrier type. | 854 %U print barrier type. |
| 817 %P print address for pli instruction. | 855 %P print address for pli instruction. |
| 818 | 856 |
| 819 %<bitfield>r print as an ARM register | 857 %<bitfield>r print as an ARM register |
| 858 %<bitfield>T print as an ARM register + 1 |
| 820 %<bitfield>R as %r but r15 is UNPREDICTABLE | 859 %<bitfield>R as %r but r15 is UNPREDICTABLE |
| 821 %<bitfield>{r|R}u as %{r|R} but if matches the other %u field then is UNPR
EDICTABLE | 860 %<bitfield>{r|R}u as %{r|R} but if matches the other %u field then is UNPR
EDICTABLE |
| 822 %<bitfield>{r|R}U as %{r|R} but if matches the other %U field then is UNPR
EDICTABLE | 861 %<bitfield>{r|R}U as %{r|R} but if matches the other %U field then is UNPR
EDICTABLE |
| 823 %<bitfield>d print the bitfield in decimal | 862 %<bitfield>d print the bitfield in decimal |
| 824 %<bitfield>W print the bitfield plus one in decimal | 863 %<bitfield>W print the bitfield plus one in decimal |
| 825 %<bitfield>x print the bitfield in hex | 864 %<bitfield>x print the bitfield in hex |
| 826 %<bitfield>X print the bitfield as 1 hex digit without leading "0x" | 865 %<bitfield>X print the bitfield as 1 hex digit without leading "0x" |
| 827 | 866 |
| 828 %<bitfield>'c print specified char iff bitfield is all ones | 867 %<bitfield>'c print specified char iff bitfield is all ones |
| 829 %<bitfield>`c print specified char iff bitfield is all zeroes | 868 %<bitfield>`c print specified char iff bitfield is all zeroes |
| 830 %<bitfield>?ab... select from array of values in big endian order | 869 %<bitfield>?ab... select from array of values in big endian order |
| 831 | 870 |
| 832 %e print arm SMI operand (bits 0..7,8..19). | 871 %e print arm SMI operand (bits 0..7,8..19). |
| 833 %E print the LSB and WIDTH fields of a BFI or BFC instructi
on. | 872 %E print the LSB and WIDTH fields of a BFI or BFC instructi
on. |
| 834 %V print the 16-bit immediate field of a MOVT or MOVW instr
uction. | 873 %V print the 16-bit immediate field of a MOVT or MOVW instr
uction. |
| 835 %R print the SPSR/CPSR or banked register of an MRS. */ | 874 %R print the SPSR/CPSR or banked register of an MRS. */ |
| 836 | 875 |
| 837 static const struct opcode32 arm_opcodes[] = | 876 static const struct opcode32 arm_opcodes[] = |
| 838 { | 877 { |
| 839 /* ARM instructions. */ | 878 /* ARM instructions. */ |
| 840 {ARM_EXT_V1, 0xe1a00000, 0xffffffff, "nop\t\t\t; (mov r0, r0)"}, | 879 {ARM_EXT_V1, 0xe1a00000, 0xffffffff, "nop\t\t\t; (mov r0, r0)"}, |
| 880 {ARM_EXT_V1, 0xe7f000f0, 0xfff000f0, "udf\t#%e"}, |
| 881 |
| 841 {ARM_EXT_V4T | ARM_EXT_V5, 0x012FFF10, 0x0ffffff0, "bx%c\t%0-3r"}, | 882 {ARM_EXT_V4T | ARM_EXT_V5, 0x012FFF10, 0x0ffffff0, "bx%c\t%0-3r"}, |
| 842 {ARM_EXT_V2, 0x00000090, 0x0fe000f0, "mul%20's%c\t%16-19R, %0-3R, %8-11R"}, | 883 {ARM_EXT_V2, 0x00000090, 0x0fe000f0, "mul%20's%c\t%16-19R, %0-3R, %8-11R"}, |
| 843 {ARM_EXT_V2, 0x00200090, 0x0fe000f0, "mla%20's%c\t%16-19R, %0-3R, %8-11R, %12-
15R"}, | 884 {ARM_EXT_V2, 0x00200090, 0x0fe000f0, "mla%20's%c\t%16-19R, %0-3R, %8-11R, %12-
15R"}, |
| 844 {ARM_EXT_V2S, 0x01000090, 0x0fb00ff0, "swp%22'b%c\t%12-15RU, %0-3Ru, [%16-19Ru
U]"}, | 885 {ARM_EXT_V2S, 0x01000090, 0x0fb00ff0, "swp%22'b%c\t%12-15RU, %0-3Ru, [%16-19Ru
U]"}, |
| 845 {ARM_EXT_V3M, 0x00800090, 0x0fa000f0, "%22?sumull%20's%c\t%12-15Ru, %16-19Ru,
%0-3R, %8-11R"}, | 886 {ARM_EXT_V3M, 0x00800090, 0x0fa000f0, "%22?sumull%20's%c\t%12-15Ru, %16-19Ru,
%0-3R, %8-11R"}, |
| 846 {ARM_EXT_V3M, 0x00a00090, 0x0fa000f0, "%22?sumlal%20's%c\t%12-15Ru, %16-19Ru,
%0-3R, %8-11R"}, | 887 {ARM_EXT_V3M, 0x00a00090, 0x0fa000f0, "%22?sumlal%20's%c\t%12-15Ru, %16-19Ru,
%0-3R, %8-11R"}, |
| 847 | 888 |
| 889 /* V8 instructions. */ |
| 890 {ARM_EXT_V8, 0x0320f005, 0x0fffffff, "sevl"}, |
| 891 {ARM_EXT_V8, 0xe1000070, 0xfff000f0, "hlt\t0x%16-19X%12-15X%8-11X%0-3X"}, |
| 892 {ARM_EXT_V8, 0x01800e90, 0x0ff00ff0, "stlex%c\t%12-15r, %0-3r, [%16-19R]"}, |
| 893 {ARM_EXT_V8, 0x01900e9f, 0x0ff00fff, "ldaex%c\t%12-15r, [%16-19R]"}, |
| 894 {ARM_EXT_V8, 0x01a00e90, 0x0ff00ff0, "stlexd%c\t%12-15r, %0-3r, %0-3T, [%16-
19R]"}, |
| 895 {ARM_EXT_V8, 0x01b00e9f, 0x0ff00fff, "ldaexd%c\t%12-15r, %12-15T, [%16-19R]"
}, |
| 896 {ARM_EXT_V8, 0x01c00e90, 0x0ff00ff0, "stlexb%c\t%12-15r, %0-3r, [%16-19R]"}, |
| 897 {ARM_EXT_V8, 0x01d00e9f, 0x0ff00fff, "ldaexb%c\t%12-15r, [%16-19R]"}, |
| 898 {ARM_EXT_V8, 0x01e00e90, 0x0ff00ff0, "stlexh%c\t%12-15r, %0-3r, [%16-19R]"}, |
| 899 {ARM_EXT_V8, 0x01f00e9f, 0x0ff00fff, "ldaexh%c\t%12-15r, [%16-19R]"}, |
| 900 {ARM_EXT_V8, 0x0180fc90, 0x0ff0fff0, "stl%c\t%0-3r, [%16-19R]"}, |
| 901 {ARM_EXT_V8, 0x01900c9f, 0x0ff00fff, "lda%c\t%12-15r, [%16-19R]"}, |
| 902 {ARM_EXT_V8, 0x01c0fc90, 0x0ff0fff0, "stlb%c\t%0-3r, [%16-19R]"}, |
| 903 {ARM_EXT_V8, 0x01d00c9f, 0x0ff00fff, "ldab%c\t%12-15r, [%16-19R]"}, |
| 904 {ARM_EXT_V8, 0x01e0fc90, 0x0ff0fff0, "stlh%c\t%0-3r, [%16-19R]"}, |
| 905 {ARM_EXT_V8, 0x01f00c9f, 0x0ff00fff, "ldaexh%c\t%12-15r, [%16-19R]"}, |
| 906 /* CRC32 instructions. */ |
| 907 {CRC_EXT_ARMV8, 0xe1000040, 0xfff00ff0, "crc32b\t%12-15R, %16-19R, %0-3R"}, |
| 908 {CRC_EXT_ARMV8, 0xe1200040, 0xfff00ff0, "crc32h\t%12-15R, %16-19R, %0-3R"}, |
| 909 {CRC_EXT_ARMV8, 0xe1400040, 0xfff00ff0, "crc32w\t%12-15R, %16-19R, %0-3R"}, |
| 910 {CRC_EXT_ARMV8, 0xe1000240, 0xfff00ff0, "crc32cb\t%12-15R, %16-19R, %0-3R"}, |
| 911 {CRC_EXT_ARMV8, 0xe1200240, 0xfff00ff0, "crc32ch\t%12-15R, %16-19R, %0-3R"}, |
| 912 {CRC_EXT_ARMV8, 0xe1400240, 0xfff00ff0, "crc32cw\t%12-15R, %16-19R, %0-3R"}, |
| 913 |
| 848 /* Virtualization Extension instructions. */ | 914 /* Virtualization Extension instructions. */ |
| 849 {ARM_EXT_VIRT, 0x0160006e, 0x0fffffff, "eret%c"}, | 915 {ARM_EXT_VIRT, 0x0160006e, 0x0fffffff, "eret%c"}, |
| 850 {ARM_EXT_VIRT, 0x01400070, 0x0ff000f0, "hvc%c\t%e"}, | 916 {ARM_EXT_VIRT, 0x01400070, 0x0ff000f0, "hvc%c\t%e"}, |
| 851 | 917 |
| 852 /* Integer Divide Extension instructions. */ | 918 /* Integer Divide Extension instructions. */ |
| 853 {ARM_EXT_ADIV, 0x0710f010, 0x0ff0f0f0, "sdiv%c\t%16-19r, %0-3r, %8-11r"}, | 919 {ARM_EXT_ADIV, 0x0710f010, 0x0ff0f0f0, "sdiv%c\t%16-19r, %0-3r, %8-11r"}, |
| 854 {ARM_EXT_ADIV, 0x0730f010, 0x0ff0f0f0, "udiv%c\t%16-19r, %0-3r, %8-11r"}, | 920 {ARM_EXT_ADIV, 0x0730f010, 0x0ff0f0f0, "udiv%c\t%16-19r, %0-3r, %8-11r"}, |
| 855 | 921 |
| 856 /* MP Extension instructions. */ | 922 /* MP Extension instructions. */ |
| 857 {ARM_EXT_MP, 0xf410f000, 0xfc70f000, "pldw\t%a"}, | 923 {ARM_EXT_MP, 0xf410f000, 0xfc70f000, "pldw\t%a"}, |
| 858 | 924 |
| 859 /* V7 instructions. */ | 925 /* V7 instructions. */ |
| 860 {ARM_EXT_V7, 0xf450f000, 0xfd70f000, "pli\t%P"}, | 926 {ARM_EXT_V7, 0xf450f000, 0xfd70f000, "pli\t%P"}, |
| 861 {ARM_EXT_V7, 0x0320f0f0, 0x0ffffff0, "dbg%c\t#%0-3d"}, | 927 {ARM_EXT_V7, 0x0320f0f0, 0x0ffffff0, "dbg%c\t#%0-3d"}, |
| 928 {ARM_EXT_V8, 0xf57ff051, 0xfffffff3, "dmb\t%U"}, |
| 929 {ARM_EXT_V8, 0xf57ff041, 0xfffffff3, "dsb\t%U"}, |
| 862 {ARM_EXT_V7, 0xf57ff050, 0xfffffff0, "dmb\t%U"}, | 930 {ARM_EXT_V7, 0xf57ff050, 0xfffffff0, "dmb\t%U"}, |
| 863 {ARM_EXT_V7, 0xf57ff040, 0xfffffff0, "dsb\t%U"}, | 931 {ARM_EXT_V7, 0xf57ff040, 0xfffffff0, "dsb\t%U"}, |
| 864 {ARM_EXT_V7, 0xf57ff060, 0xfffffff0, "isb\t%U"}, | 932 {ARM_EXT_V7, 0xf57ff060, 0xfffffff0, "isb\t%U"}, |
| 865 | 933 |
| 866 /* ARM V6T2 instructions. */ | 934 /* ARM V6T2 instructions. */ |
| 867 {ARM_EXT_V6T2, 0x07c0001f, 0x0fe0007f, "bfc%c\t%12-15R, %E"}, | 935 {ARM_EXT_V6T2, 0x07c0001f, 0x0fe0007f, "bfc%c\t%12-15R, %E"}, |
| 868 {ARM_EXT_V6T2, 0x07c00010, 0x0fe00070, "bfi%c\t%12-15R, %0-3r, %E"}, | 936 {ARM_EXT_V6T2, 0x07c00010, 0x0fe00070, "bfi%c\t%12-15R, %0-3r, %E"}, |
| 869 {ARM_EXT_V6T2, 0x00600090, 0x0ff000f0, "mls%c\t%16-19R, %0-3R, %8-11R, %12-15R
"}, | 937 {ARM_EXT_V6T2, 0x00600090, 0x0ff000f0, "mls%c\t%16-19R, %0-3R, %8-11R, %12-15R
"}, |
| 870 {ARM_EXT_V6T2, 0x006000b0, 0x0f7000f0, "strht%c\t%12-15R, %S"}, | 938 {ARM_EXT_V6T2, 0x002000b0, 0x0f3000f0, "strht%c\t%12-15R, %S"}, |
| 871 | 939 |
| 872 {ARM_EXT_V6T2, 0x00300090, 0x0f3000f0, UNDEFINED_INSTRUCTION }, | 940 {ARM_EXT_V6T2, 0x00300090, 0x0f3000f0, UNDEFINED_INSTRUCTION }, |
| 873 {ARM_EXT_V6T2, 0x00300090, 0x0f300090, "ldr%6's%5?hbt%c\t%12-15R, %S"}, | 941 {ARM_EXT_V6T2, 0x00300090, 0x0f300090, "ldr%6's%5?hbt%c\t%12-15R, %S"}, |
| 874 | 942 |
| 875 {ARM_EXT_V6T2, 0x03000000, 0x0ff00000, "movw%c\t%12-15R, %V"}, | 943 {ARM_EXT_V6T2, 0x03000000, 0x0ff00000, "movw%c\t%12-15R, %V"}, |
| 876 {ARM_EXT_V6T2, 0x03400000, 0x0ff00000, "movt%c\t%12-15R, %V"}, | 944 {ARM_EXT_V6T2, 0x03400000, 0x0ff00000, "movt%c\t%12-15R, %V"}, |
| 877 {ARM_EXT_V6T2, 0x06ff0f30, 0x0fff0ff0, "rbit%c\t%12-15R, %0-3R"}, | 945 {ARM_EXT_V6T2, 0x06ff0f30, 0x0fff0ff0, "rbit%c\t%12-15R, %0-3R"}, |
| 878 {ARM_EXT_V6T2, 0x07a00050, 0x0fa00070, "%22?usbfx%c\t%12-15r, %0-3r, #%7-11d,
#%16-20W"}, | 946 {ARM_EXT_V6T2, 0x07a00050, 0x0fa00070, "%22?usbfx%c\t%12-15r, %0-3r, #%7-11d,
#%16-20W"}, |
| 879 | 947 |
| 880 /* ARM Security extension instructions. */ | 948 /* ARM Security extension instructions. */ |
| 881 {ARM_EXT_SEC, 0x01600070, 0x0ff000f0, "smc%c\t%e"}, | 949 {ARM_EXT_SEC, 0x01600070, 0x0ff000f0, "smc%c\t%e"}, |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1231 %<bitfield>a print (bitfield * 4) as a pc-rel offset + decoded symbol | 1299 %<bitfield>a print (bitfield * 4) as a pc-rel offset + decoded symbol |
| 1232 %<bitfield>B print Thumb branch destination (signed displacement) | 1300 %<bitfield>B print Thumb branch destination (signed displacement) |
| 1233 %<bitfield>c print bitfield as a condition code | 1301 %<bitfield>c print bitfield as a condition code |
| 1234 %<bitnum>'c print specified char iff bit is one | 1302 %<bitnum>'c print specified char iff bit is one |
| 1235 %<bitnum>?ab print a if bit is one else print b. */ | 1303 %<bitnum>?ab print a if bit is one else print b. */ |
| 1236 | 1304 |
| 1237 static const struct opcode16 thumb_opcodes[] = | 1305 static const struct opcode16 thumb_opcodes[] = |
| 1238 { | 1306 { |
| 1239 /* Thumb instructions. */ | 1307 /* Thumb instructions. */ |
| 1240 | 1308 |
| 1309 /* ARM V8 instructions. */ |
| 1310 {ARM_EXT_V8, 0xbf50, 0xffff, "sevl%c"}, |
| 1311 {ARM_EXT_V8, 0xba80, 0xffc0, "hlt\t%0-5x"}, |
| 1312 |
| 1241 /* ARM V6K no-argument instructions. */ | 1313 /* ARM V6K no-argument instructions. */ |
| 1242 {ARM_EXT_V6K, 0xbf00, 0xffff, "nop%c"}, | 1314 {ARM_EXT_V6K, 0xbf00, 0xffff, "nop%c"}, |
| 1243 {ARM_EXT_V6K, 0xbf10, 0xffff, "yield%c"}, | 1315 {ARM_EXT_V6K, 0xbf10, 0xffff, "yield%c"}, |
| 1244 {ARM_EXT_V6K, 0xbf20, 0xffff, "wfe%c"}, | 1316 {ARM_EXT_V6K, 0xbf20, 0xffff, "wfe%c"}, |
| 1245 {ARM_EXT_V6K, 0xbf30, 0xffff, "wfi%c"}, | 1317 {ARM_EXT_V6K, 0xbf30, 0xffff, "wfi%c"}, |
| 1246 {ARM_EXT_V6K, 0xbf40, 0xffff, "sev%c"}, | 1318 {ARM_EXT_V6K, 0xbf40, 0xffff, "sev%c"}, |
| 1247 {ARM_EXT_V6K, 0xbf00, 0xff0f, "nop%c\t{%4-7d}"}, | 1319 {ARM_EXT_V6K, 0xbf00, 0xff0f, "nop%c\t{%4-7d}"}, |
| 1248 | 1320 |
| 1249 /* ARM V6T2 instructions. */ | 1321 /* ARM V6T2 instructions. */ |
| 1250 {ARM_EXT_V6T2, 0xb900, 0xfd00, "cbnz\t%0-2r, %b%X"}, | 1322 {ARM_EXT_V6T2, 0xb900, 0xfd00, "cbnz\t%0-2r, %b%X"}, |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1335 {ARM_EXT_V4T, 0x9800, 0xF800, "ldr%c\t%8-10r, [sp, #%0-7W]"}, | 1407 {ARM_EXT_V4T, 0x9800, 0xF800, "ldr%c\t%8-10r, [sp, #%0-7W]"}, |
| 1336 /* format 12 */ | 1408 /* format 12 */ |
| 1337 {ARM_EXT_V4T, 0xA000, 0xF800, "add%c\t%8-10r, pc, #%0-7W\t; (adr %8-10r, %0-7a
)"}, | 1409 {ARM_EXT_V4T, 0xA000, 0xF800, "add%c\t%8-10r, pc, #%0-7W\t; (adr %8-10r, %0-7a
)"}, |
| 1338 {ARM_EXT_V4T, 0xA800, 0xF800, "add%c\t%8-10r, sp, #%0-7W"}, | 1410 {ARM_EXT_V4T, 0xA800, 0xF800, "add%c\t%8-10r, sp, #%0-7W"}, |
| 1339 /* format 15 */ | 1411 /* format 15 */ |
| 1340 {ARM_EXT_V4T, 0xC000, 0xF800, "stmia%c\t%8-10r!, %M"}, | 1412 {ARM_EXT_V4T, 0xC000, 0xF800, "stmia%c\t%8-10r!, %M"}, |
| 1341 {ARM_EXT_V4T, 0xC800, 0xF800, "ldmia%c\t%8-10r%W, %M"}, | 1413 {ARM_EXT_V4T, 0xC800, 0xF800, "ldmia%c\t%8-10r%W, %M"}, |
| 1342 /* format 17 */ | 1414 /* format 17 */ |
| 1343 {ARM_EXT_V4T, 0xDF00, 0xFF00, "svc%c\t%0-7d"}, | 1415 {ARM_EXT_V4T, 0xDF00, 0xFF00, "svc%c\t%0-7d"}, |
| 1344 /* format 16 */ | 1416 /* format 16 */ |
| 1417 {ARM_EXT_V4T, 0xDE00, 0xFF00, "udf%c\t#%0-7d"}, |
| 1345 {ARM_EXT_V4T, 0xDE00, 0xFE00, UNDEFINED_INSTRUCTION}, | 1418 {ARM_EXT_V4T, 0xDE00, 0xFE00, UNDEFINED_INSTRUCTION}, |
| 1346 {ARM_EXT_V4T, 0xD000, 0xF000, "b%8-11c.n\t%0-7B%X"}, | 1419 {ARM_EXT_V4T, 0xD000, 0xF000, "b%8-11c.n\t%0-7B%X"}, |
| 1347 /* format 18 */ | 1420 /* format 18 */ |
| 1348 {ARM_EXT_V4T, 0xE000, 0xF800, "b%c.n\t%0-10B%x"}, | 1421 {ARM_EXT_V4T, 0xE000, 0xF800, "b%c.n\t%0-10B%x"}, |
| 1349 | 1422 |
| 1350 /* The E800 .. FFFF range is unconditionally redirected to the | 1423 /* The E800 .. FFFF range is unconditionally redirected to the |
| 1351 32-bit table, because even in pre-V6T2 ISAs, BL and BLX(1) pairs | 1424 32-bit table, because even in pre-V6T2 ISAs, BL and BLX(1) pairs |
| 1352 are processed via that table. Thus, we can never encounter a | 1425 are processed via that table. Thus, we can never encounter a |
| 1353 bare "second half of BL/BLX(1)" instruction here. */ | 1426 bare "second half of BL/BLX(1)" instruction here. */ |
| 1354 {ARM_EXT_V1, 0x0000, 0x0000, UNDEFINED_INSTRUCTION}, | 1427 {ARM_EXT_V1, 0x0000, 0x0000, UNDEFINED_INSTRUCTION}, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1383 %R print the rotation field of an SXT instruction | 1456 %R print the rotation field of an SXT instruction |
| 1384 %U print barrier type. | 1457 %U print barrier type. |
| 1385 %P print address for pli instruction. | 1458 %P print address for pli instruction. |
| 1386 %c print the condition code | 1459 %c print the condition code |
| 1387 %x print warning if conditional an not at end of IT block" | 1460 %x print warning if conditional an not at end of IT block" |
| 1388 %X print "\t; unpredictable <IT:code>" if conditional | 1461 %X print "\t; unpredictable <IT:code>" if conditional |
| 1389 | 1462 |
| 1390 %<bitfield>d print bitfield in decimal | 1463 %<bitfield>d print bitfield in decimal |
| 1391 %<bitfield>W print bitfield*4 in decimal | 1464 %<bitfield>W print bitfield*4 in decimal |
| 1392 %<bitfield>r print bitfield as an ARM register | 1465 %<bitfield>r print bitfield as an ARM register |
| 1393 %<bitfield>R» as %<>r bit r15 is UNPREDICTABLE | 1466 %<bitfield>R» as %<>r but r15 is UNPREDICTABLE |
| 1467 %<bitfield>S» as %<>R but r13 is UNPREDICTABLE |
| 1394 %<bitfield>c print bitfield as a condition code | 1468 %<bitfield>c print bitfield as a condition code |
| 1395 | 1469 |
| 1396 %<bitfield>'c print specified char iff bitfield is all ones | 1470 %<bitfield>'c print specified char iff bitfield is all ones |
| 1397 %<bitfield>`c print specified char iff bitfield is all zeroes | 1471 %<bitfield>`c print specified char iff bitfield is all zeroes |
| 1398 %<bitfield>?ab... select from array of values in big endian order | 1472 %<bitfield>?ab... select from array of values in big endian order |
| 1399 | 1473 |
| 1400 With one exception at the bottom (done because BL and BLX(1) need | 1474 With one exception at the bottom (done because BL and BLX(1) need |
| 1401 to come dead last), this table was machine-sorted first in | 1475 to come dead last), this table was machine-sorted first in |
| 1402 decreasing order of number of bits set in the mask, then in | 1476 decreasing order of number of bits set in the mask, then in |
| 1403 increasing numeric order of mask, then in increasing numeric order | 1477 increasing numeric order of mask, then in increasing numeric order |
| 1404 of opcode. This order is not the clearest for a human reader, but | 1478 of opcode. This order is not the clearest for a human reader, but |
| 1405 is guaranteed never to catch a special-case bit pattern with a more | 1479 is guaranteed never to catch a special-case bit pattern with a more |
| 1406 general mask, which is important, because this instruction encoding | 1480 general mask, which is important, because this instruction encoding |
| 1407 makes heavy use of special-case bit patterns. */ | 1481 makes heavy use of special-case bit patterns. */ |
| 1408 static const struct opcode32 thumb32_opcodes[] = | 1482 static const struct opcode32 thumb32_opcodes[] = |
| 1409 { | 1483 { |
| 1484 /* V8 instructions. */ |
| 1485 {ARM_EXT_V8, 0xf3af8005, 0xffffffff, "sevl%c.w"}, |
| 1486 {ARM_EXT_V8, 0xf78f8000, 0xfffffffc, "dcps%0-1d"}, |
| 1487 {ARM_EXT_V8, 0xe8c00f8f, 0xfff00fff, "stlb%c\t%12-15r, [%16-19R]"}, |
| 1488 {ARM_EXT_V8, 0xe8c00f9f, 0xfff00fff, "stlh%c\t%12-15r, [%16-19R]"}, |
| 1489 {ARM_EXT_V8, 0xe8c00faf, 0xfff00fff, "stl%c\t%12-15r, [%16-19R]"}, |
| 1490 {ARM_EXT_V8, 0xe8c00fc0, 0xfff00ff0, "stlexb%c\t%0-3r, %12-15r, [%16-19R]"}, |
| 1491 {ARM_EXT_V8, 0xe8c00fd0, 0xfff00ff0, "stlexh%c\t%0-3r, %12-15r, [%16-19R]"}, |
| 1492 {ARM_EXT_V8, 0xe8c00fe0, 0xfff00ff0, "stlex%c\t%0-3r, %12-15r, [%16-19R]"}, |
| 1493 {ARM_EXT_V8, 0xe8c000f0, 0xfff000f0, "stlexd%c\t%0-3r, %12-15r, %8-11r, [%16-1
9R]"}, |
| 1494 {ARM_EXT_V8, 0xe8d00f8f, 0xfff00fff, "ldab%c\t%12-15r, [%16-19R]"}, |
| 1495 {ARM_EXT_V8, 0xe8d00f9f, 0xfff00fff, "ldah%c\t%12-15r, [%16-19R]"}, |
| 1496 {ARM_EXT_V8, 0xe8d00faf, 0xfff00fff, "lda%c\t%12-15r, [%16-19R]"}, |
| 1497 {ARM_EXT_V8, 0xe8d00fcf, 0xfff00fff, "ldaexb%c\t%12-15r, [%16-19R]"}, |
| 1498 {ARM_EXT_V8, 0xe8d00fdf, 0xfff00fff, "ldaexh%c\t%12-15r, [%16-19R]"}, |
| 1499 {ARM_EXT_V8, 0xe8d00fef, 0xfff00fff, "ldaex%c\t%12-15r, [%16-19R]"}, |
| 1500 {ARM_EXT_V8, 0xe8d000ff, 0xfff000ff, "ldaexd%c\t%12-15r, %8-11r, [%16-19R]"}, |
| 1501 |
| 1502 /* CRC32 instructions. */ |
| 1503 {CRC_EXT_ARMV8, 0xfac0f080, 0xfff0f0f0, "crc32b\t%8-11S, %16-19S, %0-3S"}, |
| 1504 {CRC_EXT_ARMV8, 0xfac0f090, 0xfff0f0f0, "crc32h\t%9-11S, %16-19S, %0-3S"}, |
| 1505 {CRC_EXT_ARMV8, 0xfac0f0a0, 0xfff0f0f0, "crc32w\t%8-11S, %16-19S, %0-3S"}, |
| 1506 {CRC_EXT_ARMV8, 0xfad0f080, 0xfff0f0f0, "crc32cb\t%8-11S, %16-19S, %0-3S"}, |
| 1507 {CRC_EXT_ARMV8, 0xfad0f090, 0xfff0f0f0, "crc32ch\t%8-11S, %16-19S, %0-3S"}, |
| 1508 {CRC_EXT_ARMV8, 0xfad0f0a0, 0xfff0f0f0, "crc32cw\t%8-11S, %16-19S, %0-3S"}, |
| 1509 |
| 1410 /* V7 instructions. */ | 1510 /* V7 instructions. */ |
| 1411 {ARM_EXT_V7, 0xf910f000, 0xff70f000, "pli%c\t%a"}, | 1511 {ARM_EXT_V7, 0xf910f000, 0xff70f000, "pli%c\t%a"}, |
| 1412 {ARM_EXT_V7, 0xf3af80f0, 0xfffffff0, "dbg%c\t#%0-3d"}, | 1512 {ARM_EXT_V7, 0xf3af80f0, 0xfffffff0, "dbg%c\t#%0-3d"}, |
| 1513 {ARM_EXT_V8, 0xf3bf8f51, 0xfffffff3, "dmb%c\t%U"}, |
| 1514 {ARM_EXT_V8, 0xf3bf8f41, 0xfffffff3, "dsb%c\t%U"}, |
| 1413 {ARM_EXT_V7, 0xf3bf8f50, 0xfffffff0, "dmb%c\t%U"}, | 1515 {ARM_EXT_V7, 0xf3bf8f50, 0xfffffff0, "dmb%c\t%U"}, |
| 1414 {ARM_EXT_V7, 0xf3bf8f40, 0xfffffff0, "dsb%c\t%U"}, | 1516 {ARM_EXT_V7, 0xf3bf8f40, 0xfffffff0, "dsb%c\t%U"}, |
| 1415 {ARM_EXT_V7, 0xf3bf8f60, 0xfffffff0, "isb%c\t%U"}, | 1517 {ARM_EXT_V7, 0xf3bf8f60, 0xfffffff0, "isb%c\t%U"}, |
| 1416 {ARM_EXT_DIV, 0xfb90f0f0, 0xfff0f0f0, "sdiv%c\t%8-11r, %16-19r, %0-3r"}, | 1518 {ARM_EXT_DIV, 0xfb90f0f0, 0xfff0f0f0, "sdiv%c\t%8-11r, %16-19r, %0-3r"}, |
| 1417 {ARM_EXT_DIV, 0xfbb0f0f0, 0xfff0f0f0, "udiv%c\t%8-11r, %16-19r, %0-3r"}, | 1519 {ARM_EXT_DIV, 0xfbb0f0f0, 0xfff0f0f0, "udiv%c\t%8-11r, %16-19r, %0-3r"}, |
| 1418 | 1520 |
| 1419 /* Virtualization Extension instructions. */ | 1521 /* Virtualization Extension instructions. */ |
| 1420 {ARM_EXT_VIRT, 0xf7e08000, 0xfff0f000, "hvc%c\t%V"}, | 1522 {ARM_EXT_VIRT, 0xf7e08000, 0xfff0f000, "hvc%c\t%V"}, |
| 1421 /* We skip ERET as that is SUBS pc, lr, #0. */ | 1523 /* We skip ERET as that is SUBS pc, lr, #0. */ |
| 1422 | 1524 |
| 1423 /* MP Extension instructions. */ | 1525 /* MP Extension instructions. */ |
| 1424 {ARM_EXT_MP, 0xf830f000, 0xff70f000, "pldw%c\t%a"}, | 1526 {ARM_EXT_MP, 0xf830f000, 0xff70f000, "pldw%c\t%a"}, |
| 1425 | 1527 |
| 1426 /* Security extension instructions. */ | 1528 /* Security extension instructions. */ |
| 1427 {ARM_EXT_SEC, 0xf7f08000, 0xfff0f000, "smc%c\t%K"}, | 1529 {ARM_EXT_SEC, 0xf7f08000, 0xfff0f000, "smc%c\t%K"}, |
| 1428 | 1530 |
| 1429 /* Instructions defined in the basic V6T2 set. */ | 1531 /* Instructions defined in the basic V6T2 set. */ |
| 1430 {ARM_EXT_V6T2, 0xf3af8000, 0xffffffff, "nop%c.w"}, | 1532 {ARM_EXT_V6T2, 0xf3af8000, 0xffffffff, "nop%c.w"}, |
| 1431 {ARM_EXT_V6T2, 0xf3af8001, 0xffffffff, "yield%c.w"}, | 1533 {ARM_EXT_V6T2, 0xf3af8001, 0xffffffff, "yield%c.w"}, |
| 1432 {ARM_EXT_V6T2, 0xf3af8002, 0xffffffff, "wfe%c.w"}, | 1534 {ARM_EXT_V6T2, 0xf3af8002, 0xffffffff, "wfe%c.w"}, |
| 1433 {ARM_EXT_V6T2, 0xf3af8003, 0xffffffff, "wfi%c.w"}, | 1535 {ARM_EXT_V6T2, 0xf3af8003, 0xffffffff, "wfi%c.w"}, |
| 1434 {ARM_EXT_V6T2, 0xf3af8004, 0xffffffff, "sev%c.w"}, | 1536 {ARM_EXT_V6T2, 0xf3af8004, 0xffffffff, "sev%c.w"}, |
| 1435 {ARM_EXT_V6T2, 0xf3af8000, 0xffffff00, "nop%c.w\t{%0-7d}"}, | 1537 {ARM_EXT_V6T2, 0xf3af8000, 0xffffff00, "nop%c.w\t{%0-7d}"}, |
| 1538 {ARM_EXT_V6T2, 0xf7f0a000, 0xfff0f000, "udf%c.w\t%H"}, |
| 1436 | 1539 |
| 1437 {ARM_EXT_V6T2, 0xf3bf8f2f, 0xffffffff, "clrex%c"}, | 1540 {ARM_EXT_V6T2, 0xf3bf8f2f, 0xffffffff, "clrex%c"}, |
| 1438 {ARM_EXT_V6T2, 0xf3af8400, 0xffffff1f, "cpsie.w\t%7'a%6'i%5'f%X"}, | 1541 {ARM_EXT_V6T2, 0xf3af8400, 0xffffff1f, "cpsie.w\t%7'a%6'i%5'f%X"}, |
| 1439 {ARM_EXT_V6T2, 0xf3af8600, 0xffffff1f, "cpsid.w\t%7'a%6'i%5'f%X"}, | 1542 {ARM_EXT_V6T2, 0xf3af8600, 0xffffff1f, "cpsid.w\t%7'a%6'i%5'f%X"}, |
| 1440 {ARM_EXT_V6T2, 0xf3c08f00, 0xfff0ffff, "bxj%c\t%16-19r%x"}, | 1543 {ARM_EXT_V6T2, 0xf3c08f00, 0xfff0ffff, "bxj%c\t%16-19r%x"}, |
| 1441 {ARM_EXT_V6T2, 0xe810c000, 0xffd0ffff, "rfedb%c\t%16-19r%21'!"}, | 1544 {ARM_EXT_V6T2, 0xe810c000, 0xffd0ffff, "rfedb%c\t%16-19r%21'!"}, |
| 1442 {ARM_EXT_V6T2, 0xe990c000, 0xffd0ffff, "rfeia%c\t%16-19r%21'!"}, | 1545 {ARM_EXT_V6T2, 0xe990c000, 0xffd0ffff, "rfeia%c\t%16-19r%21'!"}, |
| 1443 {ARM_EXT_V6T2, 0xf3e08000, 0xffe0f000, "mrs%c\t%8-11r, %D"}, | 1546 {ARM_EXT_V6T2, 0xf3e08000, 0xffe0f000, "mrs%c\t%8-11r, %D"}, |
| 1444 {ARM_EXT_V6T2, 0xf3af8100, 0xffffffe0, "cps\t#%0-4d%X"}, | 1547 {ARM_EXT_V6T2, 0xf3af8100, 0xffffffe0, "cps\t#%0-4d%X"}, |
| 1445 {ARM_EXT_V6T2, 0xe8d0f000, 0xfff0fff0, "tbb%c\t[%16-19r, %0-3r]%x"}, | 1548 {ARM_EXT_V6T2, 0xe8d0f000, 0xfff0fff0, "tbb%c\t[%16-19r, %0-3r]%x"}, |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1681 #define NUM_ARM_REGNAMES NUM_ELEM (regnames) | 1784 #define NUM_ARM_REGNAMES NUM_ELEM (regnames) |
| 1682 #define arm_regnames regnames[regname_selected].reg_names | 1785 #define arm_regnames regnames[regname_selected].reg_names |
| 1683 | 1786 |
| 1684 static bfd_boolean force_thumb = FALSE; | 1787 static bfd_boolean force_thumb = FALSE; |
| 1685 | 1788 |
| 1686 /* Current IT instruction state. This contains the same state as the IT | 1789 /* Current IT instruction state. This contains the same state as the IT |
| 1687 bits in the CPSR. */ | 1790 bits in the CPSR. */ |
| 1688 static unsigned int ifthen_state; | 1791 static unsigned int ifthen_state; |
| 1689 /* IT state for the next instruction. */ | 1792 /* IT state for the next instruction. */ |
| 1690 static unsigned int ifthen_next_state; | 1793 static unsigned int ifthen_next_state; |
error: old chunk mismatch |
None
| OLD | NEW |