Browse Source
This commit adds 'Zicbom' / 'Zicboz' instructions. bfd/ChangeLog: * elfxx-riscv.c (riscv_multi_subset_supports): Add handling for new instruction classes. include/ChangeLog: * opcode/riscv-opc.h (MATCH_CBO_CLEAN, MASK_CBO_CLEAN, MATCH_CBO_FLUSH, MASK_CBO_FLUSH, MATCH_CBO_INVAL, MASK_CBO_INVAL, MATCH_CBO_ZERO, MASK_CBO_ZERO): New macros. * opcode/riscv.h (enum riscv_insn_class): Add new instruction classes INSN_CLASS_ZICBOM and INSN_CLASS_ZICBOZ. opcodes/ChangeLog: * riscv-opc.c (riscv_opcodes): Add cache-block management instructions.gdb-12-branch
committed by
Nelson Chu
14 changed files with 93 additions and 0 deletions
@ -0,0 +1,3 @@ |
|||
#as: -march=rv64g_zicbom |
|||
#source: zicbom-fail.s |
|||
#error_output: zicbom-fail.l |
|||
@ -0,0 +1,7 @@ |
|||
.*: Assembler messages: |
|||
.*: Error: illegal operands `cbo.clean 1\(x1\)' |
|||
.*: Error: illegal operands `cbo.clean x30' |
|||
.*: Error: illegal operands `cbo.flush \(0\+1\)\(x1\)' |
|||
.*: Error: illegal operands `cbo.flush x30' |
|||
.*: Error: illegal operands `cbo.inval 3\*2\+5\(x1\)' |
|||
.*: Error: illegal operands `cbo.inval x30' |
|||
@ -0,0 +1,7 @@ |
|||
target: |
|||
cbo.clean 1(x1) |
|||
cbo.clean x30 |
|||
cbo.flush (0+1)(x1) |
|||
cbo.flush x30 |
|||
cbo.inval 3*2+5(x1) |
|||
cbo.inval x30 |
|||
@ -0,0 +1,15 @@ |
|||
#as: -march=rv64g_zicbom |
|||
#source: zicbom.s |
|||
#objdump: -dr |
|||
|
|||
.*:[ ]+file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+000 <target>: |
|||
[ ]+[0-9a-f]+:[ ]+0010a00f[ ]+cbo\.clean[ ]+\(ra\) |
|||
[ ]+[0-9a-f]+:[ ]+001f200f[ ]+cbo\.clean[ ]+\(t5\) |
|||
[ ]+[0-9a-f]+:[ ]+0020a00f[ ]+cbo\.flush[ ]+\(ra\) |
|||
[ ]+[0-9a-f]+:[ ]+002f200f[ ]+cbo\.flush[ ]+\(t5\) |
|||
[ ]+[0-9a-f]+:[ ]+0000a00f[ ]+cbo\.inval[ ]+\(ra\) |
|||
[ ]+[0-9a-f]+:[ ]+000f200f[ ]+cbo\.inval[ ]+\(t5\) |
|||
@ -0,0 +1,7 @@ |
|||
target: |
|||
cbo.clean (x1) |
|||
cbo.clean 0(x30) |
|||
cbo.flush (x1) |
|||
cbo.flush (2-2)(x30) |
|||
cbo.inval (x1) |
|||
cbo.inval 3*4-12(x30) |
|||
@ -0,0 +1,3 @@ |
|||
#as: -march=rv64g_zicboz |
|||
#source: zicboz-fail.s |
|||
#error_output: zicboz-fail.l |
|||
@ -0,0 +1,5 @@ |
|||
.*: Assembler messages: |
|||
.*: Error: illegal operands `cbo.zero x1' |
|||
.*: Error: illegal operands `cbo.zero 1\(x30\)' |
|||
.*: Error: illegal operands `cbo.zero 3\+5\(x1\)' |
|||
.*: Error: illegal operands `cbo.zero \(2\*4\)\(x30\)' |
|||
@ -0,0 +1,5 @@ |
|||
target: |
|||
cbo.zero x1 |
|||
cbo.zero 1(x30) |
|||
cbo.zero 3+5(x1) |
|||
cbo.zero (2*4)(x30) |
|||
@ -0,0 +1,13 @@ |
|||
#as: -march=rv64g_zicboz |
|||
#source: zicboz.s |
|||
#objdump: -dr |
|||
|
|||
.*:[ ]+file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+000 <target>: |
|||
[ ]+[0-9a-f]+:[ ]+0040a00f[ ]+cbo\.zero[ ]+\(ra\) |
|||
[ ]+[0-9a-f]+:[ ]+004f200f[ ]+cbo\.zero[ ]+\(t5\) |
|||
[ ]+[0-9a-f]+:[ ]+0040a00f[ ]+cbo\.zero[ ]+\(ra\) |
|||
[ ]+[0-9a-f]+:[ ]+004f200f[ ]+cbo\.zero[ ]+\(t5\) |
|||
@ -0,0 +1,5 @@ |
|||
target: |
|||
cbo.zero 0(x1) |
|||
cbo.zero (x30) |
|||
cbo.zero 2-2(x1) |
|||
cbo.zero (3*5-15)(x30) |
|||
Loading…
Reference in new issue