Hello,
instead of __asm__("e_bl FunctionNameText"); you can use following sequence:
Load address to register r6. Two instructions must be used, if you want load 32-bit address. Sequence below loads address 0x01001000 into r6 register.
asm("e_lis %r6, 0x100");
asm("e_or2i %r6, 0x1000");
Move address from r6 to link register. Link register is SPR8 register, so instruction mtspr is used.
asm("mtspr 8, %r6");
Last step is branch to link register. If you want return back, use se_blrl or se_blr in case you do not want to branch back.
asm("se_blrl");
Regards,
Martin