Attached is the next patch for the PPC JIT backend. The patch adds shift-left simplified mnemonic (sldi) and a load doubleword (load_dword) function that uses it.
I also discovered some typos in my previous patch to ppc_field.py.
Currently every PPC JIT testcase fails on PPC64 Linux because the PPC
backend makes an incorrect assumption about function pointers. PPC64
Linux function pointer point to function descriptors, not code
addresses. PPC64 Linux libffi knows this, which makes
def get_function(self):
i = self.code.materialize(AsmMemoryManager(), [])
t = lltype.FuncType([], lltype.Signed)
return rffi.cast(lltype.Ptr(t), i)
wrong for PPC64.
A function descriptor is a three-word data vector containing the
function address, data addressibility pointer and static chain. For
some of the tests to start working on PPC64 Linux, the backend needs
to create another data object that contains the function address and
that pointer is coerced into a function pointer.
Thanks, David
ppcjit-diff4
Description: Binary data
_______________________________________________ pypy-dev mailing list [email protected] http://mail.python.org/mailman/listinfo/pypy-dev
