On 30 June 2011 01:39, Jason <ja...@njkfrudils.plus.com> wrote:
> On Thursday 30 June 2011 00:42:07 jason wrote:
>> > 12) Yasm to assemble all asm files , just need to get it to work in a FAT
>> > build
>>
>> This only happens in a shared build and appears to be caused by square
>> brackets in the fat_entrys.asm file. I not sure what the sure brackets
>> are for? Anyway the whole thing should be rewritten with RIP relative
>> addressing because the current code breaks the call/ret symmetry
>
> No it doesn't , DUH
>
>> , and
>> this will knock a few cycles off.
>>
>> Jason
>
> using rip relative addressing fixes the problem , but I'm still not 100%
> convinced as the old code was
>
>       call    L(movl_eip_edx)
> L(entry_here$2):
>        addq    $_GLOBAL_OFFSET_TABLE_+[.-L(entry_here$2)], %r11
>        movq    GSYM_PREFIX`'__gmpn_cpuvec@GOT(%r11), %r11
>        jmp     *m4_empty_if_zero($2)(%r11)
>
> the bit of code
>
> .-L(entry_here$2)
>
> should always evaluate to 0 ???
> and what do the square brackets do ? they get passed to the assembler(or
> rather gcc)
>
> assuming they always evalulate to zero we can use
>
> lea _GLOBAL_OFFSET_TABLE(%rip),%r11
> movq    GSYM_PREFIX`'__gmpn_cpuvec@GOT(%r11), %r11
> jmp     *m4_empty_if_zero($2)(%r11)
>
> instead which passes make check
>

Who the hell knows. You probably understand this better than any of us
here. What you say certainly sounds feasible.

Bill.

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to mpir-devel@googlegroups.com.
To unsubscribe from this group, send email to 
mpir-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.

Reply via email to