From 7b75c6721fa6903829ba6de548e63fd7b5ed203e Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 25 Oct 2022 23:49:21 +0200 Subject: proc_reg: Fix pushf/popf --- i386/i386/proc_reg.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i386/i386/proc_reg.h b/i386/i386/proc_reg.h index a83ca0d8..704676cf 100644 --- a/i386/i386/proc_reg.h +++ b/i386/i386/proc_reg.h @@ -84,9 +84,9 @@ get_eflags(void) { unsigned long eflags; #ifdef __x86_64__ - asm("pushfq; pop %0" : "=r" (eflags)); + asm("pushfq; popq %0" : "=r" (eflags)); #else - asm("pushfd; pop %0" : "=r" (eflags)); + asm("pushfl; popl %0" : "=r" (eflags)); #endif return eflags; } @@ -95,9 +95,9 @@ static inline void set_eflags(unsigned long eflags) { #ifdef __x86_64__ - asm volatile("push %0; popfq" : : "r" (eflags)); + asm volatile("pushq %0; popfq" : : "r" (eflags)); #else - asm volatile("push %0; popfd" : : "r" (eflags)); + asm volatile("pushl %0; popfl" : : "r" (eflags)); #endif } @@ -111,14 +111,14 @@ set_eflags(unsigned long eflags) #define get_eflags() \ ({ \ register unsigned long _temp__; \ - asm("pushfq; pop %0" : "=r" (_temp__)); \ + asm("pushfq; popq %0" : "=r" (_temp__)); \ _temp__; \ }) #else #define get_eflags() \ ({ \ register unsigned long _temp__; \ - asm("pushfd; pop %0" : "=r" (_temp__)); \ + asm("pushfl; popl %0" : "=r" (_temp__)); \ _temp__; \ }) #endif -- cgit v1.2.3