[ Root System Explorer ]
Location:
Root
/
lib
/
python3.9
/
site-packages
/
elftools
/
ehabi
/
__pycache__
+ Folder
+ File
Upload
Editing: decoder.cpython-39.pyc
a �#�_�. � @ s0 d dl mZ G dd� de�ZG dd� de�ZdS )� )� namedtuplec @ s e Zd ZdZdd� Zdd� Zdd� Zdd � Zd Zdd� Z d d� Z dd� Zdd� Zdd� Z dd� Zdd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zd-d.� Zd/d0� Zd1d2� Zd3d4� Zd5d6� Zd7d8� Zd9d:� Z e!d;d<�Z"e"d=d>ed?�e"d=d@ed?�e"dAdBed?�e"dCdDe d?�e"dCdEed?�e"dAdFed?�e"dGdHed?�e"dGdIed?�e"dCdJed?�e"dCdKed?�e"dCdLed?�e"dCdMed?�e"dNdOed?�e"dGdPed?�e"dCdQed?�e"dCdRed?�e"dCdSed?�e"dCdTed?�e"dSdSed?�e"dGd=ed?�e"dGdUed?�e"d=d=ed?�fZ#dVS )W�EHABIBytecodeDecodera� Decoder of a sequence of ARM exception handler abi bytecode. Reference: https://github.com/llvm/llvm-project/blob/master/llvm/tools/llvm-readobj/ARMEHABIPrinter.h https://developer.arm.com/documentation/ihi0038/b/ Accessible attributes: mnemonic_array: MnemonicItem array. Parameters: bytecode_array: Integer array, raw data of bytecode. c C s || _ d | _d | _| �� d S �N)�_bytecode_array�_index�mnemonic_array�_decode)�selfZbytecode_array� r �:/usr/lib/python3.9/site-packages/elftools/ehabi/decoder.py�__init__ s zEHABIBytecodeDecoder.__init__c C s| d| _ g | _| j t| j�k rx| jD ]R\}}}| j| j |@ |kr"| j }|| �}| j }| j�t| j||� |�� qq"qdS )z@ Decode bytecode array, put result into mnemonic_array. r N)r r �lenr �ring�append�MnemonicItem)r �mask�value�handlerZ start_idx�mnemonicZend_idxr r r r % s �zEHABIBytecodeDecoder._decodec C s. | j | j }| jd7 _d|d@ d>