Hi guys.
I'm new for ARM programming. Now I'm using Assembler in my C code under Android OS.
I meet a problem that I don't know how to solve.
when I compile the code , output is :
/media/51a24454-12a3-411c-850b-46b77bfb99ad/cmpbmp/phone/neon/1-26/jni/neon.cpp: In function 'void GetMD_neon(unsigned char*, int, int, unsigned char*)':
/media/51a24454-12a3-411c-850b-46b77bfb99ad/cmpbmp/phone/neon/1-26/jni/neon.cpp:271:3: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
/media/51a24454-12a3-411c-850b-46b77bfb99ad/cmpbmp/phone/neon/1-26/jni/neon.cpp:271:3: error: 'asm' operand has impossible constraints
make: *** [/media/51a24454-12a3-411c-850b-46b77bfb99ad/cmpbmp/phone/neon/1-26/obj/local/armeabi-v7a/objs/main/neon.o] Error 1
My Question is what does "error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'" mean? And What is the possible reason for this error?
Thank you.
It looks like you may be running out of general purpose registers. How many are you using or is it possible you're accidently using a reserved register? Is your code _asm_ section of code its own function call where you're letting the compiler stack the previous register context and use or are you inlining it and not stacking? If you're inlining without stacking, you might be fighting the compiler for general purpose registers. It is tough to tell without seeing your code but I suggest reviewing your register use.