Miasm2
 All Classes Namespaces Files Functions Variables Typedefs Properties Macros
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
miasm2.arch.x86.arch.bs_modname_size Class Reference
+ Inheritance diagram for miasm2.arch.x86.arch.bs_modname_size:
+ Collaboration diagram for miasm2.arch.x86.arch.bs_modname_size:

Public Member Functions

def divert
 
def __getattr__
 

Public Attributes

 args
 

Static Public Attributes

int prio = 1
 

Detailed Description

Definition at line 923 of file arch.py.

Member Function Documentation

def miasm2.core.cpu.bs_divert.__getattr__ (   self,
  item 
)
inherited

Definition at line 512 of file cpu.py.

513  def __getattr__(self, item):
514  if item in self.__dict__:
515  return self.__dict__[item]
516  elif item in self.args:
517  return self.args.get(item)
518  else:
519  raise AttributeError
520 
def miasm2.arch.x86.arch.bs_modname_size.divert (   self,
  i,
  candidates 
)

Definition at line 926 of file arch.py.

927  def divert(self, i, candidates):
928  out = []
929  for candidate in candidates:
930  cls, name, bases, dct, fields = candidate
931  fopmode = opmode_prefix(
932  (dct['mode'], dct['opmode'], dct['admode']))
933  mode = dct['mode']
934  size, opmode, admode = dct['mode'], dct['opmode'], dct['admode']
935  # no mode64 existance in name means no 64bit version of mnemo
936  if mode == 64:
937  if mode in self.args['name']:
938  nfields = fields[:]
939  f, i = getfieldindexby_name(nfields, 'rex_w')
940  f = bs("1", l=0, cls=(bs_fbit,), fname="rex_w")
941  osize = v_opmode_info(size, opmode, 1, 0)
942  nfields[i] = f
943  nfields = nfields[:-1]
944  args = dict(self.args)
945  ndct = dict(dct)
946  if osize in self.args['name']:
947  ndct['name'] = self.args['name'][osize]
948  out.append((cls, ndct['name'], bases, ndct, nfields))
949 
950  nfields = fields[:]
951  nfields = nfields[:-1]
952  f, i = getfieldindexby_name(nfields, 'rex_w')
953  f = bs("0", l=0, cls=(bs_fbit,), fname="rex_w")
954  osize = v_opmode_info(size, opmode, 0, 0)
955  nfields[i] = f
956  args = dict(self.args)
957  ndct = dict(dct)
958  if osize in self.args['name']:
959  ndct['name'] = self.args['name'][osize]
960  out.append((cls, ndct['name'], bases, ndct, nfields))
961  else:
962  l = opmode_prefix((dct['mode'], dct['opmode'], dct['admode']))
963  osize = v_opmode_info(size, opmode, None, 0)
964  nfields = fields[:-1]
965  args = dict(self.args)
966  ndct = dict(dct)
967  if osize in self.args['name']:
968  ndct['name'] = self.args['name'][osize]
969  out.append((cls, ndct['name'], bases, ndct, nfields))
970  return out
971 
def getfieldindexby_name
Definition: cpu.py:846

+ Here is the call graph for this function:

Member Data Documentation

miasm2.core.cpu.bs_divert.args
inherited

Definition at line 510 of file cpu.py.

int miasm2.arch.x86.arch.bs_modname_size.prio = 1
static

Definition at line 924 of file arch.py.


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