search for: retl

Displaying 20 results from an estimated 68 matches for "retl".

Did you mean: ret
2014 Oct 10
3
[LLVMdev] Stange behavior in fp arithmetics on x86 (bug possibly)
...t.p.northover at gmail.com> wrote: > Hi Dmitry, > > On 7 October 2014 10:50, Dmitry Borisenkov <d.borisenkov at samsung.com> wrote: >> fpfail.s:26: Error: invalid instruction suffix for `ret' >> >> I downloaded Intel manual and haven’t found any mention of retl instruction, > > "retl" is the AT&T syntax for the normal "ret" instruction in the > Intel manual, which makes it mostly undocumented. Are you sure about that? I don't recall ever seeing retl before. A while back a reference for AT&T was mentioned and, as...
2014 Oct 07
4
[LLVMdev] Stange behavior in fp arithmetics on x86 (bug possibly)
...h %st(1) fucompp fnstsw %ax # kill: AX<def> AX<kill> EAX<def> # kill: AH<def> AH<kill> EAX<kill> sahf sete %al movzbl %al, %eax retl .Ltmp0: .size main, .Ltmp0-main .cfi_endproc .type g, at object # @g .section .rodata,"a", at progbits .globl g .align 8 g: .quad 1 # 0x1 .size g, 8 .section &quot...
2014 Sep 05
3
[LLVMdev] Please benchmark new x86 vector shuffle lowering, planning to make it the default very soon!
On Fri, Sep 5, 2014 at 9:32 AM, Robert Lougher <rob.lougher at gmail.com> wrote: > Unfortunately, another team, while doing internal testing has seen the > new path generating illegal insertps masks. A sample here: > > vinsertps $256, %xmm0, %xmm13, %xmm4 # xmm4 = xmm0[0],xmm13[1,2,3] > vinsertps $256, %xmm1, %xmm0, %xmm6 # xmm6 = xmm1[0],xmm0[1,2,3] >
2014 Sep 05
2
[LLVMdev] Please benchmark new x86 vector shuffle lowering, planning to make it the default very soon!
...- > > test: # @test > vxorps %xmm2, %xmm2, %xmm2 > vmovss %xmm0, %xmm2, %xmm2 > vblendps $4, %xmm0, %xmm2, %xmm0 # xmm0 = xmm2[0,1],xmm0[2],xmm2[3] > vinsertps $48, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,1,2],xmm1[0] > retl > > test2: # @test2 > vinsertps $48, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,1,2],xmm1[0] > vxorps %xmm1, %xmm1, %xmm1 > vblendps $13, %xmm0, %xmm1, %xmm0 # xmm0 = xmm0[0],xmm1[1],xmm0[2,3] > retl > > llc -march=x86-64 -mat...
2014 Sep 06
2
[LLVMdev] Please benchmark new x86 vector shuffle lowering, planning to make it the default very soon!
...# @test >> vxorps %xmm2, %xmm2, %xmm2 >> vmovss %xmm0, %xmm2, %xmm2 >> vblendps $4, %xmm0, %xmm2, %xmm0 # xmm0 = xmm2[0,1],xmm0[2],xmm2[3] >> vinsertps $48, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,1,2],xmm1[0] >> retl >> >> test2: # @test2 >> vinsertps $48, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,1,2],xmm1[0] >> vxorps %xmm1, %xmm1, %xmm1 >> vblendps $13, %xmm0, %xmm1, %xmm0 # xmm0 = xmm0[0],xmm1[1],xmm0[2,3] >> retl >> &...
2016 Apr 04
2
How to call an (x86) cleanup/catchpad funclet
...but the only thing I can't figure out is how to call these funclets, they look like: Catch: "?catch$3@?0?m3 at 4HA": LBB4_3: # %BasicBlock26 pushl %ebp pushl %eax addl $12, %ebp movl %esp, -28(%ebp) movl $LBB4_5, %eax addl $4, %esp popl %ebp retl # CATCHRET cleanup: "?dtor$2@?0?m2 at 4HA": LBB3_2: pushl %ebp subl $8, %esp addl $12, %ebp movl %ebp, %eax movl %esp, %ecx movl %eax, 4(%ecx) movl $1, (%ecx) calll m2$Fin addl $8, %esp popl %ebp retl # CLEANUPRET What d...
2006 Jun 26
0
[klibc 36/43] sparc64 support for klibc
...4]: + * they return the two file descriptors in %o0 and %o1. + */ + +#include <asm/unistd.h> + + .globl pipe + .type pipe,#function + .align 4 +pipe: + mov __NR_pipe, %g1 + or %o0, 0, %g4 + t 0x6d + bcc %xcc, 1f + nop + sethi %hi(errno), %g4 + or %g4, %lo(errno), %g4 + st %o0,[%g4] + retl + mov -1, %o0 +1: + st %o0,[%g4] + st %o1,[%g4+4] + retl + mov 0, %o0 + + .size pipe,.-pipe diff --git a/usr/klibc/arch/sparc64/setjmp.S b/usr/klibc/arch/sparc64/setjmp.S new file mode 100644 index 0000000..75a6a68 --- /dev/null +++ b/usr/klibc/arch/sparc64/setjmp.S @@ -0,0 +1,55 @@ +! +! setjm...
2014 Sep 08
2
[LLVMdev] Please benchmark new x86 vector shuffle lowering, planning to make it the default very soon!
...# @test >>> vxorps %xmm2, %xmm2, %xmm2 >>> vmovss %xmm0, %xmm2, %xmm2 >>> vblendps $4, %xmm0, %xmm2, %xmm0 # xmm0 = xmm2[0,1],xmm0[2],xmm2[3] >>> vinsertps $48, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,1,2],xmm1[0] >>> retl >>> >>> test2: # @test2 >>> vinsertps $48, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,1,2],xmm1[0] >>> vxorps %xmm1, %xmm1, %xmm1 >>> vblendps $13, %xmm0, %xmm1, %xmm0 # xmm0 = xmm0[0],xmm1[1],xmm0[2,3] >&g...
2014 Jan 14
2
[LLVMdev] 16-bit x86 status update
...option to clang. The main caveats to bear in mind for 16-bit code which was previously built with gcc/gas are: • We do not support the explicit 'data32' and 'addr32' prefixes in asm. The data32 prefix is almost never needed. If you use the correct suffix on an instruction (retl vs. retw, for example), then you should never need to use 'data32'. The addr32 prefix *is* needed by GNU binutils, because *even* when given an explicit address which is greater than 64KiB, it'll just give you a warning about truncation, and emit the instruction with a 1...
2017 Dec 30
0
[PATCH] Fix sparc assembly when compiled as PIC
...file descriptors in %o0 and %o1. */ +#include <machine/asm.h> #include <asm/unistd.h> .globl pipe @@ -15,9 +16,8 @@ pipe: or %o0, 0, %g4 t 0x10 bcc 1f - nop - sethi %hi(errno), %g4 - or %g4, %lo(errno), %g4 + PIC_PROLOGUE(%g1,%g4) + SET(errno,%g1,%g4) st %o0,[%g4] retl mov -1, %o0 diff --git a/usr/klibc/arch/sparc/syscall.S b/usr/klibc/arch/sparc/syscall.S index c0273f77..52a8583b 100644 --- a/usr/klibc/arch/sparc/syscall.S +++ b/usr/klibc/arch/sparc/syscall.S @@ -4,14 +4,16 @@ * Common system-call stub; %g1 already set to syscall number */ +#include &l...
2019 Aug 08
2
Suboptimal code generated by clang+llc in quite a common scenario (?)
...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( int i, int j, int k...
2014 Aug 08
4
[LLVMdev] Efficient Pattern matching in Instruction Combine
...# @main # BB#0: subl $28, %esp leal 20(%esp), %eax movl %eax, 8(%esp) leal 24(%esp), %eax movl %eax, 4(%esp) movl $.L.str, (%esp) calll __isoc99_scanf movl 20(%esp), %eax * orl 24(%esp), %eax* addl $28, %esp retl As seen, optimization happened at IR level itself reflected in .s file. *GCC output for the same:* suyog at suyog-Inspiron-N5010:~$ gcc -S -O2 1.c main: .LFB23: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register...
2019 Jan 18
0
[klibc:master] Fix sparc assembly when compiled as PIC
...hey return the two file descriptors in %o0 and %o1. */ +#include <machine/asm.h> #include <asm/unistd.h> .globl pipe @@ -16,8 +17,8 @@ pipe: t 0x10 bcc 1f nop - sethi %hi(errno), %g4 - or %g4, %lo(errno), %g4 + PIC_PROLOGUE(%g1,%g4) + SET(errno,%g1,%g4) st %o0,[%g4] retl mov -1, %o0 diff --git a/usr/klibc/arch/sparc/syscall.S b/usr/klibc/arch/sparc/syscall.S index c0273f7..52a8583 100644 --- a/usr/klibc/arch/sparc/syscall.S +++ b/usr/klibc/arch/sparc/syscall.S @@ -4,14 +4,16 @@ * Common system-call stub; %g1 already set to syscall number */ +#include <...
2019 Sep 28
3
lld-link with MSVC6 object files
...file format COFF-i386 Disassembly of section .text: 0000000000000000 _main: 0: 68 00 00 00 00 pushl $0 5: e8 00 00 00 00 calll 0 <_main+0xa> a: 83 c4 04 addl $4, %esp d: 33 c0 xorl %eax, %eax f: c3 retl Thanks, Paul -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190928/0cdd87a2/attachment.html>
2009 Aug 19
2
[LLVMdev] Solaris (sparc) llc bugs
...at trillian:~$ cat ./test.s .text .align 16 .globl main .type main, #function main: save %o6, -96, %o6 sethi %hi(.str), %l0 add %l0, %lo(.str), %o0 call puts nop sethi 0, %i0 restore %g0, %g0, %g0 retl nop .section .rodata.str1.1,"aMS", at progbits,1 .align 2 .type .str,#object .size .str,15 .str: .asciz "this is a test" sakharov at trillian:~$ /opt/SUNWspro/bin/cc test.s -o test /opt/SUNWspro/prod/bin/fbe: "tes...
2018 Aug 06
4
[Release-testers] [7.0.0 Release] rc1 has been tagged
On Sun, Aug 5, 2018 at 5:49 PM, Dimitry Andric <dimitry at andric.com> wrote: > On 3 Aug 2018, at 13:37, Hans Wennborg via Release-testers <release-testers at lists.llvm.org> wrote: >> >> 7.0.0-rc1 was just tagged (from the branch at r338847). >> >> It's early in the release process, but I'd like to find out what the >> status is of the branch
2018 Sep 14
6
Function calls keep increasing the stack usage
..._bar: subl $32, %esp movl $1, %eax movl $2, %ecx movl $1, (%esp) movl $2, 4(%esp) movl %eax, 28(%esp) movl %ecx, 24(%esp) calll _foo movl $3, %ecx movl $4, %edx movl $3, (%esp) movl $4, 4(%esp) movl %eax, 20(%esp) movl %ecx, 16(%esp) movl %edx, 12(%esp) calll _foo movl %eax, 8(%esp) addl $32, %esp retl Note how the constants are stored in registers but when saving the parameters on the stack for the call the immediate values are used. The registers are still stored on the stack probably because it's the caller's responsibility once they were used (which seems expected). I think the probl...
2018 Sep 14
2
Function calls keep increasing the stack usage
...%ecx, 24(%esp) >> calll _foo >> movl $3, %ecx >> movl $4, %edx >> movl $3, (%esp) >> movl $4, 4(%esp) >> movl %eax, 20(%esp) >> movl %ecx, 16(%esp) >> movl %edx, 12(%esp) >> calll _foo >> movl %eax, 8(%esp) >> addl $32, %esp >> retl >> >> Note how the constants are stored in registers but when saving the >> parameters on the stack for the call the immediate values are used. The >> registers are still stored on the stack probably because it's the caller's >> responsibility once they were us...
2017 Dec 30
6
building debug version of klibc
Hello! Can someone please help me in building debug version of klibc ? I've cloned git://git.kernel.org/pub/scm/libs/klibc/klibc.git , but failed to build it with debug info added "-g" to HOSTCFLAGS in Makefile, but $ make -j KLIBCKERNELSRC=`pwd`/../linux-2.6/usr still strips every debug symbol , and i'm failed to change scripts/Kbuild.klibc and Makefile to remove strip
2014 Aug 13
2
[LLVMdev] Efficient Pattern matching in Instruction Combine
...24(%esp), %eax >>>> movl %eax, 4(%esp) >>>> movl $.L.str, (%esp) >>>> calll __isoc99_scanf >>>> movl 20(%esp), %eax >>>> * orl 24(%esp), %eax* >>>> addl $28, %esp >>>> retl >>>> >>>> As seen, optimization happened at IR level itself reflected in .s file. >>>> >>>> *GCC output for the same:* >>>> >>>> suyog at suyog-Inspiron-N5010:~$ gcc -S -O2 1.c >>>> >>>> main: >>&g...