added some methods to llvm.mc.Operand
methods that describe what type of operand it is
This commit is contained in:
parent
083586464b
commit
8de5c3faff
1 changed files with 39 additions and 6 deletions
|
|
@ -26,15 +26,15 @@ class Operand(object):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
s = "invalid"
|
s = "invalid"
|
||||||
if self.op.isReg():
|
if self.is_reg():
|
||||||
s = "reg(%s)" % (self.reg_name())
|
s = "reg(%s)" % (self.reg_name())
|
||||||
elif self.op.isImm():
|
elif self.is_imm():
|
||||||
s = "imm(0x%02x)" % (self.op.getImm())
|
s = "imm(0x%02x)" % (self.op.getImm())
|
||||||
elif self.op.isFPImm():
|
elif self.is_fp_imm():
|
||||||
s = "imm(%r)" % (self.op.getFPImm())
|
s = "imm(%r)" % (self.op.getFPImm())
|
||||||
elif self.op.isExpr():
|
elif self.is_expr():
|
||||||
s = "expr(%r)" % (self.op.getExpr().getKind())
|
s = "expr(%r)" % (self.op.getExpr().getKind())
|
||||||
elif self.op.isInst():
|
elif self.is_inst():
|
||||||
s = repr(Instr(self.op.getInst()))
|
s = repr(Instr(self.op.getInst()))
|
||||||
|
|
||||||
return s
|
return s
|
||||||
|
|
@ -43,7 +43,7 @@ class Operand(object):
|
||||||
return str(self)
|
return str(self)
|
||||||
|
|
||||||
def reg_name(self):
|
def reg_name(self):
|
||||||
if self.op.isReg():
|
if self.is_reg():
|
||||||
s = self.tm.reg_info.getName(self.op.getReg())
|
s = self.tm.reg_info.getName(self.op.getReg())
|
||||||
if s.strip() == "":
|
if s.strip() == "":
|
||||||
return "?"
|
return "?"
|
||||||
|
|
@ -52,6 +52,39 @@ class Operand(object):
|
||||||
else:
|
else:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
def is_reg(self):
|
||||||
|
return self.op.isReg()
|
||||||
|
|
||||||
|
def is_imm(self):
|
||||||
|
return self.op.isImm()
|
||||||
|
|
||||||
|
def is_fp_imm(self):
|
||||||
|
return self.op.isFPImm()
|
||||||
|
|
||||||
|
def is_expr(self):
|
||||||
|
return self.op.isExpr()
|
||||||
|
|
||||||
|
def is_inst(self):
|
||||||
|
return self.op.isInst()
|
||||||
|
|
||||||
|
def get_imm(self):
|
||||||
|
if self.is_imm():
|
||||||
|
return self.op.getImm()
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def get_fp_imm(self):
|
||||||
|
if self.is_fp_imm():
|
||||||
|
return self.op.getFPImm()
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def get_inst(self):
|
||||||
|
if self.is_inst():
|
||||||
|
return Instr(self.op.getInst())
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
class Instr(object):
|
class Instr(object):
|
||||||
|
|
||||||
def __init__(self, mcinst, target_machine):
|
def __init__(self, mcinst, target_machine):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue