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. >> >> 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 >> >> >> * 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 >> >> > 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] >> >> > 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 - > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---