PowerPC assembler question

Peter Dufault dufault at hda.com
Wed May 26 12:01:58 UTC 2010


I'm trying to assemble a Freescale library (lib DSP libraries for MPC55XX SPE APU) written in Metroworks assembler.  Many files assemble after sedding the .align directive to an appropriate one for gas and using "-mspe -mregnames"  but many fail with the following error:

bitrev_table_16bit.s:116: Error: syntax error; found `

Here's part of that file. Can anyone tell me what the proper fix is?  Look for SYNTAX ERROR HERE near the bottom.  If you need the entire file I'll send it to you.

#<#/* registers */
    .set    n                    , 3   #/* number of groups, B^P=N (N is FFT length), n=sqrt(N) if P is even or n=sqrt(N/B) if P is odd */
    .set    y                    , 4   #/* in/out buffer */
    .set    seed                 , 5   #/* seed table */
    .set    inner_loop_ctr       , 6
    .set    seed_offset_addr     , 7
    .set    seed_offset          , 8
    .set    seed_gN_addr         , 9
    .set    firstj               , 10
    .set    i_addr               , 11
    .set    i_addr_in_inc        , 28
    .set    tmp_j                , 30
    .set    tmp_i                , 31
#>#

#/* code */
            #/* store nonvolatile registers */
            stwu      r1,-32(r1)
            stw       r31,28(r1)
            stw       r30,24(r1)
            stw       r29,20(r1)
            stw       r28,16(r1)

            addi      seed_offset_addr,seed,ONE_ITEM_TABLE_BYTESIZE; #/* update address to seed table */
            lhz       seed_offset,0(seed_offset_addr);            #/* load value from seed table */
            addi      i_addr,y,ONE_ITEM_BYTESIZE;                 #/* init address of tmp_i */
            slwi      i_addr_in_inc,n,ONE_ITEM_BYTESIZE_EXP;      #/* i_addr increment for inner loop */
            subi      tmp_i,n,1;                                  #/* tmp_i = n-1 */
            mtctr     tmp_i;                                      #/* outer loop executed n-1 */
outer_loop:
            #/* exchange tmp_i and tmp_j complex elements */
            mullw     firstj,n,seed_offset;                       #/* firstj = n*seed_offset */
/****/
            load      tmp_i,0(i_addr);                            #/* load tmp_i */ *************************SYNTAX ERROR HERE */
/****/
            addi      seed_gN_addr,seed,ONE_ITEM_TABLE_BYTESIZE;  #/* init address of seed[groupNumber] */              


Peter
-----------------
Peter Dufault
HD Associates, Inc.      Software and System Engineering




More information about the users mailing list