1 #ifndef UST_REGISTERS_H
2 #define UST_REGISTERS_H
27 static inline save_registers(struct registers
*regs
)
55 static inline save_registers(struct registers
*regs
)
57 asm ("movq %%rax,%c[rax_off](%[regs])\n\t"
58 /* "movq %%rax,%[rax_el]\n\t"
59 "movq %%rbx,%[rbx_el]\n\t"
60 "movq %%rcx,%[rcx_el]\n\t"
61 "movq %%rdx,%[rdx_el]\n\t"
62 "movq %%rbp,%[rbp_el]\n\t"
63 "movq %%rsp,%[rsp_el]\n\t"
64 "movq %%rsi,%[rsi_el]\n\t"
65 "movq %%rdi,%[rdi_el]\n\t"
66 "movq %%r8, %[r8_el]\n\t"
67 "movq %%r9, %[r9_el]\n\t"
68 "movq %%r10,%[r10_el]\n\t"
69 "movq %%r11,%[r11_el]\n\t"
70 "movq %%r12,%[r12_el]\n\t"
71 "movq %%r13,%[r13_el]\n\t"
72 "movq %%r14,%[r14_el]\n\t"
73 "movq %%r15,%[r15_el]\n\t"
74 "movw %%cs,%[cs_el]\n\t"
75 "movw %%ss,%[ss_el]\n\t"
78 "popq %[rip_el]\n\t" */
79 : /* do output regs */
80 : [rax_off
] "i" (offsetof(struct registers
, rax
)),
82 /* : [rax_el] "m" (regs->rax),
83 [rbx_el] "m" (regs->rbx),
84 [rcx_el] "m" (regs->rcx),
85 [rdx_el] "m" (regs->rdx),
86 [rbp_el] "m" (regs->rbp),
87 [rsp_el] "m" (regs->rsp),
88 [rsi_el] "m" (regs->rsi),
89 [rdi_el] "m" (regs->rdi),
90 [r8_el] "m" (regs->r8),
91 [r9_el] "m" (regs->r9),
92 [r10_el] "m" (regs->r10),
93 [r11_el] "m" (regs->r11),
94 [r12_el] "m" (regs->r12),
95 [r13_el] "m" (regs->r13),
96 [r14_el] "m" (regs->r14),
97 [r15_el] "m" (regs->r15),
98 [cs_el] "m" (regs->cs),
99 [ss_el] "m" (regs->ss),
100 [rip_el] "m" (regs->rip)*/
106 #endif /* UST_REGISTERS_H */
This page took 0.034916 seconds and 4 git commands to generate.