Yasm does seem to preserve what you code pretty well. I don't know of
any weird optimisation it does.

The other advantage is we ship a fixed version of yasm with MPIR and
at least while we are doing that you can guarantee that you aren't
going to hit some weird gas bugs that only occur on system X.

The disadvantage is that not too many architectures are supported as
of yet. Mainly x86 and perhaps PPC on its way.

Well, another really good thing about yasm is the developer has been
very responsive and helpful.

Of course the qword stuff I grew up on. I have never coded in AT&T
format. My first assembler (apart from the motorolla 6802 and chip 8
one - they converted hexadecimal to binary :-) ) was MASM. Then I used
A86, TASM and now YASM.

Bill.

2009/3/4  <ja...@njkfrudils.plus.com>:
>
> On Wednesday 04 March 2009 20:52:20 Bill Hart wrote:
>> Hi Brian,
>>
>> I will finish off the K8 code as is, and have already done the K10
>> code. But if you could email the output of applying the new version to
>> the Core 2 code, that would probably save me lots of time.
>>
>> Bill.
>>
>> 2009/3/4 Cactus <rieman...@googlemail.com>:
>> > On Mar 4, 8:25 pm, Bill Hart <goodwillh...@googlemail.com> wrote:
>> >> Hmm, so far no alignment issues appear to have slowed things down. I
>> >> didn't know about the alignb thing.
>> >>
>> >> What may be useful is a version of the converter in the x86_64
>> >> directory which converts any .asm files to .as files in yasm format.
>> >>
>> >> The issues with the $ were in sqr_basecase in the amd64 dir. It ends up
>> >> with:
>> >>
>> >>         jge     mulskiploop%1
>> >>         mulloop %1
>> >>         mulskiploop%1:
>> >>
>> >> at about line 277, which yasm doesn't like.
>> >>
>> >> If that first %1 is a macro parameter, I don't know what it is
>> >> supposed to be. It doesn't occur inside a macro. The code works,
>> >> assuming it is just part of the label, anyhow.
>> >>
>
> It used to occur inside another macro , same for extra quotes around $ ,
>
>> >> Also in sqr_basecase you have examples of macros in lower case and the
>> >> calls to the macros in upper case.
>> >>
>> >> As for mulq [rcx] that is always unambiguous. The q signifies a qword.
>> >>
>> >> Bill.
>> >>
>> >> 2009/3/4 Cactus <rieman...@googlemail.com>:
>> >
>> > - Show quoted text -
>> >
>> >> > On Mar 4, 7:12 pm, Bill Hart <goodwillh...@googlemail.com> wrote:
>> >> >> This thread will be for notes on converting Jason's code to yasm
>> >> >> format. It might help Jason to avoid a couple of minor things which
>> >> >> cause crunching in the gears and may help Brian improve the python
>> >> >> script.
>> >> >>
>> >> >> * Yasm doesn't like loop labels to be called loop: Anything else is
>> >> >> fine, e.g. loop1:
>> >> >
>> >> > I have got used to making that change!
>> >> >
>> >> >> * There is no prologue necessary for linux. The code can just end
>> >> >> with ret
>> >> >>
>
> I was never sure about prologue/epilogue and just copied the existing files ,
>
>
>> >> >> * include(`../config.m4') becomes %include '../yasm_mac.inc'
>> >> >
>> >> > I can add this with an option for Linux/Windows (different include
>> >> > files)
>> >> >
>> >> >> * ASM_START is not required
>> >> >
>
> Again I was never sure what this was ment to do
>
>> >> > Agreed I left it there as I don't want to remove anything in case it
>> >> > matters
>> >> >
>> >> >> *  win64_gcc_start mpn_blah can become GLOBAL_FUNC mpn_blah
>> >> >
>> >> > Again I can translate that differently for Linux and Windows
>> >> >
>> >> >> * It didn't know what to do with mulq [rcx], it needs mul qword [rcx]
>> >> >
>
> I can live with most masm'ism's , they are just alternatives for something
> similar in gas , but the dword ptr stuff is just *$"%£&)
> - Show quoted text -
>> >> > There are a few instructions like this but I felt it was safer to
>> >> > leave them to fail so that they got looked at.
>> >> >
>> >> >> * It choked on
>> >> >>
>> >> >> jge mulskiploop$1
>> >> >> MULLOOP($1)
>> >> >> mulskiploop$1:
>> >> >>
>> >> >> Perhaps don't use $ as part of a label name. It thinks it is a macro
>> >> >> parameter, which it doesn't seem to be.
>> >> >
>> >> > I thought that it was a macro parameter - one that Jason uses to get a
>> >> > unique internal jump label in a multi-use macro.
>> >> >
>> >> >> I don't know why it converted MULLOOP($1) to MULLOOP$1 instead of
>> >> >> MULLOOP 1
>> >> >
>> >> > Where did it do this Bill?  I couldn't get it to do it.
>> >> >
>> >> >> Capitals also appear to screw up in the conversion. The macros get
>> >> >> converted to lower case, but the calls stay upper case (or is it vice
>> >> >> versa, I forget).
>> >> >
>> >> > I couldn't get it to do this either :-(
>> >> >
>> >> >> More to come I am sure. I'm about half way.
>> >> >
>> >> > Remember that there are problems with alignment padding in YASM.
>> >> >
>> >> > The directive
>> >> >
>> >> >   align n
>> >> >
>> >> > should be replaced with
>> >> >
>> >> >   alignb  n, nop
>> >> >
>> >> >  Brian
>> >> > - Show quoted text -
>> >
>> > Hi Bill
>> >
>> > I have a new version that does several of the things you want - is it
>> > any use to you?
>> >
>> > The problem with the 'macros' in sqr_basecase is that they are hard to
>> > distinguish from non macro symbols since there is no bracket around
>> > the supposed parameter - how do I know that 'macro1' is 'macro 1' and
>> > not the symbol 'macro1'?
>> >
>> > Translating macro(1) is easy but 'macro1' is a lot harder.  I took the
>> > view that it was better not to translate something than to translate
>> > it wrongly :-)
>> >
>> > I do have a crude symbol table so I might be able to distinguish these
>> > as macro calls.
>> >
>> >   Brian
>> > - Show quoted text -
>>
>>
> I suppose now that I not using GMP but MPIR , I should switch over to yasm . I
> will admit I don't trust it, it's too new , there is enough wierd shit going
> on with assembler code as it is. My other gripe is that it works on windows ,
> being an open source person , I don't like it :)
>
> Jason
> - Show quoted text -
> >
>

--~--~---------~--~----~------------~-------~--~----~
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