diff options
author | Jens Remus <jremus@linux.ibm.com> | 2024-11-18 10:42:21 +0100 |
---|---|---|
committer | Jens Remus <jremus@linux.ibm.com> | 2024-11-18 10:42:21 +0100 |
commit | 76445f36a2f9e41b1744d0327e7ec243cb7fac12 (patch) | |
tree | 44de6a45947f39126d4e12e6e15afc73fc55ba74 /opcodes | |
parent | b0588b2173bf9aeff9eadc0cc024c4c69e69114d (diff) | |
download | binutils-76445f36a2f9e41b1744d0327e7ec243cb7fac12.zip binutils-76445f36a2f9e41b1744d0327e7ec243cb7fac12.tar.gz binutils-76445f36a2f9e41b1744d0327e7ec243cb7fac12.tar.bz2 |
s390: Add arch15 Concurrent-Functions Facility insns
opcodes/
* s390-opc.txt: Add arch15 Concurrent-Functions Facility
instructions.
* s390-opc.c (INSTR_SSF_RRDRD2, MASK_SSF_RRDRD2): New SSF
instruction format variant.
gas/testsuite/
* gas/s390/zarch-arch15.d: Tests for arch15 Concurrent-Functions
Facility instructions.
* gas/s390/zarch-arch15.s: Likewise.
Signed-off-by: Jens Remus <jremus@linux.ibm.com>
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/s390-opc.c | 2 | ||||
-rw-r--r-- | opcodes/s390-opc.txt | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/opcodes/s390-opc.c b/opcodes/s390-opc.c index 49efd71..23c1c3a 100644 --- a/opcodes/s390-opc.c +++ b/opcodes/s390-opc.c @@ -468,6 +468,7 @@ unused_s390_operands_static_asserts (void) #define INSTR_SS_RRRDRD2 6, { R_8,D_20,B_16,R_12,D_36,B_32 } /* e.g. plo */ #define INSTR_SS_RRRDRD3 6, { R_8,R_12,D_20,B_16,D_36,B_32 } /* e.g. lmd */ #define INSTR_SSF_RRDRD 6, { D_20,B_16,D_36,B_32,R_8,0 } /* e.g. mvcos */ +#define INSTR_SSF_RRDRD2 6, { R_8,D_20,B_16,D_36,B_32,0 } /* e.g. cal */ #define INSTR_SSF_RERDRD2 6, { RE_8,D_20,B_16,D_36,B_32,0 } /* e.g. lpd */ #define INSTR_S_00 4, { 0,0,0,0,0,0 } /* e.g. hsch */ #define INSTR_S_RD 4, { D_20,B_16,0,0,0,0 } /* e.g. stck */ @@ -700,6 +701,7 @@ unused_s390_operands_static_asserts (void) #define MASK_SS_RRRDRD2 { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 } #define MASK_SS_RRRDRD3 { 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 } #define MASK_SSF_RRDRD { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 } +#define MASK_SSF_RRDRD2 { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 } #define MASK_SSF_RERDRD2 { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 } #define MASK_S_00 { 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 } #define MASK_S_RD { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } diff --git a/opcodes/s390-opc.txt b/opcodes/s390-opc.txt index 82d6f06..68d8896 100644 --- a/opcodes/s390-opc.txt +++ b/opcodes/s390-opc.txt @@ -2190,3 +2190,11 @@ e6000000004a vcvdq VRI_VV0UU "vector convert to decimal 128 bit" arch15 zarch e6000000005f vtp VRR_0V0U "vector test decimal" arch15 zarch optparm e6000000007f vtz VRR_0VVU "vector test zoned" arch15 zarch + +# Concurrent-Functions Facility + +c806 cal SSF_RRDRD2 "compare and load 32" arch15 zarch +c807 calg SSF_RRDRD2 "compare and load 64" arch15 zarch +c80f calgf SSF_RRDRD2 "compare and load 64<32" arch15 zarch + +eb0000000016 pfcr RSY_RRRD "perform functions with concurrent results" arch15 zarch |