oh nice ... In my kernel I am running into an issue where I am looping though an &str but it does not get the right characters (all zeros actually) - https://github.com/ckkashyap/unix/blob/master/kernel/uart.rs
While I've used the PIC option several times, I had not realized that rip relative addressing is how it's done :) Thanks for the pointer. Now I need to find out what the problem is in my kernel code ... Thanks Daniel. Regards, Kashyap On Wed, Dec 10, 2014 at 9:21 AM, Daniel Micay <[email protected]> wrote: > On 09/12/14 10:43 PM, C K Kashyap wrote: > > Hi, > > > > Looks like on my ubuntu 64 bit, when I compile > > > > hello("ABCD"); > > > > I get > > > > 719e: 48 8d 05 e0 68 04 00 lea 0x468e0(%rip),%rax > > # 4da85 <str1405> > > 71a5: 48 89 44 24 08 mov %rax,0x8(%rsp) > > 71aa: 48 c7 44 24 10 04 00 movq $0x4,0x10(%rsp) > > 71b1: 00 00 > > 71b3: e8 88 f6 ff ff callq 6840 > > <_ZN5hello20h8ed5f876da0c3862eaaE> > > > > > > I was wondering why is %rip being used for getting to the string? Or am > > I understanding it incorrectly? > > > > Regards, > > Kashyap > > That's what position independent code looks like on x86_64. > > https://en.wikipedia.org/wiki/Position-independent_code > > > _______________________________________________ > Rust-dev mailing list > [email protected] > https://mail.mozilla.org/listinfo/rust-dev > >
_______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
