[pypy-svn] r18376 - pypy/dist/pypy/translator/asm/ppcgen
mwh at codespeak.net
mwh at codespeak.net
Tue Oct 11 11:15:42 CEST 2005
Author: mwh
Date: Tue Oct 11 11:15:40 2005
New Revision: 18376
Modified:
pypy/dist/pypy/translator/asm/ppcgen/asmfunc.py
pypy/dist/pypy/translator/asm/ppcgen/symbol_lookup.py
Log:
make more code importable on non-PPC.
Modified: pypy/dist/pypy/translator/asm/ppcgen/asmfunc.py
==============================================================================
--- pypy/dist/pypy/translator/asm/ppcgen/asmfunc.py (original)
+++ pypy/dist/pypy/translator/asm/ppcgen/asmfunc.py Tue Oct 11 11:15:40 2005
@@ -1,7 +1,14 @@
import py
-_ppcgen = py.magic.autopath().dirpath().join('_ppcgen.c').getpymodule()
import mmap, struct
+_ppcgen = None
+
+def get_ppcgen():
+ global _ppcgen
+ if _ppcgen is None:
+ _ppcgen = py.magic.autopath().dirpath().join('_ppcgen.c').getpymodule()
+ return _ppcgen
+
class AsmCode(object):
def __init__(self, size):
self.code = mmap.mmap(-1, size,
@@ -10,7 +17,7 @@
def emit(self, insn):
self.code.write(struct.pack('i', insn))
def __call__(self, *args):
- return _ppcgen.mmap_exec(self.code, args)
+ return get_ppcgen().mmap_exec(self.code, args)
def flush_cache(self):
- _ppcgen.mmap_flush(self.code)
-
+ get_ppcgen().mmap_flush(self.code)
+
Modified: pypy/dist/pypy/translator/asm/ppcgen/symbol_lookup.py
==============================================================================
--- pypy/dist/pypy/translator/asm/ppcgen/symbol_lookup.py (original)
+++ pypy/dist/pypy/translator/asm/ppcgen/symbol_lookup.py Tue Oct 11 11:15:40 2005
@@ -1,11 +1,15 @@
-import py
-_ppcgen = py.magic.autopath().dirpath().join('_ppcgen.c').getpymodule()
+def lookup(sym):
+ global lookup
+ import py
-try:
- from _ppcgen import NSLookupAndBindSymbol
+ _ppcgen = py.magic.autopath().dirpath().join('_ppcgen.c').getpymodule()
- def lookup(sym):
- return NSLookupAndBindSymbol('_' + sym)
-except ImportError:
- from _ppcgen import dlsym as lookup
+ try:
+ from _ppcgen import NSLookupAndBindSymbol
+
+ def lookup(sym):
+ return NSLookupAndBindSymbol('_' + sym)
+ except ImportError:
+ from _ppcgen import dlsym as lookup
+ return lookup(sym)
More information about the Pypy-commit
mailing list