Hi,
The latest 64-bit architecture can on both AArch64 and AArch32 state.
Can someone tell me how to utilize this feature so that I can seamlessly integrate algorithms (which are optimized with 32-bit and 64-bit instructions) with applications which are build for 32-bit and 64-bit modes.
Here is the specifics of situation which I am facing right now.
I want to link an ARM shared library which is optimized with 64-bit instructions with my application which is built in 32 bit mode.
At the time of linking I am getting the following error. "skipping incompatible xxxx.so file".
My build environment is android and unfortunately I don't have the option to build my application in 64-bit mode.
Appreciate your help with inputs.
Thanks, Prasad
I think that is the right reply for this question. It just isn't possible in Android and I don't think anyone plans to support anything like that. The most that happens like that is that a driver or system routine can be in 64 bit mode and be invoked by a 32 bit application. You an do like you say with 32 bit ARM and Thumb code but the overall environment doesn't change when one does that.
If the library task is a longish one you might be able to pipe the data between a process in 32 bit mode and one in 64 bit mode. It sounds though like you have very little control over the 32 bit application.
There is a 32 bit mode using the 64 bit instructions being developed, but I don't think it will be on Android and its main purposes are to simplify porting 32 bit legacy code with less baggage and to run some benchmark tests in a way that'll produce compatible results with x86 chips. It would need a different library too but the changes would be less than backporting to ARM 32 bit code.