[pypy-commit] pypy arm-longlong: More fixes to avoid ctypes/libffi interference
arigo
noreply at buildbot.pypy.org
Sun Aug 31 22:17:28 CEST 2014
Author: Armin Rigo <arigo at tunes.org>
Branch: arm-longlong
Changeset: r73251:026488ee760e
Date: 2014-08-31 22:17 +0200
http://bitbucket.org/pypy/pypy/changeset/026488ee760e/
Log: More fixes to avoid ctypes/libffi interference
diff --git a/rpython/jit/backend/test/runner_test.py b/rpython/jit/backend/test/runner_test.py
--- a/rpython/jit/backend/test/runner_test.py
+++ b/rpython/jit/backend/test/runner_test.py
@@ -2794,11 +2794,16 @@
var_name))
export_symbols.append(fn_name)
c_source.append('')
- c_source.append('void %s(%s)' % (fn_name, ', '.join(fn_args)))
+ c_source.append('static void real%s(%s)' % (
+ fn_name, ', '.join(fn_args)))
c_source.append('{')
for i in range(len(ARGTYPES)):
c_source.append(' argcopy_%s_x%d = x%d;' % (fn_name, i, i))
c_source.append('}')
+ c_source.append('void *%s(void)' % fn_name)
+ c_source.append('{')
+ c_source.append(' return (void *)&real%s;' % fn_name)
+ c_source.append('}')
c_source.append('')
for k in range(NB_TESTS):
@@ -2810,13 +2815,12 @@
for k in range(NB_TESTS):
ARGTYPES, ffitypes, fn_name = all_tests[k]
- func_ptr = rffi.llexternal(fn_name, ARGTYPES, lltype.Void,
- compilation_info=eci, _nowrapper=True)
+ func_getter_ptr = rffi.llexternal(fn_name, [], lltype.Signed,
+ compilation_info=eci, _nowrapper=True)
load_factor = rnd.random()
keepalive_factor = rnd.random()
#
- FPTR = lltype.typeOf(func_ptr)
- funcbox = self.get_funcbox(cpu, func_ptr)
+ func_raw = func_getter_ptr()
calldescr = cpu._calldescr_dynamic_for_tests(ffitypes, types.void)
faildescr = BasicFailDescr(1)
#
@@ -2836,7 +2840,7 @@
print
print codes
#
- argvalues = [funcbox.getint()]
+ argvalues = [func_raw]
for TP in ARGTYPES:
r = (rnd.random() - 0.5) * 999999999999.9
r = rffi.cast(TP, r)
More information about the pypy-commit
mailing list