8 log = logging.getLogger(
'jit_arm')
9 hnd = logging.StreamHandler()
10 hnd.setFormatter(logging.Formatter(
"[%(levelname)s]: %(message)s"))
12 log.setLevel(logging.CRITICAL)
17 sp = asmbloc.asm_symbol_pool()
18 jitter.__init__(self,
ir_arml(sp), *args, **kwargs)
19 self.vm.set_little_endian()
20 self.ir_arch.jit_pc = self.ir_arch.arch.regs.PC
24 self.vm.set_mem(self.cpu.SP,
pck32(v))
27 x =
upck32(self.vm.get_mem(self.cpu.SP, 4))
32 x =
upck32(self.vm.get_mem(self.cpu.SP + 4 * n, 4))
40 for i
in xrange(min(n_args, 4)):
41 args.append(self.cpu.get_gpreg()[
'R%d' % i])
42 for i
in xrange(max(0, n_args - 4)):
48 self.
pc = self.cpu.PC = ret_addr
49 if ret_value
is not None:
50 self.cpu.R0 = ret_value
55 arg = self.cpu.get_gpreg()[
'R%d' % n]
61 jitter.init_run(self, *args, **kwargs)
67 sp = asmbloc.asm_symbol_pool()
68 jitter.__init__(self,
ir_armb(sp), *args, **kwargs)
69 self.vm.set_big_endian()
70 self.ir_arch.jit_pc = self.ir_arch.arch.regs.PC