webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Public Member Functions | Static Public Attributes | List of all members
ud_opcode.UdOpcodeTable Class Reference

Classes

class  CollisionError
 
class  IndexError
 

Public Member Functions

def vendor2idx (cls, v)
 
def vex2idx (cls, v)
 
def __init__ (self, typ)
 
def size (self)
 
def entries (self)
 
def numEntries (self)
 
def label (self)
 
def typ (self)
 
def meta (self)
 
def __str__ (self)
 
def add (self, opc, obj)
 
def lookup (self, opc)
 
def entryAt (self, index)
 
def setEntryAt (self, index, obj)
 
def getOpcodeTyp (cls, opc)
 
def getOpcodeIdx (cls, opc)
 
def getLabels (cls)
 

Static Public Attributes

dictionary OpcExtMap
 

Detailed Description

A single table of instruction definitions, indexed by
   a decode field. 

Constructor & Destructor Documentation

◆ __init__()

def ud_opcode.UdOpcodeTable.__init__ (   self,
  typ 
)

Member Function Documentation

◆ __str__()

def ud_opcode.UdOpcodeTable.__str__ (   self)

◆ add()

def ud_opcode.UdOpcodeTable.add (   self,
  opc,
  obj 
)

◆ entries()

def ud_opcode.UdOpcodeTable.entries (   self)

◆ entryAt()

def ud_opcode.UdOpcodeTable.entryAt (   self,
  index 
)
Returns the entry at a given index of the table,
   None if there is none. Raises an exception if the
   index is out of bounds.

◆ getLabels()

def ud_opcode.UdOpcodeTable.getLabels (   cls)
Returns a list of all labels

◆ getOpcodeIdx()

def ud_opcode.UdOpcodeTable.getOpcodeIdx (   cls,
  opc 
)

◆ getOpcodeTyp()

def ud_opcode.UdOpcodeTable.getOpcodeTyp (   cls,
  opc 
)

◆ label()

def ud_opcode.UdOpcodeTable.label (   self)

◆ lookup()

def ud_opcode.UdOpcodeTable.lookup (   self,
  opc 
)

◆ meta()

def ud_opcode.UdOpcodeTable.meta (   self)

◆ numEntries()

def ud_opcode.UdOpcodeTable.numEntries (   self)

◆ setEntryAt()

def ud_opcode.UdOpcodeTable.setEntryAt (   self,
  index,
  obj 
)

◆ size()

def ud_opcode.UdOpcodeTable.size (   self)

◆ typ()

def ud_opcode.UdOpcodeTable.typ (   self)

◆ vendor2idx()

def ud_opcode.UdOpcodeTable.vendor2idx (   cls,
  v 
)

◆ vex2idx()

def ud_opcode.UdOpcodeTable.vex2idx (   cls,
  v 
)

Member Data Documentation

◆ OpcExtMap

dictionary ud_opcode.UdOpcodeTable.OpcExtMap
static
Initial value:
= {
'/rm' : lambda v: int(v, 16),
'/x87' : lambda v: int(v, 16),
'/3dnow' : lambda v: int(v, 16),
'/reg' : lambda v: int(v, 16),
# modrm.mod
# (!11, 11) => (00b, 01b)
'/mod' : lambda v: 0 if v == '!11' else 1,
# Mode extensions:
# (16, 32, 64) => (00, 01, 02)
'/o' : lambda v: (int(v) / 32),
'/a' : lambda v: (int(v) / 32),
# Disassembly mode
# (!64, 64) => (00b, 01b)
'/m' : lambda v: 1 if v == '64' else 0,
# SSE
# none => 0
# f2 => 1
# f3 => 2
# 66 => 3
'/sse' : lambda v: (0 if v == 'none'
else (((int(v, 16) & 0xf) + 1) / 2)),
# AVX
'/vex' : lambda v: UdOpcodeTable.vex2idx(v),
'/vexw' : lambda v: 0 if v == '0' else 1,
'/vexl' : lambda v: 0 if v == '0' else 1,
# Vendor
'/vendor': lambda v: UdOpcodeTable.vendor2idx(v)
}

The documentation for this class was generated from the following file: