--- tme/ic/m68k/m68k-opmap-make.pl 2018/04/24 16:40:25 1.1.1.3 +++ tme/ic/m68k/m68k-opmap-make.pl 2018/04/24 16:41:59 1.1.1.4 @@ -1,6 +1,6 @@ #! /usr/local/bin/perl -w -# $Id: m68k-opmap-make.pl,v 1.1.1.3 2018/04/24 16:40:25 root Exp $ +# $Id: m68k-opmap-make.pl,v 1.1.1.4 2018/04/24 16:41:59 root Exp $ # m68k-opmap-make.pl - compiles the complete decoding of all legal # first-instruction-word values into the opcode map used by the C @@ -191,7 +191,8 @@ for ($line = 1; defined($_ = ); $ # this function to a special function "movenonmemtomem": if ($map_eax_size[$pattern] eq "U") { die "$PROG: pattern ".sprintf("%b", $pattern)." ($map_func[$pattern]) uses the eay path\n" - if ($map_func[$pattern] !~ /^(move)(\d+)$/); + if ($map_func[$pattern] !~ /^(move)(\d+)$/ + && $map_func[$pattern] !~ /^(move_srp[id])(\d+)$/); $map_func[$pattern] = $1."nonmemtomem".$2; $map_eax_size[$pattern] = $map_eay_size[$pattern]; $map_eax_cycles[$pattern] = $map_eay_cycles[$pattern]; @@ -256,8 +257,8 @@ for ($line = 1; defined($_ = ); $ 'TME_M68K_OPCODE_EA_Y', 'TME_M68K_OPCODE_SPECOP'); } - elsif ($func =~ /^movenonmemtomem(\d+)$/) { - $func = "move${1}"; + elsif ($func =~ /^(move.*)nonmemtomem(\d+)$/) { + $func = "${1}${2}"; push (@params, 'TME_M68K_OPCODE_EA_Y'); }