Displaying 2 results from an estimated 2 matches for "build_mtctr".
Did you mean:
build_bctr
2006 May 14
2
[LLVMdev] JIT machine code deletion
On Fri, 12 May 2006, Ralph Corderoy wrote:
>> If you don't *know* that all (e.g.) function pointers to this code are
>> dead (which means that execution could come back to the function), you
>> should use the ExecutionEngine::recompileAndRelinkFunction(F) method.
>
> recompileAndRelinkFunction() overwrites the old machine code with a
> branch to the new. Is it
2006 May 14
0
[LLVMdev] JIT machine code deletion
...implement this API correctly... if it doesn't, that's a bug: please
> report it!
No, EmitBranchToAt() always emits 16 bytes.
AtI[0] = BUILD_LIS(12, Addr >> 16); // lis r12, hi16(address)
AtI[1] = BUILD_ORI(12, 12, Addr); // ori r12, r12, low16(address)
AtI[2] = BUILD_MTCTR(12); // mtctr r12
AtI[3] = BUILD_BCTR(isCall); // bctr/bctrl
but I understand now how startFunctionStub() is given StubSize and on
PowerPC it's 16 so there's no problem.
Cheers,
Ralph.