Author: Armin Rigo <[email protected]>
Branch:
Changeset: r77942:0d4c2de3d999
Date: 2015-06-07 21:04 +0200
http://bitbucket.org/pypy/pypy/changeset/0d4c2de3d999/
Log: Issue #2060: some attempt at getting the no-sse2 version working
diff --git a/rpython/jit/backend/llsupport/assembler.py
b/rpython/jit/backend/llsupport/assembler.py
--- a/rpython/jit/backend/llsupport/assembler.py
+++ b/rpython/jit/backend/llsupport/assembler.py
@@ -109,10 +109,13 @@
kind='unicode')
else:
self.malloc_slowpath_unicode = None
- self.cond_call_slowpath = [self._build_cond_call_slowpath(False,
False),
- self._build_cond_call_slowpath(False, True),
- self._build_cond_call_slowpath(True, False),
- self._build_cond_call_slowpath(True, True)]
+ lst = [0, 0, 0, 0]
+ lst[0] = self._build_cond_call_slowpath(False, False)
+ lst[1] = self._build_cond_call_slowpath(False, True)
+ if self.cpu.supports_floats:
+ lst[2] = self._build_cond_call_slowpath(True, False)
+ lst[3] = self._build_cond_call_slowpath(True, True)
+ self.cond_call_slowpath = lst
self._build_stack_check_slowpath()
self._build_release_gil(gc_ll_descr.gcrootmap)
diff --git a/rpython/jit/backend/x86/assembler.py
b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -382,7 +382,8 @@
# we have one word to align
mc.SUB_ri(esp.value, 7 * WORD) # align and reserve some space
mc.MOV_sr(WORD, eax.value) # save for later
- mc.MOVSD_sx(2 * WORD, xmm0.value) # 32-bit: also 3 * WORD
+ if self.cpu.supports_floats:
+ mc.MOVSD_sx(2 * WORD, xmm0.value) # 32-bit: also 3 * WORD
if IS_X86_32:
mc.MOV_sr(4 * WORD, edx.value)
mc.MOV_sr(0, ebp.value)
@@ -423,7 +424,8 @@
else:
if IS_X86_32:
mc.MOV_rs(edx.value, 4 * WORD)
- mc.MOVSD_xs(xmm0.value, 2 * WORD)
+ if self.cpu.supports_floats:
+ mc.MOVSD_xs(xmm0.value, 2 * WORD)
mc.MOV_rs(eax.value, WORD) # restore
self._restore_exception(mc, exc0, exc1)
mc.MOV(exc0, RawEspLoc(WORD * 5, REF))
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit