[Mesa-dev] powerpc / gallium/drivers/llvmpipe segfaults running lp_test_* tests

Dave Airlie airlied at gmail.com
Thu Jul 5 23:54:17 PDT 2012


On Thu, Jul 5, 2012 at 11:11 PM, Will Schmidt <will_schmidt at vnet.ibm.com> wrote:
> On Wed, 2012-07-04 at 05:33 -0700, Jose Fonseca wrote:
>> ----- Original Message -----
>> > On Tue, 2012-07-03 at 16:07 -0500, Will Schmidt wrote:
>> > > (gdb) info reg r3
>> > > r3             0xfffb7f60010      17590977429520
>> > > (gdb) info reg r10
>> > > r10            0x7c0802a6f8010010 8937396376665391120
>> >
>> > BenH points out to me that r10 value looks like code.
>> >  ppcdis 0x7c0802a6
>> > mflr    r0
>> >
>> >  ppcdis 0xf8010010
>> > std     r0,16(r1)
>> >
>> > So we are getting a pointer to the actual code, rather than a OPD
>> > (function descriptor).
>> >
>> > I'll dig into this more...
>> >
>> > Thanks,
>> > -Will
>>
>> I'm not familair with PowerPc architecture.
>>
>> Does llvm/examples/HowToUseJIT/HowToUseJIT.cpp work well there?
>>
>> If so then you can take a look at lib/ExecutionEngine/JIT/JIT.cpp 's JIT::runFunction method, and compare what's happening differently.
>>
>
> Thanks for the pointer.  It took me a bit to get the example built, but
> in the end, the behavior appears to be the same.  Single-stepping in GDB
> shows the steps leading up to the SIGSEGV are the same.  The value moved
> into the CTR that we branch to is code rather than OPD.

I think the llvm ppc jits have been broken for quite a while since
Apple stopped development on them, I suppose getting those working
first would be the first step.

Dave.


More information about the mesa-dev mailing list