Displaying 20 results from an estimated 256 matches for "popl".
Did you mean:
poll
2007 Apr 18
1
[PATCH] (with benchmarks) binary patching of paravirt_ops call sites
...; \
+ ".previous"
+
+static inline unsigned long __local_save_flags(void)
+{
+ register unsigned long f asm("eax");
+ /* Asm is to place value in eax. */
+ __asm__ __volatile__(paravirt_alt("pushl %%ecx; pushl %%edx\n\t"
+ "call *%1\n\t"
+ "popl %%edx; popl %%ecx",
+ PARAVIRT_SAVE_FLAGS)
+ : "=r"(f): "m"(paravirt_ops.save_fl) : "memory");
+ return f;
+}
+
+static inline void __local_irq_restore(unsigned long f)
+{
+ /* We guarantee that f is in eax on entry to asm. */
+ register unsigned long...
2007 Apr 18
1
[PATCH] (with benchmarks) binary patching of paravirt_ops call sites
...; \
+ ".previous"
+
+static inline unsigned long __local_save_flags(void)
+{
+ register unsigned long f asm("eax");
+ /* Asm is to place value in eax. */
+ __asm__ __volatile__(paravirt_alt("pushl %%ecx; pushl %%edx\n\t"
+ "call *%1\n\t"
+ "popl %%edx; popl %%ecx",
+ PARAVIRT_SAVE_FLAGS)
+ : "=r"(f): "m"(paravirt_ops.save_fl) : "memory");
+ return f;
+}
+
+static inline void __local_irq_restore(unsigned long f)
+{
+ /* We guarantee that f is in eax on entry to asm. */
+ register unsigned long...
2009 Aug 18
0
[LLVMdev] Build issues on Solaris
Hello, Nathan
> or if it should be a configure test, which might be safer. Are there
> any x86 platforms (other than apple) that don't need PLT-indirect calls?
Yes, mingw. However just tweaking the define is not enough - we're not
loading address of GOT into ebx before the call (on 32 bit ABIs) thus
the call will be to nowhere.
--
With best regards, Anton Korobeynikov
Faculty of
2007 Apr 18
3
[PATCH 1/2] paravirt.h header
...lt;< 32 | b))
+#define write_idt_entry(dt, entry, a, b) (paravirt_ops.write_idt_entry((dt), (entry), ((u64)a) << 32 | b))
+#define set_iopl_mask(mask) (paravirt_ops.set_iopl_mask(mask))
+
+#define CLI_STRING "pushl %eax; pushl %ecx; pushl %edx; call *paravirt_ops+PARAVIRT_irq_disable; popl %edx; popl %ecx; popl %eax"
+#define STI_STRING "pushl %eax; pushl %ecx; pushl %edx; call *paravirt_ops+PARAVIRT_irq_enable; popl %edx; popl %ecx; popl %eax"
+#else /* __ASSEMBLY__ */
+
+#define INTERRUPT_RETURN jmp *paravirt_ops+PARAVIRT_iret
+#define DISABLE_INTERRUPTS call *parav...
2009 Aug 25
2
[LLVMdev] Build issues on Solaris
...12\n")
+ "subl $16, %esp\n"
+ "movl 4(%ebp), %eax\n" // Pass prev frame and return address
+ "movl %eax, 4(%esp)\n"
+ "movl %ebp, (%esp)\n"
+ "call .local_got_stub\n"
+ ".local_got_stub: \n"
+ "popl %ebx\n"
+ "addl $_GLOBAL_OFFSET_TABLE_+[.-.local_got_stub], %ebx\n"
+ "call " ASMPREFIX "X86CompilationCallback2" ASMCALLSUFFIX "\n"
+ "movl %ebp, %esp\n" // Restore ESP
+ CFI(".cfi_def_cfa_register %esp\n")...
2016 Jun 29
0
[GSoC 2016] Implementation of the packing transformation
...something.
>
> Refs.:
> [1] - http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.29.5704&rep=rep1&type=pdf
Yes, this is one of the must-read papers for any polyhedral compilation
work!
The following is a generalization to approximate array dataflow (journal
extension of a POPL 1998 paper)
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.26.6376&rep=rep1&type=pdf
Rather theoretical, and can be simplified to not make explicit usage of
transitive closure computations. There is much research to be done in
the area, with short term applications and implement...
2012 Mar 20
0
[LLVMdev] Runtime linker issue wtih X11R6 on i386 with -O3 optimization
...moo
.Ltmp3:
.cfi_startproc
.Lfunc_begin0:
.loc 1 12 0 # a.c:12:0
# BB#0:
pushl %ebp
.Ltmp4:
.cfi_def_cfa_offset 8
.Ltmp5:
.cfi_offset %ebp, -8
movl %esp, %ebp
.Ltmp6:
.cfi_def_cfa_register %ebp
pushl %ebx
subl $20, %esp
.Ltmp7:
.cfi_offset %ebx, -12
calll .L0$pb
.L0$pb:
popl %eax
.Ltmp8:
addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp8-.L0$pb), %eax
movl 8(%ebp), %ecx
leal .L.str at GOTOFF(%eax), %edx
movl %ecx, -8(%ebp)
.loc 1 13 2 prologue_end # a.c:13:2
.Ltmp9:
movl -8(%ebp), %ecx
movl %edx, (%esp)
movl %ecx, 4(%esp)
movl %eax, %ebx
calll printf at PLT
.loc 1 14 1...
2008 Feb 27
2
[LLVMdev] llvm/test: suffix or operands invalid for `push'
On Feb 27, 2008, at 2:12 PM, Joachim Durchholz wrote:
> Some additional info:
>
> I just found the .s files mentioned in the error message, and checked
> them. All error messages refer to one of the following four
> instructions:
> pushl %ebp
> pushl %esi
> popl %ebp
> popl %esi
> It's always the same error, "suffix or operands invalid for
> `push'" (resp `pop').
Those are valid instructions in every x86-32 assembler I'm aware of.
Perhaps it needs a switch to put it in 32-bit mode?
Perhaps it is not parsing tab chara...
2004 Nov 12
2
Boot from CD -> system + data on USB storage
Hi,
I am looking for a solution to boot MY system on any PC.
To store most of the system and all of my data I want to use an USB
storage (in my case an external USB harddisk (2.0 capable)).
Since booting off an USB device is not an universal thing I would prefer
to have a boot disk with a minimal system - just enough to load most
(all?) of the system from the attached USB device.
Is this an
2008 Feb 27
0
[LLVMdev] llvm/test: suffix or operands invalid for `push'
Some additional info:
I just found the .s files mentioned in the error message, and checked
them. All error messages refer to one of the following four
instructions:
pushl %ebp
pushl %esi
popl %ebp
popl %esi
It's always the same error, "suffix or operands invalid for
`push'" (resp `pop').
There are no other push or pop instructions in any .s file.
2006-11-06-StackTrace is not listed during testing, and generates no
error messages. All other .s files with pushl or...
2011 Dec 14
2
[LLVMdev] Failure to optimize ? operator
...rrants a bug report.
If I do the same experiment with gcc I get identical code for the two functions:
==============================================
_f1: pushl %ebp xorl %eax, %eax movl
%esp, %ebp movl 8(%ebp), %edx testl %edx, %edx
jle L5 popl %ebp ret .p2align 4,,7L5:
movl %edx, %ecx imull %edx, %ecx popl %ebp
leal 3(%ecx,%ecx,4), %eax imull %edx, %eax
leal 1(%eax,%ecx,2), %eax ret .p2align 4,,15
_f2:
pushl %ebp xorl %eax, %eax movl ...
2016 Jun 28
2
[GSoC 2016] Implementation of the packing transformation
2016-06-27 15:52 GMT+05:00 4lbert C0hen <4lbert.h.c0hen at gmail.com>:
> Dear Roman and all,
>
> Such features would be extremely useful to implement array expansion (scalar
> and array renaming, privatization with new subscript expressions of higher
> dimension) and storage mapping optimization (generalizing array
> contraction). It would be interesting to have these
2019 Aug 08
2
Suboptimal code generated by clang+llc in quite a common scenario (?)
...ffset 8
.cfi_offset %ebp, -8
movl %esp, %ebp
.cfi_def_cfa_register %ebp
pushl %esi
.cfi_offset %esi, -12
movb 16(%ebp), %al
movb 12(%ebp), %cl
movb 8(%ebp), %dl
movl _scscx, %esi
movb %dl, (%esi)
movl _scscx, %edx
movb %cl, 1(%edx)
movl _scscx, %ecx
movb %al, 2(%ecx)
xorl %eax, %eax
popl %esi
popl %ebp
retl
.cfi_endproc
.comm _pp,3,0
.section __DATA,__data
.globl _scscx
.p2align 3
_scscx:
.long _pp
Again, the _scscx is loaded three times instead of reusing a register, which is suboptimal.
NOW, if I replace the original code by this:
int pp[3];
int *scscx = pp;
int tst...
2007 Apr 18
8
[PATCH 0/7] x86 paravirtualization infrastructure
The following patches introduce the core infrastructure needed to
paravirtualize the 32-bit x86 Linux kernel. This is done by moving
virtualization sensitive insn's or code paths to a function table,
paravirt_ops. This structure can be populated with hypervisor specific
calls or native stubs and currently support running on bare metal, VMI,
Xen, or Lhype. These patches apply to
2007 Apr 18
8
[PATCH 0/7] x86 paravirtualization infrastructure
The following patches introduce the core infrastructure needed to
paravirtualize the 32-bit x86 Linux kernel. This is done by moving
virtualization sensitive insn's or code paths to a function table,
paravirt_ops. This structure can be populated with hypervisor specific
calls or native stubs and currently support running on bare metal, VMI,
Xen, or Lhype. These patches apply to
2007 Apr 18
5
[PATCH] paravirt.h
...ster) \
+ __asm__("movl %0,%%db" #register \
+ : /* no output */ \
+ :"r" (value))
+
+/*
+ * Set IOPL bits in EFLAGS from given mask
+ */
+static inline void set_iopl_mask(unsigned mask)
+{
+ unsigned int reg;
+ __asm__ __volatile__ ("pushfl;"
+ "popl %0;"
+ "andl %1, %0;"
+ "orl %2, %0;"
+ "pushl %0;"
+ "popfl"
+ : "=&r" (reg)
+ : "i" (~X86_EFLAGS_IOPL), "r" (mask));
+}
+#endif /* CONFIG_PARAVIRT */
/*
* Generic CPUID functi...
2007 Apr 18
5
[PATCH] paravirt.h
...ster) \
+ __asm__("movl %0,%%db" #register \
+ : /* no output */ \
+ :"r" (value))
+
+/*
+ * Set IOPL bits in EFLAGS from given mask
+ */
+static inline void set_iopl_mask(unsigned mask)
+{
+ unsigned int reg;
+ __asm__ __volatile__ ("pushfl;"
+ "popl %0;"
+ "andl %1, %0;"
+ "orl %2, %0;"
+ "pushl %0;"
+ "popfl"
+ : "=&r" (reg)
+ : "i" (~X86_EFLAGS_IOPL), "r" (mask));
+}
+#endif /* CONFIG_PARAVIRT */
/*
* Generic CPUID functi...
2008 Jun 11
0
[LLVMdev] Miscompilation on MingW32
...-16(%ebp)
movl %esi, %eax
call __alloca
movl 8(%ebp), %eax
movl %eax, (%edi)
movl %eax, (%ebx)
movl (%edi), %eax
addl %eax, %eax
addl %eax, %eax
movl %eax, (%esp) <=== should be 8(%esp) or -40(%ebp) ?
LBB1_2: # return
movl -16(%ebp), %eax
movl (%eax), %eax
leal -12(%ebp), %esp
popl %esi
popl %edi
popl %ebx
popl %ebp
ret
.align 16
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
call ___main
movl $1, (%esp)
call _tmp
addl $8, %esp
popl %ebp
ret
-----------------------------------------------------------------...
2012 Mar 28
2
[LLVMdev] Suboptimal code due to excessive spilling
...addsd 64(%esp), %xmm2 # 8-byte Folded Reload
addsd 72(%esp), %xmm2 # 8-byte Folded Reload
addsd %xmm2, %xmm0
adcl $0, %esi
cmpl %eax, %edi
movl %edi, %ebx
jne .LBB1_2
.LBB1_3: # %._crit_edge
movsd %xmm0, 80(%esp)
fldl 80(%esp)
addl $88, %esp
popl %esi
popl %edi
popl %ebx
ret
.Ltmp20:
.size foo, .Ltmp20-foo
.Ltmp21:
.cfi_endproc
.Leh_func_end1:
====== Output B ======
======================
foo: # @foo
.Ltmp11:
.cfi_startproc
# BB#0:
pushl %edi
.Ltmp12:
.cfi_def_cfa_offset 8
pushl %esi
.Ltmp13:...
2007 May 21
2
changing definition of paravirt_ops.iret
...unately at the point where
INTERRUPT_RETURN is used in entry.S, the usermode %fs has already been
restored.
How would you feel if we changed paravirt_ops.iret to make it also
responsible for restoring %fs?
In other words, change RESTORE_REGS to skip %fs, and then native_iret
would look like:
1: popl %fs
iret
with the normal exception stuff. Fortunately, %fs is already the first
thing to be saved and last to be restored, so there's no major
rearrangements.
Ideally I'd also like a register to play with, but that would require
rearranging pt_regs, which is a bit tricky.
Also, INTERRU...