[pypy-commit] pypy default: Backout 4320ef8d1ab2 and e2ced9ddf804. It's too late anyway if
arigo
noreply at buildbot.pypy.org
Fri Feb 24 13:35:21 CET 2012
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r52848:de8777d0b83c
Date: 2012-02-24 13:06 +0100
http://bitbucket.org/pypy/pypy/changeset/de8777d0b83c/
Log: Backout 4320ef8d1ab2 and e2ced9ddf804. It's too late anyway if
floats are needed as early as the initialization of the GC.
diff --git a/pypy/jit/backend/x86/assembler.py b/pypy/jit/backend/x86/assembler.py
--- a/pypy/jit/backend/x86/assembler.py
+++ b/pypy/jit/backend/x86/assembler.py
@@ -33,7 +33,7 @@
from pypy.jit.backend.x86.support import values_array
from pypy.jit.backend.x86 import support
from pypy.rlib.debug import (debug_print, debug_start, debug_stop,
- have_debug_prints, fatalerror_notb)
+ have_debug_prints)
from pypy.rlib import rgc
from pypy.rlib.clibffi import FFI_DEFAULT_ABI
from pypy.jit.backend.x86.jump import remap_frame_layout
@@ -161,31 +161,6 @@
debug_print(prefix + ':' + str(struct.i))
debug_stop('jit-backend-counts')
- _CHECK_SSE2_FUNC_PTR = lltype.Ptr(lltype.FuncType([], lltype.Signed))
-
- def _check_sse2(self):
- """This function is called early in the execution of the program.
- It checks if the CPU really supports SSE2. It is only invoked in
- translated versions for now."""
- if WORD == 8:
- return # all x86-64 CPUs support SSE2
- if not self.cpu.supports_floats:
- return # the CPU doesn't support float, so we don't need SSE2
- #
- from pypy.jit.backend.x86.detect_sse2 import INSNS
- mc = codebuf.MachineCodeBlockWrapper()
- for c in INSNS:
- mc.writechar(c)
- rawstart = mc.materialize(self.cpu.asmmemmgr, [])
- fnptr = rffi.cast(self._CHECK_SSE2_FUNC_PTR, rawstart)
- features = fnptr()
- if bool(features & (1<<25)) and bool(features & (1<<26)):
- return # CPU supports SSE2
- fatalerror_notb(
- "This version of PyPy was compiled for a x86 CPU supporting SSE2.\n"
- "Your CPU is too old. Please translate a PyPy with the option:\n"
- "--jit-backend=x86-without-sse2")
-
def _build_float_constants(self):
datablockwrapper = MachineDataBlockWrapper(self.cpu.asmmemmgr, [])
float_constants = datablockwrapper.malloc_aligned(32, alignment=16)
diff --git a/pypy/jit/backend/x86/detect_sse2.py b/pypy/jit/backend/x86/detect_sse2.py
--- a/pypy/jit/backend/x86/detect_sse2.py
+++ b/pypy/jit/backend/x86/detect_sse2.py
@@ -1,18 +1,17 @@
import autopath
+from pypy.rpython.lltypesystem import lltype, rffi
+from pypy.rlib.rmmap import alloc, free
-INSNS = ("\xB8\x01\x00\x00\x00" # MOV EAX, 1
- "\x53" # PUSH EBX
- "\x0F\xA2" # CPUID
- "\x5B" # POP EBX
- "\x92" # XCHG EAX, EDX
- "\xC3") # RET
def detect_sse2():
- from pypy.rpython.lltypesystem import lltype, rffi
- from pypy.rlib.rmmap import alloc, free
data = alloc(4096)
pos = 0
- for c in INSNS:
+ for c in ("\xB8\x01\x00\x00\x00" # MOV EAX, 1
+ "\x53" # PUSH EBX
+ "\x0F\xA2" # CPUID
+ "\x5B" # POP EBX
+ "\x92" # XCHG EAX, EDX
+ "\xC3"): # RET
data[pos] = c
pos += 1
fnptr = rffi.cast(lltype.Ptr(lltype.FuncType([], lltype.Signed)), data)
diff --git a/pypy/jit/backend/x86/runner.py b/pypy/jit/backend/x86/runner.py
--- a/pypy/jit/backend/x86/runner.py
+++ b/pypy/jit/backend/x86/runner.py
@@ -63,9 +63,6 @@
self.assembler.finish_once()
self.profile_agent.shutdown()
- def early_initialization(self):
- self.assembler._check_sse2()
-
def dump_loop_token(self, looptoken):
"""
NOT_RPYTHON
diff --git a/pypy/jit/metainterp/warmspot.py b/pypy/jit/metainterp/warmspot.py
--- a/pypy/jit/metainterp/warmspot.py
+++ b/pypy/jit/metainterp/warmspot.py
@@ -13,7 +13,6 @@
from pypy.rlib.debug import fatalerror
from pypy.rlib.rstackovf import StackOverflow
from pypy.translator.simplify import get_functype
-from pypy.translator.unsimplify import call_initial_function
from pypy.translator.unsimplify import call_final_function
from pypy.jit.metainterp import history, pyjitpl, gc, memmgr
@@ -851,9 +850,6 @@
checkgraph(origportalgraph)
def add_finish(self):
- def start():
- self.cpu.early_initialization()
-
def finish():
if self.metainterp_sd.profiler.initialized:
self.metainterp_sd.profiler.finish()
@@ -862,9 +858,6 @@
if self.cpu.translate_support_code:
call_final_function(self.translator, finish,
annhelper = self.annhelper)
- if hasattr(self.cpu, 'early_initialization'):
- call_initial_function(self.translator, start,
- annhelper = self.annhelper)
def rewrite_set_param(self):
from pypy.rpython.lltypesystem.rstr import STR
More information about the pypy-commit
mailing list