Displaying 8 results from an estimated 8 matches for "jmpl".
Did you mean:
jmp
2017 Feb 08
3
Linking Linux kernel with LLD
...objdump flags?)
>
>Regards,
>Dmitry
Just want to share latest results of investigation from my side.
I traced kernel linked with LLD to find where it fails.
LLD linked kernel starts execution and then I came up to protected_mode_jump? function, which intention to jump to startup_64:
jmpl *%eax # Jump to the 32-bit entrypoint
(https://github.com/torvalds/linux/blob/5924bbecd0267d87c24110cbe2041b5075173a25/arch/x86/boot/pmjump.S#L76)
(https://github.com/torvalds/linux/blob/5924bbecd0267d87c24110cbe2041b5075173a25/arch/x86/kernel/head_64.S#L48)
It does not happen. Code executes right...
2002 Aug 26
3
Question about memdisk
...n into problems in the first printf statement.
It turns out that printf uses a switch statement that compiles into a
jump table. When I reach this jump table, I believe the code is jumping
into hyperspace due to the jump table using long addresses.
The jump into the jump table is the instruction:
jmpl 0x2220(,%eax,4)
If you have a moment, can you give me a clue as to what is happening
here?
Thanks for your help.
Gregg
2011 Sep 26
1
[LLVMdev] distinguishing between real arguments and variable arguments
...D:
return 2;
}
}
In Sparc:
void Filler::insertCallUses(MachineBasicBlock::iterator MI,
SmallSet<unsigned, 32>& RegUses)
{
switch(MI->getOpcode()) {
default: llvm_unreachable("Unknown opcode.");
case SP::CALL: break;
case SP::JMPLrr:
case SP::JMPLri:
assert(MI->getNumOperands() >= 2);
const MachineOperand &Reg = MI->getOperand(0);
assert(Reg.isReg() && "JMPL first operand is not a register.");
assert(Reg.isUse() && "JMPL first operand is not a use.");...
2017 Jan 27
2
llvm return value propagation & asm
...!srcloc !10106 // this returns in eax
ret i32 0, !dbg !10104
}
; Function Attrs: naked noinline optnone
define void @jumptocont(i32, i32, i32) #3 !dbg !10107 {
BasicBlock8473:
call void asm "\0D\0A movl 12(%esp), %ebp\0D\0A movl 4(%esp),
%eax\0D\0A movl 8(%esp), %esp\0D\0A jmpl *%eax\0D\0A", ""(), !dbg
!10108, !srcloc !10110
ret void, !dbg !10108
}
The calling code is like;
%530 = call i32 @callcatch(i32 %528, i32 %529) #3, !dbg !7648
store i32 %530, i32* %20, !dbg !7648
%531 = load i32, i32* %20, !dbg !7630
...
call void @jumptocont(i32 %5...
2017 Feb 03
3
Linking Linux kernel with LLD
On Thu, Feb 2, 2017 at 12:38 AM, George Rimar <grimar at accesssoftek.com>
wrote:
> >As far as the setup, I would recommend setting up qemu for actually
> running the LLD-linked kernel and custom bootloader etc. because then you
> can have a single >script that rebuilds the bootloader and kernel and
> copies the files to the VM. This reduces iteration time significantly.
2015 Feb 20
3
[LLVMdev] clang .code16 with -Os producing larger code that it needs to
When experimenting with compiling GRUB2 with clang using integrated as,
I found out that it generates a 16-bit code bigger than gas counterpart
and result gets too big for size constraints of bootsector. This was
traced mainly to 2 problems.
32-bit access to 16-bit addresses.
source:
movl LOCAL(kernel_sector), %ebx
movl %ebx, 8(%si)
clang:
7cbc: 67 66 8b 1d 5c 7c 00 addr32 mov 0x7c5c,%ebx
2012 Mar 20
0
[LLVMdev] Runtime linker issue wtih X11R6 on i386 with -O3 optimization
...jdump -R liba.so | grep ex_func
2000211c R_386_GLOB_DAT ex_func
20002108 R_386_JUMP_SLOT ex_func
Now in the asm here we can see that in the TAILCALL case the ex_func is
looked up in GOT.
$ grep ex_func a.s
calll ex_func at PLT
movl ex_func at GOT(%esi), %eax
...
jmpl *%eax # TAILCALL
I am aware that this might turn a bit religous however I think that
always looking up the function pointer in PLT would eliminate this
issue. I don't see a benefit of using the GOT in this particular case.
The asm of both cases is reproduced at the end of...
2013 Jun 24
1
[LLVMdev] DebugInfo: Missing non-trivially-copyable parameters in SelectionDAG
...lvm/build/clang/debug/bin/./FileCheck /usr/local/google/home/blaikie/dev/llvm/src/test/CodeGen/X86/sibcall-2.ll -check-prefix=64
--
Exit Code: 1
Command Output (stderr):
--
/usr/local/google/home/blaikie/dev/llvm/src/test/CodeGen/X86/sibcall-2.ll:9:7: error: expected string not found in input
; 32: jmpl *4(%esp)
^
<stdin>:4:6: note: scanning from here
_t1: ## @t1
^
<stdin>:18:2: note: possible intended match here
movl 12(%ebp), %eax
^
--
********************
FAIL: LLVM :: CodeGen/X86/pmulld.ll (32 of 51)
******************** TEST 'LLVM :: CodeGen/X86/pmulld.ll' FA...