Messages in this thread | | | Subject | Re: [PATCH v4 4/4] sparc64: Add support for ADI (Application Data Integrity) | From | Khalid Aziz <> | Date | Tue, 17 Jan 2017 13:12:32 -0700 |
| |
On 01/17/2017 12:42 PM, David Miller wrote: > From: Khalid Aziz <khalid.aziz@oracle.com> > Date: Tue, 17 Jan 2017 12:32:46 -0700 > >> On 01/16/2017 09:39 PM, David Miller wrote: >>> From: Khalid Aziz <khalid.aziz@oracle.com> >>> 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. >
Sure, I will do that. Thanks for the review and feedback.
-- Khalid
| |