From a56def47ec8f7bba60fa17af4bbbd9e79f41d052 Mon Sep 17 00:00:00 2001 From: Alice Carlotti Date: Sun, 20 Apr 2025 23:09:55 +0100 Subject: [PATCH] aarch64: Add new test ldst-extend-general.d All instructions were previously untested. --- .../gas/aarch64/ldst-extend-general.d | 155 ++++++++++++++++++ .../gas/aarch64/ldst-extend-general.s | 152 +++++++++++++++++ 2 files changed, 307 insertions(+) create mode 100644 gas/testsuite/gas/aarch64/ldst-extend-general.d create mode 100644 gas/testsuite/gas/aarch64/ldst-extend-general.s diff --git a/gas/testsuite/gas/aarch64/ldst-extend-general.d b/gas/testsuite/gas/aarch64/ldst-extend-general.d new file mode 100644 index 00000000000..7cd4871e96e --- /dev/null +++ b/gas/testsuite/gas/aarch64/ldst-extend-general.d @@ -0,0 +1,155 @@ +#as: -march=armv8-a +#objdump: -dr + +.*: file format .* + + +Disassembly of section \.text: + +0+ <\.text>: + *[0-9a-f]+: 38204800 strb w0, \[x0, w0, uxtw\] + *[0-9a-f]+: 3820481f strb wzr, \[x0, w0, uxtw\] + *[0-9a-f]+: 38204be0 strb w0, \[sp, w0, uxtw\] + *[0-9a-f]+: 383f4800 strb w0, \[x0, wzr, uxtw\] + *[0-9a-f]+: 38205800 strb w0, \[x0, w0, uxtw #0\] + *[0-9a-f]+: 3820c800 strb w0, \[x0, w0, sxtw\] + *[0-9a-f]+: 383fc800 strb w0, \[x0, wzr, sxtw\] + *[0-9a-f]+: 3820d800 strb w0, \[x0, w0, sxtw #0\] + *[0-9a-f]+: 38206800 strb w0, \[x0, x0\] + *[0-9a-f]+: 383f6800 strb w0, \[x0, xzr\] + *[0-9a-f]+: 38207800 strb w0, \[x0, x0, lsl #0\] + *[0-9a-f]+: 3820e800 strb w0, \[x0, x0, sxtx\] + *[0-9a-f]+: 383fe800 strb w0, \[x0, xzr, sxtx\] + *[0-9a-f]+: 3820f800 strb w0, \[x0, x0, sxtx #0\] + *[0-9a-f]+: 38604800 ldrb w0, \[x0, w0, uxtw\] + *[0-9a-f]+: 3860481f ldrb wzr, \[x0, w0, uxtw\] + *[0-9a-f]+: 38604be0 ldrb w0, \[sp, w0, uxtw\] + *[0-9a-f]+: 387f4800 ldrb w0, \[x0, wzr, uxtw\] + *[0-9a-f]+: 38605800 ldrb w0, \[x0, w0, uxtw #0\] + *[0-9a-f]+: 3860c800 ldrb w0, \[x0, w0, sxtw\] + *[0-9a-f]+: 387fc800 ldrb w0, \[x0, wzr, sxtw\] + *[0-9a-f]+: 3860d800 ldrb w0, \[x0, w0, sxtw #0\] + *[0-9a-f]+: 38606800 ldrb w0, \[x0, x0\] + *[0-9a-f]+: 387f6800 ldrb w0, \[x0, xzr\] + *[0-9a-f]+: 38607800 ldrb w0, \[x0, x0, lsl #0\] + *[0-9a-f]+: 3860e800 ldrb w0, \[x0, x0, sxtx\] + *[0-9a-f]+: 387fe800 ldrb w0, \[x0, xzr, sxtx\] + *[0-9a-f]+: 3860f800 ldrb w0, \[x0, x0, sxtx #0\] + *[0-9a-f]+: 38a04800 ldrsb x0, \[x0, w0, uxtw\] + *[0-9a-f]+: 38a0481f ldrsb xzr, \[x0, w0, uxtw\] + *[0-9a-f]+: 38a04be0 ldrsb x0, \[sp, w0, uxtw\] + *[0-9a-f]+: 38bf4800 ldrsb x0, \[x0, wzr, uxtw\] + *[0-9a-f]+: 38a05800 ldrsb x0, \[x0, w0, uxtw #0\] + *[0-9a-f]+: 38a0c800 ldrsb x0, \[x0, w0, sxtw\] + *[0-9a-f]+: 38bfc800 ldrsb x0, \[x0, wzr, sxtw\] + *[0-9a-f]+: 38a0d800 ldrsb x0, \[x0, w0, sxtw #0\] + *[0-9a-f]+: 38a06800 ldrsb x0, \[x0, x0\] + *[0-9a-f]+: 38bf6800 ldrsb x0, \[x0, xzr\] + *[0-9a-f]+: 38a07800 ldrsb x0, \[x0, x0, lsl #0\] + *[0-9a-f]+: 38a0e800 ldrsb x0, \[x0, x0, sxtx\] + *[0-9a-f]+: 38bfe800 ldrsb x0, \[x0, xzr, sxtx\] + *[0-9a-f]+: 38a0f800 ldrsb x0, \[x0, x0, sxtx #0\] + *[0-9a-f]+: 38e04800 ldrsb w0, \[x0, w0, uxtw\] + *[0-9a-f]+: 38e0481f ldrsb wzr, \[x0, w0, uxtw\] + *[0-9a-f]+: 38e04be0 ldrsb w0, \[sp, w0, uxtw\] + *[0-9a-f]+: 38ff4800 ldrsb w0, \[x0, wzr, uxtw\] + *[0-9a-f]+: 38e05800 ldrsb w0, \[x0, w0, uxtw #0\] + *[0-9a-f]+: 38e0c800 ldrsb w0, \[x0, w0, sxtw\] + *[0-9a-f]+: 38ffc800 ldrsb w0, \[x0, wzr, sxtw\] + *[0-9a-f]+: 38e0d800 ldrsb w0, \[x0, w0, sxtw #0\] + *[0-9a-f]+: 38e06800 ldrsb w0, \[x0, x0\] + *[0-9a-f]+: 38ff6800 ldrsb w0, \[x0, xzr\] + *[0-9a-f]+: 38e07800 ldrsb w0, \[x0, x0, lsl #0\] + *[0-9a-f]+: 38e0e800 ldrsb w0, \[x0, x0, sxtx\] + *[0-9a-f]+: 38ffe800 ldrsb w0, \[x0, xzr, sxtx\] + *[0-9a-f]+: 38e0f800 ldrsb w0, \[x0, x0, sxtx #0\] + *[0-9a-f]+: 78204800 strh w0, \[x0, w0, uxtw\] + *[0-9a-f]+: 7820481f strh wzr, \[x0, w0, uxtw\] + *[0-9a-f]+: 78204be0 strh w0, \[sp, w0, uxtw\] + *[0-9a-f]+: 783f4800 strh w0, \[x0, wzr, uxtw\] + *[0-9a-f]+: 78204800 strh w0, \[x0, w0, uxtw\] + *[0-9a-f]+: 78205800 strh w0, \[x0, w0, uxtw #1\] + *[0-9a-f]+: 7820c800 strh w0, \[x0, w0, sxtw\] + *[0-9a-f]+: 783fc800 strh w0, \[x0, wzr, sxtw\] + *[0-9a-f]+: 7820c800 strh w0, \[x0, w0, sxtw\] + *[0-9a-f]+: 7820d800 strh w0, \[x0, w0, sxtw #1\] + *[0-9a-f]+: 78206800 strh w0, \[x0, x0\] + *[0-9a-f]+: 783f6800 strh w0, \[x0, xzr\] + *[0-9a-f]+: 78206800 strh w0, \[x0, x0\] + *[0-9a-f]+: 78207800 strh w0, \[x0, x0, lsl #1\] + *[0-9a-f]+: 7820e800 strh w0, \[x0, x0, sxtx\] + *[0-9a-f]+: 783fe800 strh w0, \[x0, xzr, sxtx\] + *[0-9a-f]+: 7820e800 strh w0, \[x0, x0, sxtx\] + *[0-9a-f]+: 7820f800 strh w0, \[x0, x0, sxtx #1\] + *[0-9a-f]+: 78604800 ldrh w0, \[x0, w0, uxtw\] + *[0-9a-f]+: 7860481f ldrh wzr, \[x0, w0, uxtw\] + *[0-9a-f]+: 78604be0 ldrh w0, \[sp, w0, uxtw\] + *[0-9a-f]+: 787f4800 ldrh w0, \[x0, wzr, uxtw\] + *[0-9a-f]+: 78604800 ldrh w0, \[x0, w0, uxtw\] + *[0-9a-f]+: 78605800 ldrh w0, \[x0, w0, uxtw #1\] + *[0-9a-f]+: 7860c800 ldrh w0, \[x0, w0, sxtw\] + *[0-9a-f]+: 787fc800 ldrh w0, \[x0, wzr, sxtw\] + *[0-9a-f]+: 7860c800 ldrh w0, \[x0, w0, sxtw\] + *[0-9a-f]+: 7860d800 ldrh w0, \[x0, w0, sxtw #1\] + *[0-9a-f]+: 78606800 ldrh w0, \[x0, x0\] + *[0-9a-f]+: 787f6800 ldrh w0, \[x0, xzr\] + *[0-9a-f]+: 78606800 ldrh w0, \[x0, x0\] + *[0-9a-f]+: 78607800 ldrh w0, \[x0, x0, lsl #1\] + *[0-9a-f]+: 7860e800 ldrh w0, \[x0, x0, sxtx\] + *[0-9a-f]+: 787fe800 ldrh w0, \[x0, xzr, sxtx\] + *[0-9a-f]+: 7860e800 ldrh w0, \[x0, x0, sxtx\] + *[0-9a-f]+: 7860f800 ldrh w0, \[x0, x0, sxtx #1\] + *[0-9a-f]+: 78a04800 ldrsh x0, \[x0, w0, uxtw\] + *[0-9a-f]+: 78a0481f ldrsh xzr, \[x0, w0, uxtw\] + *[0-9a-f]+: 78a04be0 ldrsh x0, \[sp, w0, uxtw\] + *[0-9a-f]+: 78bf4800 ldrsh x0, \[x0, wzr, uxtw\] + *[0-9a-f]+: 78a04800 ldrsh x0, \[x0, w0, uxtw\] + *[0-9a-f]+: 78a05800 ldrsh x0, \[x0, w0, uxtw #1\] + *[0-9a-f]+: 78a0c800 ldrsh x0, \[x0, w0, sxtw\] + *[0-9a-f]+: 78bfc800 ldrsh x0, \[x0, wzr, sxtw\] + *[0-9a-f]+: 78a0c800 ldrsh x0, \[x0, w0, sxtw\] + *[0-9a-f]+: 78a0d800 ldrsh x0, \[x0, w0, sxtw #1\] + *[0-9a-f]+: 78a06800 ldrsh x0, \[x0, x0\] + *[0-9a-f]+: 78bf6800 ldrsh x0, \[x0, xzr\] + *[0-9a-f]+: 78a06800 ldrsh x0, \[x0, x0\] + *[0-9a-f]+: 78a07800 ldrsh x0, \[x0, x0, lsl #1\] + *[0-9a-f]+: 78a0e800 ldrsh x0, \[x0, x0, sxtx\] + *[0-9a-f]+: 78bfe800 ldrsh x0, \[x0, xzr, sxtx\] + *[0-9a-f]+: 78a0e800 ldrsh x0, \[x0, x0, sxtx\] + *[0-9a-f]+: 78a0f800 ldrsh x0, \[x0, x0, sxtx #1\] + *[0-9a-f]+: 78e04800 ldrsh w0, \[x0, w0, uxtw\] + *[0-9a-f]+: 78e0481f ldrsh wzr, \[x0, w0, uxtw\] + *[0-9a-f]+: 78e04be0 ldrsh w0, \[sp, w0, uxtw\] + *[0-9a-f]+: 78ff4800 ldrsh w0, \[x0, wzr, uxtw\] + *[0-9a-f]+: 78e04800 ldrsh w0, \[x0, w0, uxtw\] + *[0-9a-f]+: 78e05800 ldrsh w0, \[x0, w0, uxtw #1\] + *[0-9a-f]+: 78e0c800 ldrsh w0, \[x0, w0, sxtw\] + *[0-9a-f]+: 78ffc800 ldrsh w0, \[x0, wzr, sxtw\] + *[0-9a-f]+: 78e0c800 ldrsh w0, \[x0, w0, sxtw\] + *[0-9a-f]+: 78e0d800 ldrsh w0, \[x0, w0, sxtw #1\] + *[0-9a-f]+: 78e06800 ldrsh w0, \[x0, x0\] + *[0-9a-f]+: 78ff6800 ldrsh w0, \[x0, xzr\] + *[0-9a-f]+: 78e06800 ldrsh w0, \[x0, x0\] + *[0-9a-f]+: 78e07800 ldrsh w0, \[x0, x0, lsl #1\] + *[0-9a-f]+: 78e0e800 ldrsh w0, \[x0, x0, sxtx\] + *[0-9a-f]+: 78ffe800 ldrsh w0, \[x0, xzr, sxtx\] + *[0-9a-f]+: 78e0e800 ldrsh w0, \[x0, x0, sxtx\] + *[0-9a-f]+: 78e0f800 ldrsh w0, \[x0, x0, sxtx #1\] + *[0-9a-f]+: b8a04800 ldrsw x0, \[x0, w0, uxtw\] + *[0-9a-f]+: b8a0481f ldrsw xzr, \[x0, w0, uxtw\] + *[0-9a-f]+: b8a04be0 ldrsw x0, \[sp, w0, uxtw\] + *[0-9a-f]+: b8bf4800 ldrsw x0, \[x0, wzr, uxtw\] + *[0-9a-f]+: b8a04800 ldrsw x0, \[x0, w0, uxtw\] + *[0-9a-f]+: b8a05800 ldrsw x0, \[x0, w0, uxtw #2\] + *[0-9a-f]+: b8a0c800 ldrsw x0, \[x0, w0, sxtw\] + *[0-9a-f]+: b8bfc800 ldrsw x0, \[x0, wzr, sxtw\] + *[0-9a-f]+: b8a0c800 ldrsw x0, \[x0, w0, sxtw\] + *[0-9a-f]+: b8a0d800 ldrsw x0, \[x0, w0, sxtw #2\] + *[0-9a-f]+: b8a06800 ldrsw x0, \[x0, x0\] + *[0-9a-f]+: b8bf6800 ldrsw x0, \[x0, xzr\] + *[0-9a-f]+: b8a06800 ldrsw x0, \[x0, x0\] + *[0-9a-f]+: b8a07800 ldrsw x0, \[x0, x0, lsl #2\] + *[0-9a-f]+: b8a0e800 ldrsw x0, \[x0, x0, sxtx\] + *[0-9a-f]+: b8bfe800 ldrsw x0, \[x0, xzr, sxtx\] + *[0-9a-f]+: b8a0e800 ldrsw x0, \[x0, x0, sxtx\] + *[0-9a-f]+: b8a0f800 ldrsw x0, \[x0, x0, sxtx #2\] diff --git a/gas/testsuite/gas/aarch64/ldst-extend-general.s b/gas/testsuite/gas/aarch64/ldst-extend-general.s new file mode 100644 index 00000000000..892d8c4e276 --- /dev/null +++ b/gas/testsuite/gas/aarch64/ldst-extend-general.s @@ -0,0 +1,152 @@ + strb w0, [x0, w0, uxtw] + strb wzr, [x0, w0, uxtw] + strb w0, [sp, w0, uxtw] + strb w0, [x0, wzr, uxtw] + strb w0, [x0, w0, uxtw #0] + strb w0, [x0, w0, sxtw] + strb w0, [x0, wzr, sxtw] + strb w0, [x0, w0, sxtw #0] + strb w0, [x0, x0] + strb w0, [x0, xzr] + strb w0, [x0, x0, lsl #0] + strb w0, [x0, x0, sxtx] + strb w0, [x0, xzr, sxtx] + strb w0, [x0, x0, sxtx #0] + + ldrb w0, [x0, w0, uxtw] + ldrb wzr, [x0, w0, uxtw] + ldrb w0, [sp, w0, uxtw] + ldrb w0, [x0, wzr, uxtw] + ldrb w0, [x0, w0, uxtw #0] + ldrb w0, [x0, w0, sxtw] + ldrb w0, [x0, wzr, sxtw] + ldrb w0, [x0, w0, sxtw #0] + ldrb w0, [x0, x0] + ldrb w0, [x0, xzr] + ldrb w0, [x0, x0, lsl #0] + ldrb w0, [x0, x0, sxtx] + ldrb w0, [x0, xzr, sxtx] + ldrb w0, [x0, x0, sxtx #0] + + ldrsb x0, [x0, w0, uxtw] + ldrsb xzr, [x0, w0, uxtw] + ldrsb x0, [sp, w0, uxtw] + ldrsb x0, [x0, wzr, uxtw] + ldrsb x0, [x0, w0, uxtw #0] + ldrsb x0, [x0, w0, sxtw] + ldrsb x0, [x0, wzr, sxtw] + ldrsb x0, [x0, w0, sxtw #0] + ldrsb x0, [x0, x0] + ldrsb x0, [x0, xzr] + ldrsb x0, [x0, x0, lsl #0] + ldrsb x0, [x0, x0, sxtx] + ldrsb x0, [x0, xzr, sxtx] + ldrsb x0, [x0, x0, sxtx #0] + ldrsb w0, [x0, w0, uxtw] + ldrsb wzr, [x0, w0, uxtw] + ldrsb w0, [sp, w0, uxtw] + ldrsb w0, [x0, wzr, uxtw] + ldrsb w0, [x0, w0, uxtw #0] + ldrsb w0, [x0, w0, sxtw] + ldrsb w0, [x0, wzr, sxtw] + ldrsb w0, [x0, w0, sxtw #0] + ldrsb w0, [x0, x0] + ldrsb w0, [x0, xzr] + ldrsb w0, [x0, x0, lsl #0] + ldrsb w0, [x0, x0, sxtx] + ldrsb w0, [x0, xzr, sxtx] + ldrsb w0, [x0, x0, sxtx #0] + + strh w0, [x0, w0, uxtw] + strh wzr, [x0, w0, uxtw] + strh w0, [sp, w0, uxtw] + strh w0, [x0, wzr, uxtw] + strh w0, [x0, w0, uxtw #0] + strh w0, [x0, w0, uxtw #1] + strh w0, [x0, w0, sxtw] + strh w0, [x0, wzr, sxtw] + strh w0, [x0, w0, sxtw #0] + strh w0, [x0, w0, sxtw #1] + strh w0, [x0, x0] + strh w0, [x0, xzr] + strh w0, [x0, x0, lsl #0] + strh w0, [x0, x0, lsl #1] + strh w0, [x0, x0, sxtx] + strh w0, [x0, xzr, sxtx] + strh w0, [x0, x0, sxtx #0] + strh w0, [x0, x0, sxtx #1] + + ldrh w0, [x0, w0, uxtw] + ldrh wzr, [x0, w0, uxtw] + ldrh w0, [sp, w0, uxtw] + ldrh w0, [x0, wzr, uxtw] + ldrh w0, [x0, w0, uxtw #0] + ldrh w0, [x0, w0, uxtw #1] + ldrh w0, [x0, w0, sxtw] + ldrh w0, [x0, wzr, sxtw] + ldrh w0, [x0, w0, sxtw #0] + ldrh w0, [x0, w0, sxtw #1] + ldrh w0, [x0, x0] + ldrh w0, [x0, xzr] + ldrh w0, [x0, x0, lsl #0] + ldrh w0, [x0, x0, lsl #1] + ldrh w0, [x0, x0, sxtx] + ldrh w0, [x0, xzr, sxtx] + ldrh w0, [x0, x0, sxtx #0] + ldrh w0, [x0, x0, sxtx #1] + + ldrsh x0, [x0, w0, uxtw] + ldrsh xzr, [x0, w0, uxtw] + ldrsh x0, [sp, w0, uxtw] + ldrsh x0, [x0, wzr, uxtw] + ldrsh x0, [x0, w0, uxtw #0] + ldrsh x0, [x0, w0, uxtw #1] + ldrsh x0, [x0, w0, sxtw] + ldrsh x0, [x0, wzr, sxtw] + ldrsh x0, [x0, w0, sxtw #0] + ldrsh x0, [x0, w0, sxtw #1] + ldrsh x0, [x0, x0] + ldrsh x0, [x0, xzr] + ldrsh x0, [x0, x0, lsl #0] + ldrsh x0, [x0, x0, lsl #1] + ldrsh x0, [x0, x0, sxtx] + ldrsh x0, [x0, xzr, sxtx] + ldrsh x0, [x0, x0, sxtx #0] + ldrsh x0, [x0, x0, sxtx #1] + ldrsh w0, [x0, w0, uxtw] + ldrsh wzr, [x0, w0, uxtw] + ldrsh w0, [sp, w0, uxtw] + ldrsh w0, [x0, wzr, uxtw] + ldrsh w0, [x0, w0, uxtw #0] + ldrsh w0, [x0, w0, uxtw #1] + ldrsh w0, [x0, w0, sxtw] + ldrsh w0, [x0, wzr, sxtw] + ldrsh w0, [x0, w0, sxtw #0] + ldrsh w0, [x0, w0, sxtw #1] + ldrsh w0, [x0, x0] + ldrsh w0, [x0, xzr] + ldrsh w0, [x0, x0, lsl #0] + ldrsh w0, [x0, x0, lsl #1] + ldrsh w0, [x0, x0, sxtx] + ldrsh w0, [x0, xzr, sxtx] + ldrsh w0, [x0, x0, sxtx #0] + ldrsh w0, [x0, x0, sxtx #1] + + ldrsw x0, [x0, w0, uxtw] + ldrsw xzr, [x0, w0, uxtw] + ldrsw x0, [sp, w0, uxtw] + ldrsw x0, [x0, wzr, uxtw] + ldrsw x0, [x0, w0, uxtw #0] + ldrsw x0, [x0, w0, uxtw #2] + ldrsw x0, [x0, w0, sxtw] + ldrsw x0, [x0, wzr, sxtw] + ldrsw x0, [x0, w0, sxtw #0] + ldrsw x0, [x0, w0, sxtw #2] + ldrsw x0, [x0, x0] + ldrsw x0, [x0, xzr] + ldrsw x0, [x0, x0, lsl #0] + ldrsw x0, [x0, x0, lsl #2] + ldrsw x0, [x0, x0, sxtx] + ldrsw x0, [x0, xzr, sxtx] + ldrsw x0, [x0, x0, sxtx #0] + ldrsw x0, [x0, x0, sxtx #2] -- 2.39.5