Why the linux read ip register from rcx register in the entry_SYSCALL_64 function?
I'm studying system call handling process in linux. I found that the entry_SYSCALL_64 function is called when the user process run syscall instruction to call system call. This function save interrupt frame. However, when it push the ip to interrupt frame, it read not rip but rcx. This code is in blow. ENTRY(entry_SYSCALL_64) UNWIND_HINT_EMPTY /* * Interrupts are off on entry. * We do not frame this tiny irq-off block with TRACE_IRQS_OFF/ON, * it is too small to ever cause noticeable irq latency. */ swapgs /* * This path is only taken when PAGE_TABLE_ISOLATION is disabled so it * is not