Rizin
unix-like reverse engineering framework and cli tools
|
Go to the source code of this file.
Typedefs | |
typedef enum ARM_AM_ShiftOpc | ARM_AM_ShiftOpc |
ARM_AM - ARM Addressing Mode Stuff. More... | |
typedef enum ARM_AM_AddrOpc | ARM_AM_AddrOpc |
typedef enum ARM_AM_AMSubMode | ARM_AM_AMSubMode |
Enumerations | |
enum | ARM_AM_ShiftOpc { ARM_AM_no_shift = 0 , ARM_AM_asr , ARM_AM_lsl , ARM_AM_lsr , ARM_AM_ror , ARM_AM_rrx } |
ARM_AM - ARM Addressing Mode Stuff. More... | |
enum | ARM_AM_AddrOpc { ARM_AM_sub = 0 , ARM_AM_add } |
enum | ARM_AM_AMSubMode { ARM_AM_bad_am_submode = 0 , ARM_AM_ia , ARM_AM_ib , ARM_AM_da , ARM_AM_db } |
typedef enum ARM_AM_AddrOpc ARM_AM_AddrOpc |
typedef enum ARM_AM_AMSubMode ARM_AM_AMSubMode |
typedef enum ARM_AM_ShiftOpc ARM_AM_ShiftOpc |
ARM_AM - ARM Addressing Mode Stuff.
enum ARM_AM_AddrOpc |
enum ARM_AM_AMSubMode |
Enumerator | |
---|---|
ARM_AM_bad_am_submode | |
ARM_AM_ia | |
ARM_AM_ib | |
ARM_AM_da | |
ARM_AM_db |
Definition at line 66 of file ARMAddressingModes.h.
enum ARM_AM_ShiftOpc |
ARM_AM - ARM Addressing Mode Stuff.
Enumerator | |
---|---|
ARM_AM_no_shift | |
ARM_AM_asr | |
ARM_AM_lsl | |
ARM_AM_lsr | |
ARM_AM_ror | |
ARM_AM_rrx |
Definition at line 24 of file ARMAddressingModes.h.
decodeNEONModImm - Decode a NEON modified immediate value into the element value and the element size in bits. (If the element size is smaller than the vector, it is splatted into all the elements.)
Definition at line 599 of file ARMAddressingModes.h.
References getNEONModImmOpCmode(), and getNEONModImmVal().
|
inlinestatic |
Definition at line 38 of file ARMAddressingModes.h.
References ARM_AM_sub.
|
inlinestatic |
Definition at line 549 of file ARMAddressingModes.h.
|
inlinestatic |
Definition at line 553 of file ARMAddressingModes.h.
References ARM_AM_add, and ARM_AM_sub.
|
inlinestatic |
getAM5Opc - This function encodes the addrmode5 opc field.
Definition at line 544 of file ARMAddressingModes.h.
References ARM_AM_sub, and Offset.
|
inlinestatic |
|
inlinestatic |
Definition at line 55 of file ARMAddressingModes.h.
References ARM_AM_asr, ARM_AM_lsl, ARM_AM_lsr, and ARM_AM_ror.
|
inlinestatic |
Definition at line 43 of file ARMAddressingModes.h.
References ARM_AM_asr, ARM_AM_lsl, ARM_AM_lsr, ARM_AM_ror, and ARM_AM_rrx.
|
inlinestatic |
Definition at line 125 of file ARMAddressingModes.h.
Definition at line 583 of file ARMAddressingModes.h.
Definition at line 465 of file ARMAddressingModes.h.
Definition at line 450 of file ARMAddressingModes.h.
|
inlinestatic |
Definition at line 455 of file ARMAddressingModes.h.
References ARM_AM_add, and ARM_AM_sub.
|
inlinestatic |
Definition at line 460 of file ARMAddressingModes.h.
Definition at line 502 of file ARMAddressingModes.h.
Definition at line 492 of file ARMAddressingModes.h.
|
inlinestatic |
Definition at line 497 of file ARMAddressingModes.h.
References ARM_AM_add, and ARM_AM_sub.
|
inlinestatic |
getAM3Opc - This function encodes the addrmode3 opc field.
Definition at line 485 of file ARMAddressingModes.h.
References ARM_AM_sub, and Offset.
|
inlinestatic |
Definition at line 527 of file ARMAddressingModes.h.
|
inlinestatic |
Definition at line 522 of file ARMAddressingModes.h.
|
inlinestatic |
Definition at line 643 of file ARMAddressingModes.h.
ARM_AM_AMSubMode getLoadStoreMultipleSubMode | ( | int | Opcode | ) |
Definition at line 587 of file ARMAddressingModes.h.
Referenced by ARM_AM_decodeNEONModImm().
Definition at line 591 of file ARMAddressingModes.h.
Referenced by ARM_AM_decodeNEONModImm().
getSOImmTwoPartFirst - If V is a value that satisfies isSOImmTwoPartVal, return the first chunk of it.
Definition at line 217 of file ARMAddressingModes.h.
References getSOImmValRotate(), rotr32(), and V.
getSOImmTwoPartSecond - If V is a value that satisfies isSOImmTwoPartVal, return the second chunk of it.
Definition at line 224 of file ARMAddressingModes.h.
References getSOImmValRotate(), rotr32(), and V.
getSOImmVal - Given a 32-bit immediate, if it is something that can fit into an shifter_operand immediate operand, return the 12-bit encoding for it. If not, return -1.
Definition at line 184 of file ARMAddressingModes.h.
References getSOImmValRotate(), rotl32(), and rotr32().
getSOImmValImm - Given an encoded imm field for the reg/imm form, return the 8-bit imm value.
Definition at line 132 of file ARMAddressingModes.h.
getSOImmValRot - Given an encoded imm field for the reg/imm form, return the rotate amount.
Definition at line 139 of file ARMAddressingModes.h.
getSOImmValRotate - Try to handle Imm with an immediate shifter operand, computing the rotate amount to use. If this immediate value cannot be handled with a single shifter-op, determine a good rotate amount that will take a maximal chunk of bits out of the immediate.
Definition at line 148 of file ARMAddressingModes.h.
References CountTrailingZeros_32(), and rotr32().
Referenced by getSOImmTwoPartFirst(), getSOImmTwoPartSecond(), getSOImmVal(), and isSOImmTwoPartVal().
Definition at line 120 of file ARMAddressingModes.h.
|
inlinestatic |
Definition at line 115 of file ARMAddressingModes.h.
Definition at line 395 of file ARMAddressingModes.h.
References getT2SOImmVal(), getT2SOImmValRotate(), getT2SOImmValSplatVal(), rotr32(), and V.
Referenced by getT2SOImmTwoPartSecond().
Definition at line 413 of file ARMAddressingModes.h.
References getT2SOImmTwoPartFirst().
getT2SOImmVal - Given a 32-bit immediate, if it is something that can fit into a Thumb-2 shifter_operand immediate operand, return the 12-bit encoding for it. If not, return -1. See ARM Reference Manual A6.3.2.
Definition at line 339 of file ARMAddressingModes.h.
References getT2SOImmValRotateVal(), and getT2SOImmValSplatVal().
Referenced by getT2SOImmTwoPartFirst(), and isT2SOImmTwoPartVal().
Definition at line 355 of file ARMAddressingModes.h.
References CountTrailingZeros_32(), and V.
Referenced by getT2SOImmTwoPartFirst(), and isT2SOImmTwoPartVal().
getT2SOImmValRotateVal - Return the 12-bit encoded representation if the specified value is a rotated 8-bit value. Return -1 if no rotation encoding is possible. See ARM Reference Manual A6.3.2.
Definition at line 322 of file ARMAddressingModes.h.
References CountLeadingZeros_32(), rotr32(), and V.
Referenced by getT2SOImmVal().
getT2SOImmValSplat - Return the 12-bit encoded representation if the specified value can be obtained by splatting the low 8 bits into every other byte or every byte of a 32-bit value. i.e., 00000000 00000000 00000000 abcdefgh control = 0 00000000 abcdefgh 00000000 abcdefgh control = 1 abcdefgh 00000000 abcdefgh 00000000 control = 2 abcdefgh abcdefgh abcdefgh abcdefgh control = 3 Return -1 if none of the above apply. See ARM Reference Manual A6.3.2.
Definition at line 293 of file ARMAddressingModes.h.
References V.
Referenced by getT2SOImmTwoPartFirst(), getT2SOImmVal(), and isT2SOImmTwoPartVal().
getThumbImm16ValShift - Try to handle Imm with a 16-bit immediate followed by a left shift. Returns the shift amount to use.
Definition at line 257 of file ARMAddressingModes.h.
References CountTrailingZeros_32().
Referenced by isThumbImm16ShiftedVal().
getThumbImmNonShiftedVal - If V is a value that satisfies isThumbImmShiftedVal, return the non-shiftd value.
Definition at line 278 of file ARMAddressingModes.h.
References getThumbImmValShift(), and V.
getThumbImmValShift - Try to handle Imm with a 8-bit immediate followed by a left shift. Returns the shift amount to use.
Definition at line 236 of file ARMAddressingModes.h.
References CountTrailingZeros_32().
Referenced by getThumbImmNonShiftedVal(), and isThumbImmShiftedVal().
isSOImmTwoPartVal - Return true if the specified value can be obtained by or'ing together two SOImmVal's.
Definition at line 203 of file ARMAddressingModes.h.
References getSOImmValRotate(), rotr32(), and V.
Definition at line 367 of file ARMAddressingModes.h.
References getT2SOImmVal(), getT2SOImmValRotate(), getT2SOImmValSplatVal(), rotr32(), and V.
isThumbImm16ShiftedVal - Return true if the specified value can be obtained by left shifting a 16-bit immediate.
Definition at line 269 of file ARMAddressingModes.h.
References getThumbImm16ValShift(), and V.
isThumbImmShiftedVal - Return true if the specified value can be obtained by left shifting a 8-bit immediate.
Definition at line 248 of file ARMAddressingModes.h.
References getThumbImmValShift(), and V.
rotl32 - Rotate a 32-bit unsigned value left by a specified # bits.
Definition at line 95 of file ARMAddressingModes.h.
Referenced by getSOImmVal().
rotr32 - Rotate a 32-bit unsigned value right by a specified # bits.
Definition at line 87 of file ARMAddressingModes.h.
Referenced by getSOImmTwoPartFirst(), getSOImmTwoPartSecond(), getSOImmVal(), getSOImmValRotate(), getT2SOImmTwoPartFirst(), getT2SOImmValRotateVal(), isSOImmTwoPartVal(), and isT2SOImmTwoPartVal().