Esempio n. 1
0
def _toDoDouble(i, top, frame, context, interpreter, block_method, universe):
    assert isinstance(i, int)
    assert isinstance(top, float)
    while i <= top:
        jitdriver_double.jit_merge_point(interpreter=interpreter,
                                         block_method=block_method)

        b = universe.new_block(block_method, context)
        frame.push(b)
        frame.push(universe.new_integer(i))
        block_evaluate(b, interpreter, frame)
        frame.pop()
        i += 1
Esempio n. 2
0
def _toDo(ivkbl, frame, interpreter):
    universe = interpreter.get_universe()
    block = frame.pop()
    limit = frame.pop()
    self  = frame.pop() # we do leave it on there

    block_method = block.get_method()
    context      = block.get_context()

    i = self.get_embedded_integer()
    top = limit.get_embedded_integer()
    while i <= top:
        jitdriver.jit_merge_point(interpreter=interpreter,
                                  block_method=block_method)

        b = universe.new_block(block_method, context)
        frame.push(b)
        frame.push(universe.new_integer(i))
        block_evaluate(b, interpreter, frame)
        frame.pop()
        i += 1

    frame.push(self)
Esempio n. 3
0
def _execute_block(frame, block, block_method, interpreter, universe):
    b = universe.new_block(block_method, block.get_context())
    frame.push(b)
    
    block_evaluate(b, interpreter, frame)
    return frame.pop()    
Esempio n. 4
0
def _execute_block(frame, block, block_method, interpreter, universe):
    b = universe.new_block(block_method, block.get_context())
    frame.push(b)

    block_evaluate(b, interpreter, frame)
    return frame.pop()