Thanks Valdis, I thought similar way and it's clearer. Probably bit 0 of the sys_call_table contains whether it's using fast syscal. But I couldn't find the code setting bit 0. I'll try later when I'm done with more urgent things. Thank you! Chan ________________________________ From : "Valdis.Kletnieks@vt.edu" <Valdis.Kletnieks@vt.edu> Sent : 2014-03-28 22:36:27 ( +09:00 ) To : Chan Kim <ckim@etri.re.kr> Cc : kernelnewbies@kernelnewbies.org <kernelnewbies@kernelnewbies.org> Subject : Re: in sparc linux system call entry assembly code On Fri, 28 Mar 2014 07:25:37 -0000, 김찬 said:
andcc %l7, 1, %g0 bne linux_fast_syscall
Then what is this "andcc %l7, 1, %g0" doing?
Well, I'm not an expert on Sparc assembler, but.. 'andcc' looks like it's doing an and, and setting the cc (condition code). Then 'bne' branch not equal. Looks to me like it's testing a bit in the just-loaded address to see if it's flagged as using the fast_syscall code. Go check the code that generates the table and see if there is something different about the way they generate some entries.