35.3.1.9. INTEGER ARITHMETICAL ON IA64





Format  A1		Format  A2	       Format A3	
------------	+     -------------	+     ------------
40..37	8		40..37	8	       	40..37	8		
36	--		36	--		36	S
35..34	X2a		35..34	X2a		35..34	X2a
33	Ve		33	Ve		33	Ve
32..29	X4		32..29	X4		32..29	X4
28..27	X2b		28..27	CT2d		28..27	X2b
26..20	R3		26..20	R3		26..20	R3
19..13	R2		19..13	R2		19..13	Imm7b
12..6	R1		12..6	R1		12..6	R1
5..0	QP		5..0	QP		5..0	QP
------------	+     --------------	+     -------------




Format  A4	         Format A5
------------	+      ------------
40..37	8		40..37	9	
36	S		36	S	
35..34	X2a		35..27	Imm9d	
33	Ve		26..22	Imm5c	
32..27	Imm6d		21..20	r3	
26..20	R3		19..13	Imm7b	
19..13	Imm7b		12..6	R1	
12..6	R1		5..0	QP	
5..0	QP1	 	
------------	+     -------------	




add		r1=r2,r3	A1	8.0.0.0.0  
						r1 <- r2 + r3
add		r1=r2,r3,1	A1	8.0.0.0.1
						r1 <- r2 + r3 + 1

adds		r1=imm14,r3	A4	8.2.0	r1 <- sext(imm14) + r3
addl		r1=imm22,r3	A5	9	r1 <- sext(imm22) + r3	


addp4		r1=r2,r3	A1	8.0.0.2.0  Add Pointer
addp4		r1=imm14,r3	A4	8.3.0	   Add Pointer


shladd		r1=r2,cnt2,r3	A2	8.0.0.4	r1 <- (r2 << cnt2) + r3
shladdp4	r1=r2,cnt2,r3	A2	8.0.0.6 Shift Left and Add Pointer


sub		r1=r2,r3	A1	8.0.0.1.1	
						r1 <- r2 - r3
sub		r1=r2,r3,1	A1	8.0.0.1.0
						r1 <- r2 - r3 - 1
sub		r1=imm8,r3	A3	8.0.0.9.1
						r1 <- sext(imm8) - r3


Note:
xma.l/xma.lu/xma.h/xma.hu  	- Fixed Point Multiply Add
xmpy.l/xmpy.lu/xmpy.h/xmpy.hu	- Fixed Point Multiply
	(both are on float registers)



Note:	All other Integer operations such as Multiply, Divide, Negate
are complex operations.

	Add with carry look like

		(predicate)	add	r1=r2,r3
		(predicate)	add	r1=r2,r3,1
So, execution use predicates for select way, on which this instruction
will be executed.



// ----------------------------------------------------------------------


Index Prev Next