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