Beispiel #1
0
    "PC": PC,
    "LR": LR,
    "nf": nf,
    "zf": zf,
    "cf": cf,
    "of": of,
    "cond2expr": cond2expr,
    "extend_arg": extend_arg,
    "ExprId": ExprId,
    "exception_flags": exception_flags,
    "interrupt_num": interrupt_num,
    "EXCEPT_DIV_BY_ZERO": EXCEPT_DIV_BY_ZERO,
    "EXCEPT_INT_XX": EXCEPT_INT_XX,
}

sbuild = SemBuilder(ctx)

# instruction definition ##############


@sbuild.parse
def add(arg1, arg2, arg3):
    arg1 = arg2 + extend_arg(arg2, arg3)


@sbuild.parse
def sub(arg1, arg2, arg3):
    arg1 = arg2 - extend_arg(arg2, arg3)


@sbuild.parse
Beispiel #2
0
    IRDst = m2_expr.ExprId("IRDst")

    def get_next_instr(self, _):
        return asm_label("NEXT")

    def get_next_label(self, _):
        return asm_label("NEXT")

    def gen_label(self):
        return asm_label("GEN")

class Instr(object):
    mode = 32

# Test
sb = SemBuilder(m2_expr.__dict__)

@sb.parse
def test(Arg1, Arg2, Arg3):
    "Test docstring"
    Arg1 = Arg2
    mem32[Arg1] = Arg2
    mem32[Arg2] = Arg3  + i32(4) - mem32[Arg1]
    Arg3 = Arg3 if Arg2 else i32(0)
    tmpvar = 'myop'(i32(2))
    Arg2 = ('myopsize%d' % Arg1.size)(tmpvar, Arg1)
    alias = Arg1[:24]

    if not Arg1:
        Arg2 = Arg3
    else: