search for: popl

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...