Messages in this thread | | | From | Andy Lutomirski <> | Date | Wed, 25 Feb 2015 08:09:21 -0800 | Subject | Re: RFC: (almost) getting rid of FIXUP/RESTORE_TOP_OF_STACK? |
| |
On Tue, Feb 24, 2015 at 3:45 AM, Denys Vlasenko <dvlasenk@redhat.com> wrote: > On 02/24/2015 12:58 AM, Andy Lutomirski wrote: >>> - Next possible change is to use PUSH insns to build the stack. Something along the lines of >>> swapgs >>> mov %rsp,%gs:old_rsp >>> mov %gs:kernel_stack,%rsp >>> sti >>> push $__USER_DS /* pt_regs->ss */ >>> push %gs:old_rsp /* ->rsp */ >>> push %r11 /* ->rflags */ >>> push $__USER_CS /* ->cs */ >>> push %rcx /* ->rip */ >>> push %rax /* ->orig_rax */ >>> push %rdi >>> push %rsi >>> push %rdx >>> push %rcx >>> push $-ENOSYS /* ->rax */ >>> push %r8 >>> push %r9 >>> push %r10 >>> push %r11 >>> sub $(6*8),%rsp /* rbx, rbp, r12-r15 not saved */ > > Correction: > push %r11 > sub $(6*8),%rsp /* rbx, rbp, r12-r15 not saved */ > should be > sub $(7*8),%rsp /* r11, rbx, rbp, r12-r15 not saved */ > since we don't need to save r11 either. > >> >> Yay! > > "yay!" as in "I like this!" or as in "I am surprised" ? > >> Can we have a macro PUSH_XYZ for most of this? > > Yes, it can be a macro. I'm not sure we'll have more than one > such place, tho. > Do you want a macro even if it will be once-use only? >
Maybe not. If it gets other uses, it can be macro-ized.
-- Andy Lutomirski AMA Capital Management, LLC
| |