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

Attachment: ppcjit-diff4
Description: Binary data

_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
http://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to