Hi Gabe, Ali, Updated patch(es) are here: http://www.csee.usf.edu/~sroy/techres/m5res/m5_alpha_cix_mvi.tar.bz2
I folded earlier patches 'alpha_mvi.patch' and 'alpha_cix_ctpop.patch' into a single patch 'alpha_mvi_cix.patch'. Then, I incorporated Gabe's comments as a new patch 'alpha_mvi_cix_1.patch' (easier for you to spot the differences): a. inserted blank spaces around operators (e.g., 'a<b' is now 'a < b') b. removed explicit 'IntAluOp' from the descriptions of min/max instructions because the use of integer register Ra already takes care of that. I verified that the generated decoder.cc. c. removed 'temp' variable from 'ctpop' Also verified that the changes did not break anything! I am happy to be able to contribute. And, Soumyaroop Roy <[email protected]> is indeed ok for the commit log. regards, Soumyaroop. On 12/13/09, Gabe Black <[email protected]> wrote: > There are a few minor things I notice. First, you should have spaces > around your operators, ie. "a<b" should be "a < b". Second, I don't > think you need to explicitly set IntAluOp in places you're using an > integer register like Ra. Steve wouldn't know for sure. Third, in ctpop, > you don't need to put Rb into a temporary variable. You might need to do > that if you were, for instance, looking at the value of a destination > operand to see what flags to set since that would confuse the parser > into thinking it was a source as well. That's not happening here, so it > makes the code slightly longer unnecessarily. > > Outside of those fairly picky complaints, assuming it functions > correctly, it looks good to me. Thanks for your contribution! > > > Gabe > > > Ali Saidi wrote: > > Hi Soumyaroop, > > > > Thanks for the patches. They look good to me, if no one else has any > > comments I'll commit them. Is Soumyaroop Roy <[email protected]> ok for > > the commit log? > > > > Thanks, > > Ali > > > > On Dec 10, 2009, at 7:02 PM, soumyaroop roy wrote: > > > > > >> Hello Ali, > >> > >> The implementation of the MVI instructions (13 of them) and ctpop and > >> a bugfix for cttz for ALPHA along with sanity testcases is available > >> here: > >> http://www.csee.usf.edu/~sroy/techres/m5res/m5_alpha_cix_mvi.tar.bz2 > >> > >> The "gsm" benchmark from Mediabench-I generates the "maxsw4" > >> instructions unless compiled with something like a -mcpu=ev56 option. > >> > >> -Soumyaroop > >> > >> On Thu, Oct 29, 2009 at 4:27 PM, Ali Saidi <[email protected]> wrote: > >> > >>> I'm in no rush... > >>> > >>> Here are some references: > >>> http://www.alphalinux.org/docs/MVI-full.html > >>> http://www.alphalinux.org/wiki/index.php/Motion_Video_Instructions > >>> > >>> libmpeg2 has inverse discrete cosine transform code that makes use > >>> of the > >>> MVI instructions. You should be able to extract an inner loop from > >>> one > >>> there and compare the output of an x86 and the alpha code executed > >>> by M5. > >>> > >>> As far as CTPOP writing a testcase is pretty trivial. The > >>> instruction just > >>> counts the number of bits set in a 64 bit register.See > >>> http://en.wikipedia.org/wiki/Hamming_weight for an idea of how to > >>> do this > >>> quickly without native popcount support. > >>> > >>> > >>> Thanks, > >>> Ali > >>> > >>> > >>> > >>> On Thu, 29 Oct 2009 16:42:29 -0400, soumyaroop roy <[email protected]> > >>> wrote: > >>> > >>>> [I am replying to m5-dev instead of m5-users] > >>>> > >>>> Hello Ali, > >>>> > >>>> Which benchmarks should one use to test the implementation of these > >>>> instructions? > >>>> > >>>> Either I or Vidya Sangkar, a labmate of mine, can work on it. But it > >>>> has to be after Nov 17th. Is that timeline is ok? > >>>> > >>>> regards, > >>>> Soumyaroop > >>>> > >>>> On 10/29/09, Ali Saidi <[email protected]> wrote: > >>>> > >>>>> ctlz and cttz are available and unless you're doing something > >>>>> crazy I > >>>>> don't > >>>>> think ctpop would be emitted. MVI isn't an instruction but a > >>>>> class of > >>>>> instructions. See > >>>>> > >>>>> > >>> > http://en.wikipedia.org/wiki/DEC_Alpha#Motion_Video_Instructions_.28MVI.29 > >>> > >>>>> At this point we've probably spent as much time discussing them > >>>>> as it > >>>>> would > >>>>> have taken to implement them. > >>>>> > >>>>> Ali > >>>>> > >>>>> On Thu, 29 Oct 2009 15:55:34 -0400, soumyaroop roy <[email protected] > >>>>> > >>>>> wrote: > >>>>> > One has to supply the flag, "-mno-cix", during compilation to > >>>>> make > >>>>> > sure that the CIX instructions ("ctlz", "cttz", and "ctpop") > >>>>> are not > >>>>> > emitted in the code. > >>>>> > > >>>>> > Here is the list of default flags passed (excerpt from > >>>>> > "alphaev67-unknown-linux-gnu -v -Q dummy.c"): > >>>>> > > >>>>> > options passed: -v dummy.c -mcpu=ev67 -mtune=ev67 > >>>>> > options enabled: -falign-loops -fargument-alias -fauto-inc-dec > >>>>> > -fbranch-count-reg -fcommon -fearly-inlining > >>>>> > -feliminate-unused-debug-types -ffunction-cse -fgcse-lm -fident > >>>>> > -fivopts > >>>>> > -fkeep-static-consts -fleading-underscore -fmath-errno > >>>>> > -fmerge-debug-strings -fmove-loop-invariants -fpcc-struct- > >>>>> return > >>>>> > -fpeephole -fsched-interblock -fsched-spec -fsched-stalled- > >>>>> insns-dep > >>>>> > -fsigned-zeros -fsplit-ivs-in-unroller -ftoplevel-reorder > >>>>> -ftrapping-math > >>>>> > -ftree-cselim -ftree-loop-im -ftree-loop-ivcanon > >>>>> > >>> -ftree-loop-optimize > >>> > >>>>> > -ftree-parallelize-loops= -ftree-reassoc -ftree-scev-cprop > >>>>> > -ftree-vect-loop-version -fvar-tracking -fzero-initialized-in- > >>>>> bss > >>>>> > -mbwx > >>>>> > -mcix -mexplicit-relocs -mfix -mfloat-ieee -mfp-regs -mglibc > >>>>> -mlarge-data > >>>>> > -mlarge-text -mlong-double-128 -mmax > >>>>> > > >>>>> > Note the "-mcix" on the second last line above. > >>>>> > > >>>>> > I could not find anything about the MVI instruction. > >>>>> > > >>>>> > regards, > >>>>> > Soumyaroop > >>>>> > > >>>>> > On 10/29/09, Ali Saidi <[email protected]> wrote: > >>>>> >> > >>>>> >> I've put a link on the d/l page. The file is downloading to > >>>>> >> m5sim.org > >>>>> >> right > >>>>> >> now and should be available within 5 minutes. > >>>>> >> > >>>>> >> Ali > >>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> On Wed, 28 Oct 2009 22:27:11 -0400, soumyaroop roy > >>>>> >> <[email protected]> > >>>>> >> > >>>>> >> wrote: > >>>>> >> > Nate, > >>>>> >> > > >>>>> >> > It is available for download here (33 MB): > >>>>> >> > > >>>>> >> > >>>>> > >>>>> > >>> > http://72.187.222.34/~sroy/m5_tests/alphaev67-unknown-linux-gnu-x86-32.tar.bz2 > >>> > >>>>> >> > > >>>>> >> > -Soumyaroop > >>>>> >> > > >>>>> >> > On Wed, Oct 28, 2009 at 9:12 PM, soumyaroop roy > >>>>> > >>> <[email protected]> > >>> > >>>>> >> > wrote: > >>>>> >> >> On Wed, Oct 28, 2009 at 9:04 PM, nathan binkert > >>>>> >> >> <[email protected]> > >>>>> >> wrote: > >>>>> >> >>>>>> My estimate is that the tar-zipped file should between > >>>>> >> >>>>>> 250-300 > >>>>> >> >>>>>> MB. > >>>>> >> >>>>> No problem. > >>>>> >> >>>> > >>>>> >> >>>> Let me host it somewhere and send you the link so that > >>>>> you may > >>>>> >> download > >>>>> >> >>>> it. > >>>>> >> >>> Sure. Once I get it on the m5 site, you can add the link. > >>>>> >> >> > >>>>> >> >> Is there a way for me to upload it on the M5 wiki > >>>>> directly? Is > >>>>> >> >> that > >>>>> >> >> what you were implying all along that I should do? > >>>>> >> >> > >>>>> >> >>> > >>>>> >> >>>> Do you mean providing the link though the wiki? I do > >>>>> not have > >>>>> >> >>>> permissions to edit this page, > >>>>> >> >>>> http://www.m5sim.org/wiki/index.php/Download, which has > >>>>> links > >>>>> >> >>>> to > >>>>> >> >>>> the > >>>>> >> >>>> cross-compilers. > >>>>> >> >>> > >>>>> >> >>> You should be able to, but you have to create an account. > >>>>> >> >> > >>>>> >> >> I already have an account. But it says: > >>>>> >> >> > >>>>> >> >> You do not have permission to edit this page, for the > >>>>> following > >>>>> >> >> reason: > >>>>> >> >> This page has been locked to prevent editing. > >>>>> >> >> > >>>>> >> >> You can view and copy the source of this page: > >>>>> >> >> > >>>>> >> >>> > >>>>> >> >>> Nate > >>>>> >> >>> _______________________________________________ > >>>>> >> >>> m5-users mailing list > >>>>> >> >>> [email protected] > >>>>> >> >>> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users > >>>>> >> >>> > >>>>> >> >> > >>>>> >> >> -Soumyaroop > >>>>> >> >> > >>>>> >> >> -- > >>>>> >> >> Soumyaroop Roy > >>>>> >> >> Ph.D. Candidate > >>>>> >> >> Department of Computer Science and Engineering > >>>>> >> >> University of South Florida, Tampa > >>>>> >> >> http://www.csee.usf.edu/~sroy > >>>>> >> >> > >>>>> >> _______________________________________________ > >>>>> >> m5-users mailing list > >>>>> >> [email protected] > >>>>> >> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users > >>>>> > >>>>> > >> > >> -- > >> Soumyaroop Roy > >> Ph.D. Candidate > >> Department of Computer Science and Engineering > >> University of South Florida, Tampa > >> http://www.csee.usf.edu/~sroy > >> _______________________________________________ > >> m5-dev mailing list > >> [email protected] > >> http://m5sim.org/mailman/listinfo/m5-dev > >> > > > > _______________________________________________ > > m5-dev mailing list > > [email protected] > > http://m5sim.org/mailman/listinfo/m5-dev > > > > _______________________________________________ > m5-dev mailing list > [email protected] > http://m5sim.org/mailman/listinfo/m5-dev > -- Soumyaroop Roy Ph.D. Candidate Department of Computer Science and Engineering University of South Florida, Tampa http://www.csee.usf.edu/~sroy _______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
