Yeah bring on 96 bit multiplies!!

2009/3/4  <ja...@njkfrudils.plus.com>:
>
> On Wednesday 04 March 2009 23:04:13 Bill Hart wrote:
>> Yasm does seem to preserve what you code pretty well. I don't know of
>> any weird optimisation it does.
>>
>
> Yes , so far it's been no worse than gas
>
>> 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.
>>
>
> yes , it's a bit limited
>
>> Well, another really good thing about yasm is the developer has been
>> very responsive and helpful.
>>
>
> There is quite a few tricks I would like assemblers to able to do , perhaps
> with some persuasion...
>
>> 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.
>>
>
> I started on Z80 , no assembler , then 6809 no assembler again , then 68008
> with an assembler . I knew the 6809 opcodes by heart , although I always got
> the jump displacements wrong and having a mul instruction was the bee's
> knee's .Then i didn't touch assembler again for about 20 years , except for a
> couple of boot-loader type things. I would hate to program on a 8bit cpus
> now , its bad enough on x86_64 :)
> - Show quoted text -
>> 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