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
