1048 self.parent.immop.value = 1
1049 self.parent.updown.value = 1
1052 assert(isinstance(e, ExprMem))
1055 self.parent.wback.value = 1
1058 self.parent.wback.value = 0
1059 if e.op ==
"postinc":
1060 self.parent.ppi.value = 0
1061 elif e.op ==
"preinc":
1062 self.parent.ppi.value = 1
1065 self.parent.ppi.value = 1
1069 self.parent.rn.fromstring(e.args[0])
1070 if len(e.args) == 1:
1071 self.parent.immop.value = 0
1075 if isinstance(e.args[1], ExprInt):
1076 self.parent.immop.value = 0
1081 log.debug(
'cannot encode inm')
1083 self.parent.updown.value = 0
1087 if isinstance(e.args[1], ExprId):
1088 rm = gpregs.expr.index(e.args[1])
1093 ((((amount << 2) | shift_type) << 1) | shift_kind) << 4) | rm
1096 if not isinstance(e.args[1], ExprOp):
1097 log.debug(
'bad reg rot2 %r', e)
1100 rm = gpregs.expr.index(e.args[0])
1101 shift_type = allshifts.index(e.op)
1102 if isinstance(e.args[1], ExprInt):
1104 amount = int(e.args[1].arg)
1107 amount = gpregs.expr.index(e.args[1]) << 1
1109 ((((amount << 2) | shift_type) << 1) | shift_kind) << 4) | rm