Some friends and I are playing with a Cortex-A15 core (using a Beagleboard) but, due to compatibility with some legacy code, we need to use the --cpu=xscale option when building our executable. We were able to perform a board startup by using the startup file that comes with the DS-5 v5.29.1, but this code makes use of the ISB instruction at some points and this instruction is not available in the XScale architecture.
Thus, we are looking for something else that could flush the processor pipeline, as we suppose those instructions were put there for some good reason (we are beginners in the ARM architecture and Assembly language). We were thinking about doing some workaround with the BX instruction, but we do not know how to use it properly (i.e. we suppose we would have to "branch" to the address of the next instruction, but we do not know how to do it). Of course, there may be much more decent solutions but we are not aware of them.
What shall we do?
You can always hand-code the opcodes and place a .long <opcode> in the code. Very easy.
Thanks for your answer! Unfortunately, I do not even know how to use .long in order to manually insert an opcode in the assembly... do you recommend any reference that shows how I can do this?
I'd say there are plenty of assembly files around. Even examples in DS-5