From: Andreas Arnez Date: Thu, 3 Apr 2025 17:07:32 +0000 (+0200) Subject: s390x: Reflect renaming of DFP insns in opcode checker X-Git-Tag: VALGRIND_3_25_0~60 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a2e2a414251633ad38942c3a9c3cdced68e871e0;p=thirdparty%2Fvalgrind.git 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 --git a/auxprogs/s390-check-opcodes.pl b/auxprogs/s390-check-opcodes.pl index bd1abc805..4e0d2c6ac 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 = ) { 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 = ) { $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 931d8987c..1d4afb75b 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