[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[openrisc] DSP instructions assembler error



I am attempting to assemble dsp instructions with the port of binutils 
but when I attemp to assemble a dsp instruction wich contains a _ the 
assembler fails.

For example this program:

main(){

   int i;
   i=5;
   i=i+6;

   asm("lv.add.h  r3,r4,r6");

}

with the orden or32-uclinux-gcc -S suma.c generate:

	l.addi   	r1,r1,-8
	l.sw     	0(r1),r2
	l.addi   	r2,r1,8
	l.addi  	r3,r0,5	 # move immediate
	l.sw    	-4(r2),r3
	l.lwz    	r3,-4(r2)	 # SI load
	l.addi  	r3,r3,6
	l.sw    	-4(r2),r3
	lv.add.h  r3,r4,r6    ************* THE ORDER IN ASM
	l.addi  	r11,r3,0	 # move reg to reg
	l.lwz    	r2,0(r1)
	l.jr  	r9
	l.addi   	r1,r1,8

And writing or32-uclinux-as suma.s assemble without errors. If I use a 
DSP instruction with a _ like lv.cmp_le.b in this code:

main(){

   int i;
   i=5;
   i=i+6;

   asm("lv.cmp_le.b  r3,r4,r6");

}

I obtain a similar result in asm

	l.addi   	r1,r1,-8
	l.sw     	0(r1),r2
	l.addi   	r2,r1,8
	l.addi  	r3,r0,5	 # move immediate
	l.sw    	-4(r2),r3
	l.lwz    	r3,-4(r2)	 # SI load
	l.addi  	r3,r3,6
	l.sw    	-4(r2),r3
	lv.cmp_le.b  r3,r4,r6    **************THE ORDER I ADD
	l.addi  	r11,r3,0	 # move reg to reg
	l.lwz    	r2,0(r1)
	l.jr  	r9
	l.addi   	r1,r1,8


But when I try to assemble it says:

suma.s:19 Error: unknow opcode1: 'lv.cmp_le.b r3,r4,r6'

I look at /binutils/opcodes/or32.c and these instructions are added to.


I attempt to use all the DSP isntructions with an _ in his opcode and 
noone assemble but the ones that dont have a _ works well.


Is this a bug or maybe I am doing something wrong?

Thanks



--
To unsubscribe from openrisc mailing list please visit http://www.opencores.org/mailinglists.shtml