Author: Christian Tismer <tis...@stackless.com> Branch: win64-stage1 Changeset: r49557:a096ecd9fea3 Date: 2011-11-19 22:55 +0100 http://bitbucket.org/pypy/pypy/changeset/a096ecd9fea3/
Log: mertsch diff --git a/pypy/jit/backend/x86/test/test_ztranslation.py b/pypy/jit/backend/x86/test/test_ztranslation.py --- a/pypy/jit/backend/x86/test/test_ztranslation.py +++ b/pypy/jit/backend/x86/test/test_ztranslation.py @@ -1,6 +1,6 @@ import py, os, sys from pypy.tool.udir import udir -from pypy.rlib.jit import JitDriver, unroll_parameters +from pypy.rlib.jit import JitDriver, unroll_parameters, set_param from pypy.rlib.jit import PARAMETERS, dont_look_inside from pypy.rlib.jit import promote from pypy.jit.metainterp.jitprof import Profiler @@ -47,9 +47,9 @@ def f(i, j): for param, _ in unroll_parameters: defl = PARAMETERS[param] - jitdriver.set_param(param, defl) - jitdriver.set_param("threshold", 3) - jitdriver.set_param("trace_eagerness", 2) + set_param(jitdriver, param, defl) + set_param(jitdriver, "threshold", 3) + set_param(jitdriver, "trace_eagerness", 2) total = 0 frame = Frame(i) while frame.i > 3: @@ -213,8 +213,8 @@ else: return Base() def myportal(i): - jitdriver.set_param("threshold", 3) - jitdriver.set_param("trace_eagerness", 2) + set_param(jitdriver, "threshold", 3) + set_param(jitdriver, "trace_eagerness", 2) total = 0 n = i while True: diff --git a/pypy/jit/codewriter/codewriter.py b/pypy/jit/codewriter/codewriter.py --- a/pypy/jit/codewriter/codewriter.py +++ b/pypy/jit/codewriter/codewriter.py @@ -104,6 +104,8 @@ else: name = 'unnamed' % id(ssarepr) i = 1 + # escape <lambda> names for windows + name = name.replace('<lambda>', '_(lambda)_') extra = '' while name+extra in self._seen_files: i += 1 diff --git a/pypy/rlib/_rffi_stacklet.py b/pypy/rlib/_rffi_stacklet.py --- a/pypy/rlib/_rffi_stacklet.py +++ b/pypy/rlib/_rffi_stacklet.py @@ -8,16 +8,21 @@ cdir = py.path.local(pypydir) / 'translator' / 'c' -_sep_mods = [] -if sys.platform == 'win32': - _sep_mods = [cdir / "src/stacklet/switch_x86_msvc.asm"] - eci = ExternalCompilationInfo( include_dirs = [cdir], includes = ['src/stacklet/stacklet.h'], separate_module_sources = ['#include "src/stacklet/stacklet.c"\n'], - separate_module_files = _sep_mods ) +if sys.platform == 'win32': + eci.separate_module_files += (cdir / "src/stacklet/switch_x86_msvc.asm", ) + eci.export_symbols += ( + 'stacklet_newthread', + 'stacklet_deletethread', + 'stacklet_new', + 'stacklet_switch', + 'stacklet_destroy', + '_stacklet_translate_pointer', + ) rffi_platform.verify_eci(eci.convert_sources_to_files()) diff --git a/pypy/translator/platform/windows.py b/pypy/translator/platform/windows.py --- a/pypy/translator/platform/windows.py +++ b/pypy/translator/platform/windows.py @@ -117,9 +117,16 @@ env=self.c_environ) r = re.search('Macro Assembler', stderr) if r is None and os.path.exists('c:/masm32/bin/ml.exe'): - self.masm = 'c:/masm32/bin/ml.exe' + masm32 = 'c:/masm32/bin/ml.exe' + masm64 = 'c:/masm64/bin/ml64.exe' else: - self.masm = 'ml.exe' + masm32 = 'ml.exe' + masm64 = 'ml64.exe' + + if x64: + self.masm = masm64 + else: + self.masm = masm32 # Install debug options only when interpreter is in debug mode if sys.executable.lower().endswith('_d.exe'): @@ -179,6 +186,12 @@ def _compile_c_file(self, cc, cfile, compile_args): oname = cfile.new(ext='obj') + # notabene: (tismer) + # This function may be called for .c but also .asm files. + # The c compiler accepts any order of arguments, while + # the assembler still has the old behavior that all options + # must come first, and after the file name all options are ignored. + # So please be careful with the oder of parameters! ;-) args = ['/nologo', '/c'] + compile_args + ['/Fo%s' % (oname,), str(cfile)] self._execute_c_compiler(cc, args, oname) return oname _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit