From: Andreas A. <ar...@so...> - 2025-04-03 17:23:47
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=a2e2a414251633ad38942c3a9c3cdced68e871e0 commit a2e2a414251633ad38942c3a9c3cdced68e871e0 Author: Andreas Arnez <ar...@li...> Date: Thu Apr 3 19:07:32 2025 +0200 s390x: Reflect renaming of DFP insns in opcode checker After renaming various DFP instructions to their new name, reflect this in s390-check-opcodes.pl by ignoring their old names, so the checker doesn't complain about mismatches. Also, add the missing documentation in s390-opcodes.csv about the fact that the "with rounding mode" instruction versions cgdtra, cgxtra, and cxgtra are implemented. Diff: --- auxprogs/s390-check-opcodes.pl | 47 +++++++---------------------------------- docs/internals/s390-opcodes.csv | 3 +++ 2 files changed, 11 insertions(+), 39 deletions(-) diff --git a/auxprogs/s390-check-opcodes.pl b/auxprogs/s390-check-opcodes.pl index bd1abc8057..4e0d2c6ac1 100755 --- a/auxprogs/s390-check-opcodes.pl +++ b/auxprogs/s390-check-opcodes.pl @@ -55,12 +55,20 @@ my @extended_mnemonics = ( # Base mnemonic(s) "bi", # bic 'brul?', 'jc', # brc + 'cf[dex]br', # cf[dex]bra + 'cg[dex]br', # cg[dex]dbra + 'c[dex]fbr', # c[dex]fbra + 'c[dex]gbr', # c[dex]gbra + 'c[dx]gtr', # c[dx]gtra + 'cg[dx]tr', # cg[dx]tra 'jasl?', 'jct[gh]?', 'jg?nop', 'jxleg?', 'jxhg?', 'l[de]rv', + 'l[de]xbr', # l[de]xbra + 'ledbr', # ledbra 'lfi', # iilf 'llg[fh]i', # llilf, llill 'notg?r', # nork, nogrk @@ -215,25 +223,6 @@ while (my $line = <OPC>) { next if ($mnemonic eq "cuutf"); # alternate mnemonic for cu21 next if ($mnemonic eq "cutfu"); # alternate mnemonic for cu12 - next if ($mnemonic eq "cfdbra"); # indistinguishable from cfdbr - next if ($mnemonic eq "cfebra"); # indistinguishable from cfebr - next if ($mnemonic eq "cfxbra"); # indistinguishable from cfxbr - next if ($mnemonic eq "cgdbra"); # indistinguishable from cgdbr - next if ($mnemonic eq "cgebra"); # indistinguishable from cgebr - next if ($mnemonic eq "cgxbra"); # indistinguishable from cgxbr - next if ($mnemonic eq "cdfbra"); # indistinguishable from cdfbr - next if ($mnemonic eq "cefbra"); # indistinguishable from cefbr - next if ($mnemonic eq "cxfbra"); # indistinguishable from cxfbr - next if ($mnemonic eq "cdgbra"); # indistinguishable from cdgbr - next if ($mnemonic eq "cegbra"); # indistinguishable from cegbr - next if ($mnemonic eq "cxgbra"); # indistinguishable from cxgbr - next if ($mnemonic eq "ldxbra"); # indistinguishable from ldxbr - next if ($mnemonic eq "lexbra"); # indistinguishable from lexbr - next if ($mnemonic eq "ledbra"); # indistinguishable from ledbr - next if ($mnemonic eq "cdgtr"); # indistinguishable from cdgtra - next if ($mnemonic eq "cxgtra"); # indistinguishable from cxgtr - next if ($mnemonic eq "cgdtra"); # indistinguishable from cgdtr - next if ($mnemonic eq "cgxtra"); # indistinguishable from cgxtr next if ($mnemonic eq "fidbr"); # indistinguishable from fidbra next if ($mnemonic eq "fiebr"); # indistinguishable from fiebra next if ($mnemonic eq "fixbr"); # indistinguishable from fixbra @@ -293,26 +282,6 @@ while (my $line = <CSV>) { $mnemonic =~ s/"//g; $description =~ s/"//g; - next if ($mnemonic eq "cfdbra"); # indistinguishable from cfdbr - next if ($mnemonic eq "cfebra"); # indistinguishable from cfebr - next if ($mnemonic eq "cfxbra"); # indistinguishable from cfxbr - next if ($mnemonic eq "cgdbra"); # indistinguishable from cgdbr - next if ($mnemonic eq "cgebra"); # indistinguishable from cgebr - next if ($mnemonic eq "cgxbra"); # indistinguishable from cgxbr - next if ($mnemonic eq "cdfbra"); # indistinguishable from cdfbr - next if ($mnemonic eq "cefbra"); # indistinguishable from cefbr - next if ($mnemonic eq "cxfbra"); # indistinguishable from cxfbr - next if ($mnemonic eq "cegbra"); # indistinguishable from cegbr - next if ($mnemonic eq "cdgbra"); # indistinguishable from cdgbr - next if ($mnemonic eq "cegbra"); # indistinguishable from cegbr - next if ($mnemonic eq "cxgbra"); # indistinguishable from cxgbr - next if ($mnemonic eq "ldxbra"); # indistinguishable from ldxbr - next if ($mnemonic eq "lexbra"); # indistinguishable from lexbr - next if ($mnemonic eq "ledbra"); # indistinguishable from ledbr - next if ($mnemonic eq "cdgtr"); # indistinguishable from cdgtra - next if ($mnemonic eq "cxgtra"); # indistinguishable from cxgtr - next if ($mnemonic eq "cgdtra"); # indistinguishable from cgdtr - next if ($mnemonic eq "cgxtra"); # indistinguishable from cgxtr next if ($mnemonic eq "fidbr"); # indistinguishable from fidbra next if ($mnemonic eq "fiebr"); # indistinguishable from fiebra next if ($mnemonic eq "fixbr"); # indistinguishable from fixbra diff --git a/docs/internals/s390-opcodes.csv b/docs/internals/s390-opcodes.csv index 931d8987cb..1d4afb75bb 100644 --- a/docs/internals/s390-opcodes.csv +++ b/docs/internals/s390-opcodes.csv @@ -950,6 +950,9 @@ clgdtr,"convert to 64 bit fixed logical from long dfp with rounding mode",implem clgxtr,"convert to 64 bit fixed logical from extended dfp with rounding mode",implemented clfdtr,"convert to 32 bit fixed logical from long dfp with rounding mode",implemented clfxtr,"convert to 32 bit fixed logical from extended dfp with rounding mode",implemented +cgdtra,"convert to 64 bit fixed from long dfp with rounding mode",implemented +cgxtra,"convert to 64 bit fixed from extended dfp with rounding mode",implemented +cxgtra,"convert from fixed extended dfp with rounding mode",implemented ddtra,"divide long dfp with rounding mode",implemented dxtra,"divide extended dfp with rounding mode",implemented mdtra,"multiply long dfp with rounding mode",implemented |