search for: movab

Displaying 20 results from an estimated 58 matches for "movab".

Did you mean: movb
2014 Sep 11
2
[LLVMdev] Fail to load a pointer to a function inside MCJIT-ed code when it is reload from ObjectCache
...c6c2001: mov %rsp,%rbp 0x00007fe4cc6c2004: mov 0x10(%rdi),%rax 0x00007fe4cc6c2008: pop %rbp 0x00007fe4cc6c2009: jmpq *%rax 0x00007fe4cc6c200b: nopl 0x0(%rax,%rax,1) JittedOpExpr: 0x00007fe4cc6c2010: push %rbp 0x00007fe4cc6c2011: mov %rsp,%rbp *0x00007fe4cc6c2014: movabs $0x7fe4801fa1f8,%rax* 0x00007fe4cc6c201e: movabs $0x7fe4801fa1e8,%rdi 0x00007fe4cc6c2028: callq *(%rax) 0x00007fe4cc6c202a: add $0x5,%rax 0x00007fe4cc6c202e: pop %rbp 0x00007fe4cc6c202f: retq 0x00007fe4cc6c2030: adc $0x0,%al 0x00007fe4cc6c2032: add %al,(%rax) 0x00007fe4cc6c2034: ad...
2016 Oct 27
1
PIC and mcmodel=large on x86 doesn't use any relocations
...// Ldst: .long extern int *dptr; // .extern dptr void DataLoadAndStore() { // Large Memory Model code sequences from AMD64 abi // Figure 3.22: Position-Independent Global Data Load and Store // // Assume that %r15 has been loaded with GOT address by // function prologue. // movabs $Lsrc at GOTOFF,%rax ; R_X86_64_GOTOFF64 // movabs $Ldst at GOTOFF,%rdx ; R_X86_64_GOTOFF64 // movl (%rax,%r15),%ecx // movl %ecx,(%rdx,%r15) dst = src; // movabs $dptr at GOT,%rax ; R_X86_64_GOT64 // movabs $Ldst at GOTOFF,%rdx ; R_X86_64_GOTOFF64 // movq (%rax,%r15),%...
2014 Sep 11
2
[LLVMdev] Fail to load a pointer to a function inside MCJIT-ed code when it is reload from ObjectCache
...rax >> 0x00007fe4cc6c2008: pop %rbp >> 0x00007fe4cc6c2009: jmpq *%rax >> 0x00007fe4cc6c200b: nopl 0x0(%rax,%rax,1) >> JittedOpExpr: >> 0x00007fe4cc6c2010: push %rbp >> 0x00007fe4cc6c2011: mov %rsp,%rbp >> *0x00007fe4cc6c2014: movabs $0x7fe4801fa1f8,%rax* >> 0x00007fe4cc6c201e: movabs $0x7fe4801fa1e8,%rdi >> 0x00007fe4cc6c2028: callq *(%rax) >> 0x00007fe4cc6c202a: add $0x5,%rax >> 0x00007fe4cc6c202e: pop %rbp >> 0x00007fe4cc6c202f: retq >> 0x00007fe4cc6c2030: adc $0x0,%al >&gt...
2016 May 30
0
[cfe-dev] How to debug if LTO generate wrong code?
...d ec mov %edi,-0x14(%rbp) 400496: 48 89 75 e0 mov %rsi,-0x20(%rbp) int t = global_func(argc); 40049a: 8b 45 ec mov -0x14(%rbp),%eax 40049d: 89 c7 mov %eax,%edi 40049f: 48 b8 76 04 40 00 00 movabs $0x400476,%rax 4004a6: 00 00 00 4004a9: ff d0 callq *%rax 4004ab: 89 45 fc mov %eax,-0x4(%rbp) t += global_arr[7]; 4004ae: 48 b8 20 09 60 00 00 movabs $0x600920,%rax 4004b5: 00 00 00 4004b8: 8b 40 1c...
2018 Apr 26
2
windows ABI problem with i128?
...x86_64 version: ================================================================= 0000000000000010 <_start>: 10: 55 push %rbp 11: 48 89 e5 mov %rsp,%rbp 14: 48 83 ec 40 sub $0x40,%rsp 18: 48 b8 14 30 27 ec 01 movabs $0x1ec273014,%rax 1f: 00 00 00 22: 48 89 45 f8 mov %rax,-0x8(%rbp) 26: 48 b8 ff ff ff ff ff movabs $0xff7377ffffffffff,%rax 2d: 77 73 ff 30: 48 89 45 f0 mov %rax,-0x10(%rbp) 34: 48 b8 00 00 e8 89 04 movabs $0x8ac7230489e80000,%r...
2016 May 30
2
[cfe-dev] How to debug if LTO generate wrong code?
...%edi,-0x14(%rbp) > 400496: 48 89 75 e0 mov %rsi,-0x20(%rbp) > int t = global_func(argc); > 40049a: 8b 45 ec mov -0x14(%rbp),%eax > 40049d: 89 c7 mov %eax,%edi > 40049f: 48 b8 76 04 40 00 00 movabs $0x400476,%rax > 4004a6: 00 00 00 > 4004a9: ff d0 callq *%rax > 4004ab: 89 45 fc mov %eax,-0x4(%rbp) > t += global_arr[7]; > 4004ae: 48 b8 20 09 60 00 00 movabs $0x600920,%rax > 4004b5: 00 00 00 &...
2016 Feb 18
2
Bug in X86 assembler?
You can't use mov. I am not an x86 expert, but after quick googling: Recall that immediates are normally restricted to 32 bits. To load a larger constant into a quad register, use movabsq, which takes a full 64-bit immediate as its source [https://www.lri.fr/~filliatr/ens/compil/x86-64.pdf] Even in your example, assembler replaces mov by movq, which, say, hints: >>>>> $ echo "mov r8, 0x12345678"|./bin/llvm-mc -assemble -show-encoding -x86-asm-syntax=intel...
2018 Apr 26
0
windows ABI problem with i128?
...========================================================== > 0000000000000010 <_start>: > 10: 55 push %rbp > 11: 48 89 e5 mov %rsp,%rbp > 14: 48 83 ec 40 sub $0x40,%rsp > 18: 48 b8 14 30 27 ec 01 movabs $0x1ec273014,%rax > 1f: 00 00 00 > 22: 48 89 45 f8 mov %rax,-0x8(%rbp) > 26: 48 b8 ff ff ff ff ff movabs $0xff7377ffffffffff,%rax > 2d: 77 73 ff > 30: 48 89 45 f0 mov %rax,-0x10(%rbp) > 34: 48 b8 00 00 e8 89 04...
2016 May 30
0
[cfe-dev] How to debug if LTO generate wrong code?
...%edi,-0x14(%rbp) > 400496: 48 89 75 e0 mov %rsi,-0x20(%rbp) > int t = global_func(argc); > 40049a: 8b 45 ec mov -0x14(%rbp),%eax > 40049d: 89 c7 mov %eax,%edi > 40049f: 48 b8 76 04 40 00 00 movabs $0x400476,%rax > 4004a6: 00 00 00 > 4004a9: ff d0 callq *%rax > 4004ab: 89 45 fc mov %eax,-0x4(%rbp) > t += global_arr[7]; > 4004ae: 48 b8 20 09 60 00 00 movabs $0x600920,%rax > 4004b5: 00 00 00 &...
2019 Dec 04
2
GC for defsym'd symbols in LLD
...hold in terms of any needed sections getting preserved regardless.) I want to change defsym targets specifically to not be considered as GC roots, so that they can be dead code eliminated. Does anyone foresee any issues with this? > > % cat a.s > .globl _start, foo, bar > .text; _start: movabs $d, %rax > .section .text_foo,"ax"; foo: ret > .section .text_bar,"ax"; bar: nop > % as a.s -o a.o > > % ld.bfd a.o --defsym d=foo --gc-sections -o a => .text_foo is retained > % ld.bfd a.o --defsym d=bar --gc-sections -o a => .text_bar is retained >...
2018 Apr 26
1
windows ABI problem with i128?
...================================= > > 0000000000000010 <_start>: > > 10: 55 push %rbp > > 11: 48 89 e5 mov %rsp,%rbp > > 14: 48 83 ec 40 sub $0x40,%rsp > > 18: 48 b8 14 30 27 ec 01 movabs $0x1ec273014,%rax > > 1f: 00 00 00 > > 22: 48 89 45 f8 mov %rax,-0x8(%rbp) > > 26: 48 b8 ff ff ff ff ff movabs $0xff7377ffffffffff,%rax > > 2d: 77 73 ff > > 30: 48 89 45 f0 mov %rax,-0x10(%rbp) > > 3...
2016 May 30
0
[cfe-dev] How to debug if LTO generate wrong code?
...d ec mov %edi,-0x14(%rbp) 400496: 48 89 75 e0 mov %rsi,-0x20(%rbp) int t = global_func(argc); 40049a: 8b 45 ec mov -0x14(%rbp),%eax 40049d: 89 c7 mov %eax,%edi 40049f: 48 b8 76 04 40 00 00 movabs $0x400476,%rax 4004a6: 00 00 00 4004a9: ff d0 callq *%rax 4004ab: 89 45 fc mov %eax,-0x4(%rbp) t += global_arr[7]; 4004ae: 48 b8 20 09 60 00 00 movabs $0x600920,%rax 4004b5: 00 00 00 4004b8: 8b 40 1c...
2016 May 30
7
[cfe-dev] How to debug if LTO generate wrong code?
...%edi,-0x14(%rbp) > 400496: 48 89 75 e0 mov %rsi,-0x20(%rbp) > int t = global_func(argc); > 40049a: 8b 45 ec mov -0x14(%rbp),%eax > 40049d: 89 c7 mov %eax,%edi > 40049f: 48 b8 76 04 40 00 00 movabs $0x400476,%rax > 4004a6: 00 00 00 > 4004a9: ff d0 callq *%rax > 4004ab: 89 45 fc mov %eax,-0x4(%rbp) > t += global_arr[7]; > 4004ae: 48 b8 20 09 60 00 00 movabs $0x600920,%rax > 4004b5: 00 00 00 &...
2016 May 30
0
[cfe-dev] How to debug if LTO generate wrong code?
...d ec mov %edi,-0x14(%rbp) 400496: 48 89 75 e0 mov %rsi,-0x20(%rbp) int t = global_func(argc); 40049a: 8b 45 ec mov -0x14(%rbp),%eax 40049d: 89 c7 mov %eax,%edi 40049f: 48 b8 76 04 40 00 00 movabs $0x400476,%rax 4004a6: 00 00 00 4004a9: ff d0 callq *%rax 4004ab: 89 45 fc mov %eax,-0x4(%rbp) t += global_arr[7]; 4004ae: 48 b8 20 09 60 00 00 movabs $0x600920,%rax 4004b5: 00 00 00 4004b8: 8b 40 1c...
2019 Dec 04
2
GC for defsym'd symbols in LLD
LLD treats any symbol referenced from a linker script as a GC root, which makes sense. Unfortunately, it also processes --defsym as a linker script fragment internally, so all target symbols of a --defsym also get treated as GC roots (i.e., if you have something like --defsym SRC=TGT, TGT will become a GC root). I believe this to be unnecessary for defsym specifically, since you're just
2016 May 29
4
[cfe-dev] How to debug if LTO generate wrong code?
Hi, > On May 29, 2016, at 7:36 AM, Shi, Steven <steven.shi at intel.com> wrote: > > Hi Mehdi, > After deeper debug, I found my firmware LTO wrong code issue is related to X64 code model (-mcmodel=large) is always overridden as small (-mcmodel=small) if LTO build. And I don't know how to correctly specific the large code model for my X64 firmware LTO build. Appreciate if
2019 Dec 05
2
GC for defsym'd symbols in LLD
...from getting garbage > collected. bar doesn't need to enter the picture directly (and we don't > need to store any sort of explicit link between foo and bar); its section > getting preserved just naturally falls out of foo getting preserved. > > For example, in Fāng-ruì's movabs example, the symbol _start (which is the > entry point and therefore a GC root) will have a relocation against d, so d > will be kept alive too. With --defsym d=foo, the symbol d should point to > the same section as foo, so that section will be preserved; it doesn't > matter if th...
2016 May 30
1
[cfe-dev] How to debug if LTO generate wrong code?
...gt; 40048f: 48 83 ec 20 sub $0x20,%rsp > > 400493: 89 7d ec mov %edi,-0x14(%rbp) > > 400496: 48 89 75 e0 mov %rsi,-0x20(%rbp) > > int t = global_func(argc); > > 40049a: 8b 45 ec mov -0x14(%rbp),%eax > > 40049d: 89 c7 mov %eax,%edi > > 40049f: 48 b8 76 04 40 00 00 movabs $0x400476,%rax > > 4004a6: 00 00 00 > > 4004a9: ff d0 callq *%rax > > 4004ab: 89 45 fc mov %eax,-0x4(%rbp) > > t += global_arr[7]; > > 4004ae: 48 b8 20 09 60 00 00 movabs $0x600920,%rax > > 4004b5: 00 00 00 > > 4004b8: 8b 40 1c mov 0x1c(%rax),%eax > &gt...
2014 May 27
2
[LLVMdev] Assertion fails resolving R_X86_64_PC32 relocation
I would think that the R_X86_64_PC32 relocation type should never be generated with large code model since large code model, by definition, makes no assumptions about the size or address of sections. The use of win32-elf might throw a wrinkle into this, since that is a code path that probably isn't exercised much outside of MCJIT use. That said, when this assertion fails it is usually
2017 Apr 19
3
[cfe-dev] FE_INEXACT being set for an exact conversion from float to unsigned long long
...rget/X86//README-X86-64.txt > … > Are we better off using branches instead of cmove to implement FP to > unsigned i64? > > _conv: > ucomiss LC0(%rip), %xmm0 > cvttss2siq %xmm0, %rdx > jb L3 > subss LC0(%rip), %xmm0 > movabsq $-9223372036854775808, %rax > cvttss2siq %xmm0, %rdx > xorq %rax, %rdx > L3: > movq %rdx, %rax > ret > > instead of > > _conv: > movss LCPI1_0(%rip), %xmm1 > cvttss2siq %xmm0, %rcx > movaps %x...