nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | /* |
2 | Copyright (c) 2013, Jurriaan Bremer |
||
3 | All rights reserved. |
||
4 | |||
5 | Redistribution and use in source and binary forms, with or without |
||
6 | modification, are permitted provided that the following conditions are met: |
||
7 | |||
8 | * Redistributions of source code must retain the above copyright notice, |
||
9 | this list of conditions and the following disclaimer. |
||
10 | * Redistributions in binary form must reproduce the above copyright notice, |
||
11 | this list of conditions and the following disclaimer in the documentation |
||
12 | and/or other materials provided with the distribution. |
||
13 | * Neither the name of the darm developer(s) nor the names of its |
||
14 | contributors may be used to endorse or promote products derived from this |
||
15 | software without specific prior written permission. |
||
16 | |||
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
||
18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
||
19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
||
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
||
21 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
||
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
||
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
||
24 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
||
25 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
||
26 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
||
27 | POSSIBILITY OF SUCH DAMAGE. |
||
28 | */ |
||
29 | #include <stdio.h> |
||
30 | #include <stdint.h> |
||
31 | #include "thumb2-tbl.h" |
||
32 | darm_instr_t thumb2_instr_labels[] = { |
||
33 | I_ADC, I_ADC, I_WFE, I_WFI, I_SEV, I_NOP, I_SUB, I_LDR, I_ROR, I_LSR, |
||
34 | I_STREX, I_PUSH, I_LDRD, I_STRT, I_MOVT, I_ADD, I_BIC, I_ASR, I_REVSH, |
||
35 | I_SHADD8, I_YIELD, I_USUB16, I_USAD8, I_UHASX, I_UXTB, I_ADDW, I_RRX, |
||
36 | I_SUB, I_SUBW, I_MVN, I_LDREXH, I_LDR, I_LDMDB, I_B, I_UADD16, I_UHADD8, |
||
37 | I_UDF, I_LDRSB, I_PLI, I_SADD8, I_BLX, I_UQADD16, I_LDRSBT, I_UHSUB8, |
||
38 | I_POP, I_BFC, I_UMLAL, I_UHADD16, I_MLS, I_SHASX, I_SUB, I_PLD, I_REV16, |
||
39 | I_UMAAL, I_STREXD, I_UHSUB16, I_LDRT, I_SUBW, I_SMLAD, I_LDREX, I_USUB8, |
||
40 | I_CMP, I_LDREXD, I_CLZ, I_SMLSLD, I_CMN, I_B, I_SASX, I_REV, I_STRB, |
||
41 | I_QDADD, I_ORR, I_SMULW, I_UHSAX, I_STM, I_TEQ, I_BXJ, I_QSUB16, I_AND, |
||
42 | I_UDIV, I_PLI, I_QSUB, I_PUSH, I_SHSUB8, I_UXTB16, I_SXTAH, I_SXTB, |
||
43 | I_QDSUB, I_MOVW, I_LDRD, I_EOR, I_QASX, I_ADR, I_USAX, I_LDRB, I_MLA, |
||
44 | I_SMUL, I_SMLALD, I_SBFX, I_SHSUB16, I_UQASX, I_LDRH, I_SSUB8, I_STRHT, |
||
45 | I_UXTAH, I_BL, I_BIC, I_SHSAX, I_RSB, I_UXTAB16, I_STRB, I_UQADD8, |
||
46 | I_SSUB16, I_SXTAB16, I_SEL, I_DBG, I_SUB, I_ADD, I_STR, I_LDRH, I_LDRSH, |
||
47 | I_CMN, I_QADD, I_POP, I_LDRB, I_UMULL, I_UADD8, I_SSAX, I_SMLAL, I_STR, |
||
48 | I_SMMLS, I_STR, I_TBB, I_ORR, I_STRH, I_SXTAB, I_CLREX, I_TST, I_LDM, |
||
49 | I_QADD8, I_LDR, I_LDRSB, I_DSB, I_SMLSD, I_SMMUL, I_LDRH, I_SHADD16, |
||
50 | I_LSL, I_LDRSB, I_UXTAB, I_LDREXB, I_DMB, I_UQSUB8, I_BFI, I_SMLA, I_ADDW, |
||
51 | I_ISB, I_LDR, I_MVN, I_UASX, I_QADD16, I_UBFX, I_PLD, I_LDRHT, I_ORN, |
||
52 | I_LDRH, I_ADR, I_UQSUB16, I_USADA8, I_ADD, I_STREXB, I_SBC, I_LSR, |
||
53 | I_STRBT, I_SMUAD, I_SXTH, I_TST, I_TEQ, I_LDRSB, I_STRB, I_LDRB, I_PLD, |
||
54 | I_EOR, I_STMDB, I_SMLAW, I_SDIV, I_PLI, I_SMUSD, I_QSUB8, I_UXTH, I_AND, |
||
55 | I_UQSAX, I_SADD16, I_LDRBT, I_LDRB, I_ADD, I_PLI, I_RBIT, I_CMP, I_SMULL, |
||
56 | I_ASR, I_SXTB16, I_STRH, I_ORN, I_LDRSH, I_MUL, I_STRH, I_MOV, I_STREXH, |
||
57 | I_RSB, I_SBC, I_PLD, I_SMMLA, I_QSAX, I_SMLAL, I_LDRSH, I_MOV, I_LDRSHT, |
||
58 | I_LDRSH, I_MRS |
||
59 | }; |
||
60 | |||
61 | const char *thumb2_instruction_strings[] = { |
||
62 | "ADC", "ADC", "WFE", "WFI", "SEV", "NOP", "SUB", "LDR", "ROR", "LSR", |
||
63 | "STREX", "PUSH", "LDRD", "STRT", "MOVT", "ADD", "BIC", "ASR", "REVSH", |
||
64 | "SHADD8", "YIELD", "USUB16", "USAD8", "UHASX", "UXTB", "ADDW", "RRX", |
||
65 | "SUB", "SUBW", "MVN", "LDREXH", "LDR", "LDMDB", "B", "UADD16", "UHADD8", |
||
66 | "UDF", "LDRSB", "PLI", "SADD8", "BLX", "UQADD16", "LDRSBT", "UHSUB8", |
||
67 | "POP", "BFC", "UMLAL", "UHADD16", "MLS", "SHASX", "SUB", "PLD", "REV16", |
||
68 | "UMAAL", "STREXD", "UHSUB16", "LDRT", "SUBW", "SMLAD", "LDREX", "USUB8", |
||
69 | "CMP", "LDREXD", "CLZ", "SMLSLD", "CMN", "B", "SASX", "REV", "STRB", |
||
70 | "QDADD", "ORR", "SMULW", "UHSAX", "STM", "TEQ", "BXJ", "QSUB16", "AND", |
||
71 | "UDIV", "PLI", "QSUB", "PUSH", "SHSUB8", "UXTB16", "SXTAH", "SXTB", |
||
72 | "QDSUB", "MOVW", "LDRD", "EOR", "QASX", "ADR", "USAX", "LDRB", "MLA", |
||
73 | "SMUL", "SMLALD", "SBFX", "SHSUB16", "UQASX", "LDRH", "SSUB8", "STRHT", |
||
74 | "UXTAH", "BL", "BIC", "SHSAX", "RSB", "UXTAB16", "STRB", "UQADD8", |
||
75 | "SSUB16", "SXTAB16", "SEL", "DBG", "SUB", "ADD", "STR", "LDRH", "LDRSH", |
||
76 | "CMN", "QADD", "POP", "LDRB", "UMULL", "UADD8", "SSAX", "SMLAL", "STR", |
||
77 | "SMMLS", "STR", "TBB", "ORR", "STRH", "SXTAB", "CLREX", "TST", "LDM", |
||
78 | "QADD8", "LDR", "LDRSB", "DSB", "SMLSD", "SMMUL", "LDRH", "SHADD16", |
||
79 | "LSL", "LDRSB", "UXTAB", "LDREXB", "DMB", "UQSUB8", "BFI", "SMLA", "ADDW", |
||
80 | "ISB", "LDR", "MVN", "UASX", "QADD16", "UBFX", "PLD", "LDRHT", "ORN", |
||
81 | "LDRH", "ADR", "UQSUB16", "USADA8", "ADD", "STREXB", "SBC", "LSR", |
||
82 | "STRBT", "SMUAD", "SXTH", "TST", "TEQ", "LDRSB", "STRB", "LDRB", "PLD", |
||
83 | "EOR", "STMDB", "SMLAW", "SDIV", "PLI", "SMUSD", "QSUB8", "UXTH", "AND", |
||
84 | "UQSAX", "SADD16", "LDRBT", "LDRB", "ADD", "PLI", "RBIT", "CMP", "SMULL", |
||
85 | "ASR", "SXTB16", "STRH", "ORN", "LDRSH", "MUL", "STRH", "MOV", "STREXH", |
||
86 | "RSB", "SBC", "PLD", "SMMLA", "QSAX", "SMLAL", "LDRSH", "MOV", "LDRSHT", |
||
87 | "LDRSH", "MRS" |
||
88 | }; |
||
89 |