forked from Imagelibrary/binutils-gdb
aarch64: Add +pauth flag for Pointer Authentication feature
New -march option +pauth enables PAuth vel PAC (Pointer Authentication) feature.
This commit is contained in:
@@ -1,3 +1,11 @@
|
|||||||
|
2020-11-13 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
|
||||||
|
|
||||||
|
* NEWS: Update news.
|
||||||
|
* config/tc-aarch64.c: Add option +pauth to -march.
|
||||||
|
* doc/c-aarch64.texi: Update docs.
|
||||||
|
* testsuite/gas/aarch64/pac-feat.d: New test.
|
||||||
|
* testsuite/gas/aarch64/pac-feat.s: New test.
|
||||||
|
|
||||||
2020-11-16 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
|
2020-11-16 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
|
||||||
|
|
||||||
* NEWS: Update news.
|
* NEWS: Update news.
|
||||||
|
|||||||
3
gas/NEWS
3
gas/NEWS
@@ -32,6 +32,9 @@
|
|||||||
* Add support for +ls64 feature for -march in Armv8.7 AArch64. Add atomic
|
* Add support for +ls64 feature for -march in Armv8.7 AArch64. Add atomic
|
||||||
64-byte load/store instructions for this feature.
|
64-byte load/store instructions for this feature.
|
||||||
|
|
||||||
|
* Add support for +pauth (Pointer Authentication) feature for -march in
|
||||||
|
AArch64.
|
||||||
|
|
||||||
* Add support for Intel TDX instructions.
|
* Add support for Intel TDX instructions.
|
||||||
|
|
||||||
* Add support for Intel Key Locker instructions.
|
* Add support for Intel Key Locker instructions.
|
||||||
|
|||||||
@@ -9227,6 +9227,8 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
|
|||||||
AARCH64_ARCH_NONE},
|
AARCH64_ARCH_NONE},
|
||||||
{"flagm", AARCH64_FEATURE (AARCH64_FEATURE_FLAGM, 0),
|
{"flagm", AARCH64_FEATURE (AARCH64_FEATURE_FLAGM, 0),
|
||||||
AARCH64_ARCH_NONE},
|
AARCH64_ARCH_NONE},
|
||||||
|
{"pauth", AARCH64_FEATURE (AARCH64_FEATURE_PAC, 0),
|
||||||
|
AARCH64_ARCH_NONE},
|
||||||
{NULL, AARCH64_ARCH_NONE, AARCH64_ARCH_NONE},
|
{NULL, AARCH64_ARCH_NONE, AARCH64_ARCH_NONE},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -230,8 +230,10 @@ automatically cause those extensions to be disabled.
|
|||||||
@tab Enable Flag Manipulation instructions.
|
@tab Enable Flag Manipulation instructions.
|
||||||
@item @code{csre} @tab ARMv8-A @tab No
|
@item @code{csre} @tab ARMv8-A @tab No
|
||||||
@tab Enable Call Stack Recorder Extension.
|
@tab Enable Call Stack Recorder Extension.
|
||||||
@item @code{ls64} @tab ARMv8-6 @tab ARMv8.7-A or later
|
@item @code{ls64} @tab ARMv8.6-A @tab ARMv8.7-A or later
|
||||||
@tab Enable 64 Byte Loads/Stores.
|
@tab Enable 64 Byte Loads/Stores.
|
||||||
|
@item @code{pauth} @tab ARMv8-A @tab No
|
||||||
|
@tab Enable Pointer Authentication.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@node AArch64 Syntax
|
@node AArch64 Syntax
|
||||||
|
|||||||
74
gas/testsuite/gas/aarch64/pac-feat.d
Normal file
74
gas/testsuite/gas/aarch64/pac-feat.d
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
#name: PAUTH (Pointer authentication) feature
|
||||||
|
#objdump: -dr
|
||||||
|
|
||||||
|
.*: file .*
|
||||||
|
|
||||||
|
Disassembly of section \.text:
|
||||||
|
|
||||||
|
0+ <.*>:
|
||||||
|
.*: dac10083 pacia x3, x4
|
||||||
|
.*: dac103e5 pacia x5, sp
|
||||||
|
.*: dac10483 pacib x3, x4
|
||||||
|
.*: dac107e5 pacib x5, sp
|
||||||
|
.*: dac10883 pacda x3, x4
|
||||||
|
.*: dac10be5 pacda x5, sp
|
||||||
|
.*: dac10c83 pacdb x3, x4
|
||||||
|
.*: dac10fe5 pacdb x5, sp
|
||||||
|
.*: dac11083 autia x3, x4
|
||||||
|
.*: dac113e5 autia x5, sp
|
||||||
|
.*: dac11483 autib x3, x4
|
||||||
|
.*: dac117e5 autib x5, sp
|
||||||
|
.*: dac11883 autda x3, x4
|
||||||
|
.*: dac11be5 autda x5, sp
|
||||||
|
.*: dac11c83 autdb x3, x4
|
||||||
|
.*: dac11fe5 autdb x5, sp
|
||||||
|
.*: dac123e5 paciza x5
|
||||||
|
.*: dac127e5 pacizb x5
|
||||||
|
.*: dac12be5 pacdza x5
|
||||||
|
.*: dac12fe5 pacdzb x5
|
||||||
|
.*: dac133e5 autiza x5
|
||||||
|
.*: dac137e5 autizb x5
|
||||||
|
.*: dac13be5 autdza x5
|
||||||
|
.*: dac13fe5 autdzb x5
|
||||||
|
.*: dac143e5 xpaci x5
|
||||||
|
.*: dac147e5 xpacd x5
|
||||||
|
.*: 9ac33041 pacga x1, x2, x3
|
||||||
|
.*: 9adf3041 pacga x1, x2, sp
|
||||||
|
.*: d71f0822 braa x1, x2
|
||||||
|
.*: d71f087f braa x3, sp
|
||||||
|
.*: d71f0c22 brab x1, x2
|
||||||
|
.*: d71f0c7f brab x3, sp
|
||||||
|
.*: d73f0822 blraa x1, x2
|
||||||
|
.*: d73f087f blraa x3, sp
|
||||||
|
.*: d73f0c22 blrab x1, x2
|
||||||
|
.*: d73f0c7f blrab x3, sp
|
||||||
|
.*: d61f08bf braaz x5
|
||||||
|
.*: d61f0cbf brabz x5
|
||||||
|
.*: d63f08bf blraaz x5
|
||||||
|
.*: d63f0cbf blrabz x5
|
||||||
|
.*: d65f0bff retaa
|
||||||
|
.*: d65f0fff retab
|
||||||
|
.*: d69f0bff eretaa
|
||||||
|
.*: d69f0fff eretab
|
||||||
|
.*: f8200441 ldraa x1, \[x2\]
|
||||||
|
.*: f8200441 ldraa x1, \[x2\]
|
||||||
|
.*: f87ff483 ldraa x3, \[x4, #-8\]
|
||||||
|
.*: f82014c5 ldraa x5, \[x6, #8\]
|
||||||
|
.*: f83ff507 ldraa x7, \[x8, #4088\]
|
||||||
|
.*: f8600528 ldraa x8, \[x9, #-4096\]
|
||||||
|
.*: f82007e2 ldraa x2, \[sp\]
|
||||||
|
.*: f87067e4 ldraa x4, \[sp, #-2000\]
|
||||||
|
.*: f8a00441 ldrab x1, \[x2\]
|
||||||
|
.*: f8a00441 ldrab x1, \[x2\]
|
||||||
|
.*: f8fff483 ldrab x3, \[x4, #-8\]
|
||||||
|
.*: f8a014c5 ldrab x5, \[x6, #8\]
|
||||||
|
.*: f8bff507 ldrab x7, \[x8, #4088\]
|
||||||
|
.*: f8e00528 ldrab x8, \[x9, #-4096\]
|
||||||
|
.*: f8a007e2 ldrab x2, \[sp\]
|
||||||
|
.*: f8f067e4 ldrab x4, \[sp, #-2000\]
|
||||||
|
.*: f8201c62 ldraa x2, \[x3, #8\]!
|
||||||
|
.*: f87ffca4 ldraa x4, \[x5, #-8\]!
|
||||||
|
.*: f83fffe6 ldraa x6, \[sp, #4088\]!
|
||||||
|
.*: f8a01c62 ldrab x2, \[x3, #8\]!
|
||||||
|
.*: f8fffca4 ldrab x4, \[x5, #-8\]!
|
||||||
|
.*: f8bfffe6 ldrab x6, \[sp, #4088\]!
|
||||||
79
gas/testsuite/gas/aarch64/pac-feat.s
Normal file
79
gas/testsuite/gas/aarch64/pac-feat.s
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
/* ARMv8.3 Pointer authentication instructions. */
|
||||||
|
.arch armv8-a+pauth
|
||||||
|
|
||||||
|
/* Basic instructions. */
|
||||||
|
pacia x3, x4
|
||||||
|
pacia x5, sp
|
||||||
|
pacib x3, x4
|
||||||
|
pacib x5, sp
|
||||||
|
pacda x3, x4
|
||||||
|
pacda x5, sp
|
||||||
|
pacdb x3, x4
|
||||||
|
pacdb x5, sp
|
||||||
|
|
||||||
|
autia x3, x4
|
||||||
|
autia x5, sp
|
||||||
|
autib x3, x4
|
||||||
|
autib x5, sp
|
||||||
|
autda x3, x4
|
||||||
|
autda x5, sp
|
||||||
|
autdb x3, x4
|
||||||
|
autdb x5, sp
|
||||||
|
|
||||||
|
paciza x5
|
||||||
|
pacizb x5
|
||||||
|
pacdza x5
|
||||||
|
pacdzb x5
|
||||||
|
|
||||||
|
autiza x5
|
||||||
|
autizb x5
|
||||||
|
autdza x5
|
||||||
|
autdzb x5
|
||||||
|
|
||||||
|
xpaci x5
|
||||||
|
xpacd x5
|
||||||
|
|
||||||
|
pacga x1, x2, x3
|
||||||
|
pacga x1, x2, sp
|
||||||
|
|
||||||
|
/* Combined instructions. */
|
||||||
|
braa x1, x2
|
||||||
|
braa x3, sp
|
||||||
|
brab x1, x2
|
||||||
|
brab x3, sp
|
||||||
|
blraa x1, x2
|
||||||
|
blraa x3, sp
|
||||||
|
blrab x1, x2
|
||||||
|
blrab x3, sp
|
||||||
|
braaz x5
|
||||||
|
brabz x5
|
||||||
|
blraaz x5
|
||||||
|
blrabz x5
|
||||||
|
|
||||||
|
retaa
|
||||||
|
retab
|
||||||
|
eretaa
|
||||||
|
eretab
|
||||||
|
|
||||||
|
ldraa x1, [x2]
|
||||||
|
ldraa x1, [x2,#0]
|
||||||
|
ldraa x3, [x4,#-8]
|
||||||
|
ldraa x5, [x6,#8]
|
||||||
|
ldraa x7, [x8,#4088]
|
||||||
|
ldraa x8, [x9,#-4096]
|
||||||
|
ldraa x2, [sp]
|
||||||
|
ldraa x4, [sp,#-2000]
|
||||||
|
ldrab x1, [x2]
|
||||||
|
ldrab x1, [x2,#0]
|
||||||
|
ldrab x3, [x4,#-8]
|
||||||
|
ldrab x5, [x6,#8]
|
||||||
|
ldrab x7, [x8,#4088]
|
||||||
|
ldrab x8, [x9,#-4096]
|
||||||
|
ldrab x2, [sp]
|
||||||
|
ldrab x4, [sp,#-2000]
|
||||||
|
ldraa x2, [x3, #8]!
|
||||||
|
ldraa x4, [x5, #-8]!
|
||||||
|
ldraa x6, [sp, #4088]!
|
||||||
|
ldrab x2, [x3, #8]!
|
||||||
|
ldrab x4, [x5, #-8]!
|
||||||
|
ldrab x6, [sp, #4088]!
|
||||||
Reference in New Issue
Block a user