From: Khalid Aziz <khalid.aziz@xxxxxxxxxx> Date: Tue, 17 Jan 2017 12:32:46 -0700 > On 01/16/2017 09:39 PM, David Miller wrote: >> From: Khalid Aziz <khalid.aziz@xxxxxxxxxx> >> Date: Wed, 11 Jan 2017 09:12:54 -0700 >> >>> + __asm__ __volatile__( >>> + ".word 0xa1438000\n\t" /* rd %mcdper, %l0 */ >> >> Just use "rd %%asr14, %0" this way you don't have to play all of these >> fixed register games which kill the code generated by gcc. If you >> forcefully clobber a windowed register like %l0 it means the function >> being emitted can never be a leaf function, tail calls are no longer >> allowed, etc. > > Hi David, > > "rd %%asr14, %0" should work but does not due to bugs in assembler - > <https://sourceware.org/ml/binutils/2016-03/msg00302.html>, and > <https://sourceware.org/ml/binutils/2016-03/msg00303.html>. These bugs > were fixed in binutils 2.27 but older assemblers will cause kernel > build to fail. Using byte coded equivalent is the safest option. Fair enough. Then please at least use %g1 or another usable global register to avoid at least some of the problems I mentioned. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>