Ah, I understood, $-1 is just -1 here. But why we push it - 0xffffffffffffffff? 2015-06-17 17:22 GMT+06:00 Alexander Kuleshov <alex0xax@xxxxxxxxx>: > Hello, > > I have a question about interrupt handling in Linux kernel for x86_64. > As we can read in the > 64-ia-32-architectures-software-developer-vol-3a-part-1-manual, when > an interurpt/exception occurs, the handler's stack contains SS, RSP, > RFLAGS, CS, RIP and error code. My question is: does processor push > this register on the stack when an interrupt occurs or kernel must > push it? > > In the arch/x86/kernel/entry_64.S we can see following code in the > idtentry macro: > > .ifeq \has_error_code > pushq_cfi $-1 > .endif > > where pushq_cfi is: > > .macro pushq_cfi reg > pushq \reg > CFI_ADJUST_CFA_OFFSET 8 > .endm > > First of all what does it mean $-1 here? I have write simple assembly > program and I see: > > push 0xffffffffffffffff > > in the gdb. The second question, if processor pushes error code and > other during interrupt why we push it here? > > Thank you. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies