35.3.1.9. INTEGER ARITHMETICAL ON IA64



Format M1
-----------
40..37	4
36	m
35..30	X6
29..28	hint
27	x		Opcode = 4.m.x.x6
26..20	r3
19..13	---
12..6	r1
5..0	qp
-------------


ld1{.ldhint}		r1=[r3]		M1	4.0.0.00
ld2{.ldhint}		r1=[r3]		M1	4.0.0.01
ld4{.ldhint}		r1=[r3]		M1	4.0.0.02
ld8{.ldhint}		r1=[r3]		M1	4.0.0.03

ld1.s{.ldhint}		r1=[r3]		M1	4.0.0.04
ld2.s{.ldhint}		r1=[r3]		M1	4.0.0.05
ld4.s{.ldhint}		r1=[r3]		M1	4.0.0.06
ld8.s{.ldhint}		r1=[r3]		M1	4.0.0.07

ld1.a{.ldhint}		r1=[r3]		M1	4.0.0.08
ld2.a{.ldhint}		r1=[r3]		M1	4.0.0.09
ld4.a{.ldhint}		r1=[r3]		M1	4.0.0.0A
ld8.a{.ldhint}		r1=[r3]		M1	4.0.0.0B

ld1.sa{.ldhint}		r1=[r3]		M1	4.0.0.0C
ld2.sa{.ldhint}		r1=[r3]		M1	4.0.0.0D
ld4.sa{.ldhint}		r1=[r3]		M1	4.0.0.0E
ld8.sa{.ldhint}		r1=[r3]		M1	4.0.0.0F

ld1.bias{.ldhint}	r1=[r3]		M1	4.0.0.10
ld2.bias{.ldhint}	r1=[r3]		M1	4.0.0.11
ld4.bias{.ldhint}	r1=[r3]		M1	4.0.0.12
ld8.bias{.ldhint}	r1=[r3]		M1	4.0.0.13

ld1.acq{.ldhint}	r1=[r3]		M1	4.0.0.14
ld2.acq{.ldhint}	r1=[r3]		M1	4.0.0.15
ld4.acq{.ldhint}	r1=[r3]		M1	4.0.0.16
ld8.acq{.ldhint}	r1=[r3]		M1	4.0.0.17


ld8.fill.{.ldhint}	r1=[r3]		M1	4.0.0.1B

ld1.c.clr{.ldhint}	r1=[r3]		M1	4.0.0.20
ld2.c.clr{.ldhint}	r1=[r3]		M1	4.0.0.21
ld4.c.clr{.ldhint}	r1=[r3]		M1	4.0.0.22
ld8.c.clr{.ldhint}	r1=[r3]		M1	4.0.0.23

ld1.c.nc{.ldhint}	r1=[r3]		M1	4.0.0.24
ld2.c.nc{.ldhint}	r1=[r3]		M1	4.0.0.25
ld4.c.nc{.ldhint}	r1=[r3]		M1	4.0.0.26
ld8.c.nc{.ldhint}	r1=[r3]		M1	4.0.0.27

ld1.c.clr.acq{.ldhint}	r1=[r3]		M1	4.0.0.28
ld2.c.clr.acq{.ldhint}	r1=[r3]		M1	4.0.0.29
ld4.c.clr.acq{.ldhint}	r1=[r3]		M1	4.0.0.2A
ld8.c.clr.acq{.ldhint}	r1=[r3]		M1	4.0.0.2B


Format M2
-----------
40..37	4
36	m
35..30	X6
29..28	hint
27	x	Opcode = 4.m.x.x6
26..20	r3
19..13	r2
12..6	r1
5..0	qp
-------------

ld1{.ldhint}		r1=[r3],r2		M2	4.1.0.00
ld2{.ldhint}		r1=[r3],r2		M2	4.1.0.01
ld4{.ldhint}		r1=[r3],r2		M2	4.1.0.02
ld8{.ldhint}		r1=[r3],r2		M2	4.1.0.03

ld1.s{.ldhint}		r1=[r3],r2		M2	4.1.0.04
ld2.s{.ldhint}		r1=[r3],r2		M2	4.1.0.05
ld4.s{.ldhint}		r1=[r3],r2		M2	4.1.0.06
ld8.s{.ldhint}		r1=[r3],r2		M2	4.1.0.07

ld1.a{.ldhint}		r1=[r3],r2		M2	4.1.0.08
ld2.a{.ldhint}		r1=[r3],r2		M2	4.1.0.09
ld4.a{.ldhint}		r1=[r3],r2		M2	4.1.0.0A
ld8.a{.ldhint}		r1=[r3],r2		M2	4.1.0.0B

ld1.sa{.ldhint}		r1=[r3],r2		M2	4.1.0.0C
ld2.sa{.ldhint}		r1=[r3],r2		M2	4.1.0.0D
ld4.sa{.ldhint}		r1=[r3],r2		M2	4.1.0.0E
ld8.sa{.ldhint}		r1=[r3],r2		M2	4.1.0.0F

ld1.bias{.ldhint}	r1=[r3],r2		M2	4.1.0.10
ld2.bias{.ldhint}	r1=[r3],r2		M2	4.1.0.11
ld4.bias{.ldhint}	r1=[r3],r2		M2	4.1.0.12
ld8.bias{.ldhint}	r1=[r3],r2		M2	4.1.0.13

ld1.acq{.ldhint}	r1=[r3],r2		M2	4.1.0.14
ld2.acq{.ldhint}	r1=[r3],r2		M2	4.1.0.15
ld4.acq{.ldhint}	r1=[r3],r2		M2	4.1.0.16
ld8.acq{.ldhint}	r1=[r3],r2		M2	4.1.0.17


ld8.fill.{.ldhint}	r1=[r3],r2		M2	4.1.0.1B

ld1.c.clr{.ldhint}	r1=[r3],r2		M2	4.1.0.20
ld2.c.clr{.ldhint}	r1=[r3],r2		M2	4.1.0.21
ld4.c.clr{.ldhint}	r1=[r3],r2		M2	4.1.0.22
ld8.c.clr{.ldhint}	r1=[r3],r2		M2	4.1.0.23

ld1.c.nc{.ldhint}	r1=[r3],r2		M2	4.1.0.24
ld2.c.nc{.ldhint}	r1=[r3],r2		M2	4.1.0.25
ld4.c.nc{.ldhint}	r1=[r3],r2		M2	4.1.0.26
ld8.c.nc{.ldhint}	r1=[r3],r2		M2	4.1.0.27

ld1.c.clr.acq{.ldhint}	r1=[r3],r2		M2	4.1.0.28
ld2.c.clr.acq{.ldhint}	r1=[r3],r2		M2	4.1.0.29
ld4.c.clr.acq{.ldhint}	r1=[r3],r2		M2	4.1.0.2A
ld8.c.clr.acq{.ldhint}	r1=[r3],r2		M2	4.1.0.2B


Format  M3
------------
40..37	5
36	s
35..30	X6
29..28	hint
27	i		Opcode = 5.x6
26..20	r3
19..13	imm7n
12..6	r1
5..0	qp
-------------



ld1{.ldhint}		r1=[r2],imm9		M3	5.00
ld2{.ldhint}		r1=[r2],imm9		M3	5.01
ld4{.ldhint}		r1=[r2],imm9		M3	5.02
ld8{.ldhint}		r1=[r2],imm9		M3	5.03

ld1.s{.ldhint}		r1=[r2],imm9		M3	5.04
ld2.s{.ldhint}		r1=[r2],imm9		M3	5.05
ld4.s{.ldhint}		r1=[r2],imm9		M3	5.06
ld8.s{.ldhint}		r1=[r2],imm9		M3	5.07

ld1.a{.ldhint}		r1=[r2],imm9		M3	5.08
ld2.a{.ldhint}		r1=[r2],imm9		M3	5.09
ld4.a{.ldhint}		r1=[r2],imm9		M3	5.0A
ld8.a{.ldhint}		r1=[r2],imm9		M3	5.0B

ld1.sa{.ldhint}		r1=[r2],imm9		M3	5.0C
ld2.sa{.ldhint}		r1=[r2],imm9		M3	5.0D
ld4.sa{.ldhint}		r1=[r2],imm9		M3	5.0E
ld8.sa{.ldhint}		r1=[r2],imm9		M3	5.0F


ld1.bias{.ldhint}	r1=[r2],imm9		M3	5.10
ld2.bias{.ldhint}	r1=[r2],imm9		M3	5.11
ld4.bias{.ldhint}	r1=[r2],imm9		M3	5.12
ld8.bias{.ldhint}	r1=[r2],imm9		M3	5.13

ld1.acq{.ldhint}	r1=[r2],imm9		M3	5.14
ld2.acq{.ldhint}	r1=[r2],imm9		M3	5.15
ld4.acq{.ldhint}	r1=[r2],imm9		M3	5.16
ld8.acq{.ldhint}	r1=[r2],imm9		M3	5.17


ld8.fill{.ldhint}	r1=[r2],imm9		M3	5.1B

ld1.c.clr{.ldhint}	r1=[r2],imm9		M3	5.20
ld2.c.clr{.ldhint}	r1=[r2],imm9		M3	5.21
ld4.c.clr{.ldhint}	r1=[r2],imm9		M3	5.22
ld8.c.clr{.ldhint}	r1=[r2],imm9		M3	5.23

ld1.c.nc{.ldhint}	r1=[r2],imm9		M3	5.24
ld2.c.nc{.ldhint}	r1=[r2],imm9		M3	5.25
ld4.c.nc{.ldhint}	r1=[r2],imm9		M3	5.26
ld8.c.nc{.ldhint}	r1=[r2],imm9		M3	5.27

ld1.c.clr.acq{.ldhint}	r1=[r2],imm9		M3	5.28
ld2.c.clr.acq{.ldhint}	r1=[r2],imm9		M3	5.29
ld4.c.clr.acq{.ldhint}	r1=[r2],imm9		M3	5.2A
ld8.c.clr.acq{.ldhint}	r1=[r2],imm9		M3	5.2B



Format  M4
------------
40..37	4
36	m
35..30	X6
29..28	hint	Opcode: 4.m.x.x6
27	x
26..20	r3
19..13	r2
12..6	--
5..0	qp
--------------



st1{.sthint}			[r3]=r2		M4	4.0.0.30
st2{.sthint}			[r3]=r2		M4	4.0.0.31
st4{.sthint}			[r3]=r2		M4	4.0.0.32
st8{.sthint}			[r3]=r2		M4	4.0.0.33

st1.rel{.sthint}		[r3]=r2		M4	4.0.0.34
st2.rel{.sthint}		[r3]=r2		M4	4.0.0.35
st4.rel{.sthint}		[r3]=r2		M4	4.0.0.36
st8.rel{.sthint}		[r3]=r2		M4	4.0.0.37

st8.spill{.sthint}		[r3]=r2		M4	4.0.0.3B



Format  M5
------------
40..37	5
36	s
35..30	X6
29..28	hint	Opcode: 5.x6
27	i
26..20	r3
19..13	r2
12..6	imm7a
5..0	qp
--------------

st1{.sthint}			[r3]=r2,imm9	M5	5.30
st2{.sthint}			[r3]=r2,imm9	M5	5.31
st4{.sthint}			[r3]=r2,imm9	M5	5.32
st8{.sthint}			[r3]=r2,imm9	M5	5.33

st1.rel{.sthint}		[r3]=r2,imm9	M5	5.34
st2.rel{.sthint}		[r3]=r2,imm9	M5	5.35
st4.rel{.sthint}		[r3]=r2,imm9	M5	5.36
st8.rel{.sthint}		[r3]=r2,imm9	M5	5.37

st8.spill{.sthint}		[r3]=r2,imm9	M5	5.3B


Format M16
-----------
40..37	4
36	m
35..30	X6
29..28	hint
27	x		Opcode = 4.m.x.X6
26..20	r3
19..13	r2
12..6	r1
5..0	qp
-----------


xchg1{.ldhint}		r1=[r3],r2		M16	4.0.1.08
xchg2{.ldhint}		r1=[r3],r2		M16	4.0.1.09
xchg4{.ldhint}		r1=[r3],r2		M16	4.0.1.0A
xchg8{.ldhint}		r1=[r3],r2		M16	4.0.1.0B


Format M17
-----------
40..37	4
36	m
35..30	X6
29..28	hint
27	x		Opcode = 4.m.x.X6
26..20	r3
19..16	--
15	s
14..13	I2b
12..6	r1
5..0	qp
-----------


fetchadd4.acq{.ldhint}	r1=[r3],inc3		M17	4.0.1.12
fetchadd8.acq{.ldhint}	r1=[r3],inc3		M17	4.0.1.13
fetchadd4.rel{.ldhint}	r1=[r3],inc3		M17	4.0.1.16
fetchadd8.rel{.ldhint}	r1=[r3],inc3		M17	4.0.1.17



Format	X2
------------
40..37	6
36	i
35..27	imm9d
26..22	imm5c
21	Ic
20	Vc		Opcode = 6.Vc
19..13	ummm7b
12..6	r1
5..0	qp
- - - - - - -
40..0	imm41
--------------
movl			r1 = imm64		X2	6.0


For load smaller constant we can use next sequences:

	or	rd = imm8,  r0
	adds	rd = imm14, r0
	addl	rd = imm22, r0
			
Because r0 is hard coded to zero.



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


Index Prev Next