Author: Armin Rigo <ar...@tunes.org> Branch: jitypes2 Changeset: r44187:1eb5b21b489d Date: 2011-05-15 19:00 +0200 http://bitbucket.org/pypy/pypy/changeset/1eb5b21b489d/
Log: Kill from here; it now lives in rlib/longlong2float.py. diff --git a/pypy/rlib/libffi.py b/pypy/rlib/libffi.py --- a/pypy/rlib/libffi.py +++ b/pypy/rlib/libffi.py @@ -9,6 +9,7 @@ push_arg_as_ffiptr, c_ffi_call, FFI_TYPE_STRUCT from pypy.rlib.rdynload import dlopen, dlclose, dlsym, dlsym_byordinal from pypy.rlib.rdynload import DLLHANDLE +from pypy.rlib.longlong2float import longlong2float, float2longlong class types(object): """ @@ -216,48 +217,6 @@ func._push_longlong(self.floatval, ll_args, i) -# -------- implement longlong2float and float2longlong -------- -DOUBLE_ARRAY_PTR = lltype.Ptr(lltype.Array(rffi.DOUBLE)) -LONGLONG_ARRAY_PTR = lltype.Ptr(lltype.Array(rffi.LONGLONG)) - -# these definitions are used only in tests, when not translated -def longlong2float_emulator(llval): - d_array = lltype.malloc(DOUBLE_ARRAY_PTR.TO, 1, flavor='raw') - ll_array = rffi.cast(LONGLONG_ARRAY_PTR, d_array) - ll_array[0] = llval - floatval = d_array[0] - lltype.free(d_array, flavor='raw') - return floatval - -def float2longlong_emulator(floatval): - d_array = lltype.malloc(DOUBLE_ARRAY_PTR.TO, 1, flavor='raw') - ll_array = rffi.cast(LONGLONG_ARRAY_PTR, d_array) - d_array[0] = floatval - llval = ll_array[0] - lltype.free(d_array, flavor='raw') - return llval - -from pypy.translator.tool.cbuild import ExternalCompilationInfo -eci = ExternalCompilationInfo(post_include_bits=[""" -static double pypy__longlong2float(long long x) { - return *((double*)&x); -} -static long long pypy__float2longlong(double x) { - return *((long long*)&x); -} -"""]) - -longlong2float = rffi.llexternal( - "pypy__longlong2float", [rffi.LONGLONG], rffi.DOUBLE, - _callable=longlong2float_emulator, compilation_info=eci, - _nowrapper=True, pure_function=True) - -float2longlong = rffi.llexternal( - "pypy__float2longlong", [rffi.DOUBLE], rffi.LONGLONG, - _callable=float2longlong_emulator, compilation_info=eci, - _nowrapper=True, pure_function=True) - - # ====================================================================== _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit