diff options
252 files changed, 10825 insertions, 6737 deletions
diff --git a/bfd/configure b/bfd/configure index f69df12..504ff0c 100755 --- a/bfd/configure +++ b/bfd/configure @@ -14558,287 +14558,6 @@ $as_echo "$LINGUAS" >&6; } fi - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - rm -f messages.po - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; } - GMSGFMT=":" - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - rm -f messages.po - fi - - ac_config_commands="$ac_config_commands default-2" - - - # Permit host specific settings. . ${srcdir}/configure.host @@ -18488,13 +18207,6 @@ fi # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - _ACEOF @@ -18509,7 +18221,6 @@ do "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "bfd-in3.h") CONFIG_FILES="$CONFIG_FILES bfd-in3.h:bfd-in2.h" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;; @@ -19942,107 +19653,6 @@ _LT_EOF ;; esac done ;; - "default-2":C) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.ac is obsolete" || echo "setting ALL_LINGUAS in configure.ac is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.ac. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; "default":C) case "$srcdir" in .) srcdirpre= ;; diff --git a/bfd/configure.ac b/bfd/configure.ac index e9942d2..5879a04 100644 --- a/bfd/configure.ac +++ b/bfd/configure.ac @@ -207,8 +207,8 @@ bfd_default_target_size=32 # host stuff: ALL_LINGUAS="da es fi fr hr id ja ro ru rw sr sv tr uk vi zh_CN pt" -ZW_GNU_GETTEXT_SISTER_DIR AM_PO_SUBDIRS +ZW_GNU_GETTEXT_SISTER_DIR # Permit host specific settings. . ${srcdir}/configure.host diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c index 0250a8f..dc0d2e0 100644 --- a/bfd/elf-eh-frame.c +++ b/bfd/elf-eh-frame.c @@ -802,6 +802,9 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info, switch (*aug++) { case 'B': + case 'G': + if (abfd->arch_info->arch != bfd_arch_aarch64) + goto unrecognized; break; case 'L': REQUIRE (read_byte (&buf, end, &cie->lsda_encoding)); @@ -843,6 +846,7 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info, REQUIRE (skip_bytes (&buf, end, per_width)); } break; + unrecognized: default: /* Unrecognized augmentation. Better bail out. */ goto free_no_table; diff --git a/bfd/elf-sframe.c b/bfd/elf-sframe.c index d74235b..b709e59 100644 --- a/bfd/elf-sframe.c +++ b/bfd/elf-sframe.c @@ -191,6 +191,18 @@ _bfd_elf_parse_sframe (bfd *abfd, bfd_size_type sf_size; int decerr = 0; + /* Prior versions of assembler and ld were generating SFrame sections with + section type SHT_PROGBITS. Issue an error for lack of support for such + objects now. Even if section size is zero, a valid section type is + expected. */ + if (elf_section_type (sec) != SHT_GNU_SFRAME) + { + _bfd_error_handler + (_("error in %pB(%pA); unexpected SFrame section type"), + abfd, sec); + return false; + } + if (sec->size == 0 || (sec->flags & SEC_HAS_CONTENTS) == 0 || sec->sec_info_type != SEC_INFO_TYPE_NONE) @@ -298,8 +310,7 @@ _bfd_elf_discard_section_sframe BFD ABFD. Returns true if no error. */ bool -_bfd_elf_set_section_sframe (bfd *abfd, - struct bfd_link_info *info) +_bfd_elf_set_section_sframe (bfd *abfd, struct bfd_link_info *info) { asection *cfsec; @@ -307,6 +318,7 @@ _bfd_elf_set_section_sframe (bfd *abfd, if (!cfsec) return false; + elf_section_type (cfsec) = SHT_GNU_SFRAME; elf_sframe (abfd) = cfsec; return true; @@ -2476,6 +2476,7 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex) case SHT_PREINIT_ARRAY: /* .preinit_array section. */ case SHT_GNU_LIBLIST: /* .gnu.liblist section. */ case SHT_GNU_HASH: /* .gnu.hash section. */ + case SHT_GNU_SFRAME: /* .sframe section. */ ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex); goto success; diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index 6fe93a8..5871fb7 100644 --- a/bfd/elf32-mips.c +++ b/bfd/elf32-mips.c @@ -618,7 +618,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS_TLS_DTPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -633,7 +633,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS_TLS_DTPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -680,7 +680,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS_TLS_TPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -695,7 +695,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS_TLS_TPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -789,7 +789,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = true, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS_PCHI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -803,7 +803,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = true, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS_PCLO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -961,7 +961,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS16_TLS_DTPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -976,7 +976,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS16_TLS_DTPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1006,7 +1006,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS16_TLS_TPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1021,7 +1021,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS16_TLS_TPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1444,7 +1444,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MICROMIPS_TLS_DTPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1459,7 +1459,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MICROMIPS_TLS_DTPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1492,7 +1492,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MICROMIPS_TLS_TPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1507,7 +1507,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MICROMIPS_TLS_TPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c index 5b55210..f031dfd 100644 --- a/bfd/elf64-mips.c +++ b/bfd/elf64-mips.c @@ -697,7 +697,7 @@ static reloc_howto_type mips_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS_TLS_DTPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -712,7 +712,7 @@ static reloc_howto_type mips_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS_TLS_DTPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -759,7 +759,7 @@ static reloc_howto_type mips_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS_TLS_TPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -774,7 +774,7 @@ static reloc_howto_type mips_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS_TLS_TPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -868,7 +868,7 @@ static reloc_howto_type mips_elf64_howto_table_rel[] = true, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS_PCHI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -882,7 +882,7 @@ static reloc_howto_type mips_elf64_howto_table_rel[] = true, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS_PCLO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1805,7 +1805,7 @@ static reloc_howto_type mips16_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS16_TLS_DTPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1820,7 +1820,7 @@ static reloc_howto_type mips16_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS16_TLS_DTPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1850,7 +1850,7 @@ static reloc_howto_type mips16_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS16_TLS_TPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1865,7 +1865,7 @@ static reloc_howto_type mips16_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS16_TLS_TPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -2481,7 +2481,7 @@ static reloc_howto_type micromips_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MICROMIPS_TLS_DTPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -2496,7 +2496,7 @@ static reloc_howto_type micromips_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MICROMIPS_TLS_DTPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -2529,7 +2529,7 @@ static reloc_howto_type micromips_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MICROMIPS_TLS_TPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -2544,7 +2544,7 @@ static reloc_howto_type micromips_elf64_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MICROMIPS_TLS_TPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c index e758d08..d801848 100644 --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -27,6 +27,8 @@ #include "elf/s390.h" #include "elf-s390.h" #include "dwarf2.h" +#include "sframe.h" +#include "sframe-api.h" #include <stdarg.h> /* In case we're on a 32-bit machine, construct a 64-bit "-1" value @@ -594,6 +596,49 @@ static const bfd_byte elf_s390x_eh_frame_plt[] = DW_CFA_nop, DW_CFA_nop, DW_CFA_nop }; +/* .sframe covering the .plt section. */ + +/* This must be the same as sframe_get_hdr_size (sfh). For s390x, this value + is the same as sizeof (sframe_header) because there is no SFrame auxilliary + header. */ +#define PLT_SFRAME_FDE_START_OFFSET sizeof (sframe_header) + +#define SFRAME_PLT0_MAX_NUM_FRES 1 +#define SFRAME_PLTN_MAX_NUM_FRES 1 + +struct elf_s390x_sframe_plt +{ + unsigned int plt0_entry_size; + unsigned int plt0_num_fres; + const sframe_frame_row_entry *plt0_fres[SFRAME_PLT0_MAX_NUM_FRES]; + + unsigned int pltn_entry_size; + unsigned int pltn_num_fres; + const sframe_frame_row_entry *pltn_fres[SFRAME_PLTN_MAX_NUM_FRES]; +}; + +/* .sframe FRE covering the PLT0/PLTn .plt section entry. */ +static const sframe_frame_row_entry elf_s390x_sframe_plt_fre = +{ + 0, /* SFrame FRE start address. */ + { SFRAME_V2_S390X_CFA_OFFSET_ENCODE (160), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* Offset bytes. */ + SFRAME_V1_FRE_INFO (SFRAME_BASE_REG_SP, 1, SFRAME_FRE_OFFSET_1B) /* FRE info. */ +}; + +/* SFrame helper object for PLT. */ +static const struct elf_s390x_sframe_plt elf_s390x_sframe_plt = +{ + PLT_FIRST_ENTRY_SIZE, + 1, /* Number of FREs for PLT0. */ + /* Array of SFrame FREs for PLT0. */ + { &elf_s390x_sframe_plt_fre }, + + PLT_ENTRY_SIZE, + 1, /* Number of FREs for PLTn. */ + /* Array of SFrame FREs for PLTn. */ + { &elf_s390x_sframe_plt_fre }, +}; + /* s390 ELF linker hash entry. */ @@ -688,6 +733,11 @@ struct elf_s390_link_hash_table asection *irelifunc; asection *plt_eh_frame; + sframe_encoder_ctx *plt_cfe_ctx; + asection *plt_sframe; + /* The .sframe helper object for .plt section. */ + const struct elf_s390x_sframe_plt *sframe_plt; + union { bfd_signed_vma refcount; bfd_vma offset; @@ -1513,6 +1563,137 @@ elf_s390_adjust_dynamic_symbol (struct bfd_link_info *info, return _bfd_elf_adjust_dynamic_copy (info, h, s); } +/* Create SFrame stack trace info for the PLT entries in the .plt section. */ + +static bool +_bfd_s390_elf_create_sframe_plt (struct bfd_link_info *info) +{ + struct elf_s390_link_hash_table *htab; + + unsigned int plt0_entry_size; + unsigned char func_info; + uint32_t fre_type; + /* The dynamic plt section for which .sframe stack trace information is being + created. */ + asection *dpltsec; + + int err = 0; + + sframe_encoder_ctx **ectx = NULL; + unsigned plt_entry_size = 0; + unsigned int num_pltn_fres = 0; + unsigned int num_pltn_entries = 0; + const sframe_frame_row_entry * const *pltn_fres; + + htab = elf_s390_hash_table (info); + ectx = &htab->plt_cfe_ctx; + dpltsec = htab->elf.splt; + + plt0_entry_size = htab->sframe_plt->plt0_entry_size; + plt_entry_size = htab->sframe_plt->pltn_entry_size; + pltn_fres = htab->sframe_plt->pltn_fres; + num_pltn_fres = htab->sframe_plt->pltn_num_fres; + num_pltn_entries = (dpltsec->size - plt0_entry_size) / plt_entry_size; + + *ectx = sframe_encode (SFRAME_VERSION_2, + SFRAME_F_FDE_FUNC_START_PCREL, + SFRAME_ABI_S390X_ENDIAN_BIG, + SFRAME_CFA_FIXED_FP_INVALID, + SFRAME_CFA_FIXED_RA_INVALID, + &err); + + /* FRE type is dependent on the size of the function. */ + fre_type = sframe_calc_fre_type (dpltsec->size); + func_info = sframe_fde_create_func_info (fre_type, SFRAME_FDE_TYPE_PCINC); + + /* Add SFrame FDE and the associated FREs for PLT0 if PLT0 has been + generated. */ + if (plt0_entry_size) + { + /* Add SFrame FDE for PLT0, the function start address is updated later + at _bfd_elf_merge_section_sframe time. */ + sframe_encoder_add_funcdesc_v2 (*ectx, + 0, /* func start addr. */ + plt0_entry_size, + func_info, + 0, /* Rep block size. */ + 0 /* Num FREs. */); + sframe_frame_row_entry plt0_fre; + unsigned int num_plt0_fres = htab->sframe_plt->plt0_num_fres; + for (unsigned int j = 0; j < num_plt0_fres; j++) + { + plt0_fre = *(htab->sframe_plt->plt0_fres[j]); + sframe_encoder_add_fre (*ectx, 0, &plt0_fre); + } + } + + if (num_pltn_entries) + { + /* PLTn entries use an SFrame FDE of type + SFRAME_FDE_TYPE_PCMASK to exploit the repetitive + pattern of the instructions in these entries. Using this SFrame FDE + type helps in keeping the SFrame stack trace info for PLTn entries + compact. */ + func_info = sframe_fde_create_func_info (fre_type, + SFRAME_FDE_TYPE_PCMASK); + /* Add the SFrame FDE for all PCs starting at the first PLTn entry (hence, + function start address = plt0_entry_size. As usual, this will be + updated later at _bfd_elf_merge_section_sframe, by when the + sections are relocated. */ + sframe_encoder_add_funcdesc_v2 (*ectx, + plt0_entry_size, /* func start addr. */ + dpltsec->size - plt0_entry_size, + func_info, + plt_entry_size, + 0 /* Num FREs. */); + + sframe_frame_row_entry pltn_fre; + /* Now add the FREs for PLTn. Simply adding the FREs suffices due + to the usage of SFRAME_FDE_TYPE_PCMASK above. */ + for (unsigned int j = 0; j < num_pltn_fres; j++) + { + unsigned int func_idx = plt0_entry_size ? 1 : 0; + pltn_fre = *(pltn_fres[j]); + sframe_encoder_add_fre (*ectx, func_idx, &pltn_fre); + } + } + + return true; +} + +/* Write contents of the .sframe section. */ + +static bool +_bfd_s390_elf_write_sframe_plt (struct bfd_link_info *info) +{ + struct elf_s390_link_hash_table *htab; + sframe_encoder_ctx *ectx; + size_t sec_size; + asection *sec; + bfd *dynobj; + + int err = 0; + + htab = elf_s390_hash_table (info); + dynobj = htab->elf.dynobj; + + ectx = htab->plt_cfe_ctx; + sec = htab->plt_sframe; + + BFD_ASSERT (ectx); + + void *contents = sframe_encoder_write (ectx, &sec_size, &err); + + sec->size = (bfd_size_type) sec_size; + sec->contents = (unsigned char *) bfd_zalloc (dynobj, sec->size); + sec->alloced = 1; + memcpy (sec->contents, contents, sec_size); + + sframe_encoder_free (&ectx); + + return true; +} + /* Allocate space in .plt, .got and associated reloc sections for dynamic relocs. */ @@ -1892,6 +2073,25 @@ elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, htab->plt_eh_frame->size = sizeof (elf_s390x_eh_frame_plt); } + /* No need to size the .sframe section explicitly because the write-out + mechanism is different. Simply prep up the FDE/FRE for the + .plt section. */ + if (_bfd_elf_sframe_present (info)) + { + if (htab->plt_sframe != NULL + && htab->elf.splt != NULL + && htab->elf.splt->size != 0 + && !bfd_is_abs_section (htab->elf.splt->output_section)) + { + _bfd_s390_elf_create_sframe_plt (info); + /* FIXME - Dirty Hack. Set the size to something non-zero for now, + so that the section does not get stripped out below. The precise + size of this section is known only when the contents are + serialized in _bfd_s390x_elf_write_sframe_plt. */ + htab->plt_sframe->size = sizeof (sframe_header) + 1; + } + } + /* We now have determined the sizes of the various dynamic sections. Allocate memory for them. */ relocs = false; @@ -1904,6 +2104,7 @@ elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, || s == htab->elf.sgot || s == htab->elf.sgotplt || s == htab->plt_eh_frame + || s == htab->plt_sframe || s == htab->elf.sdynbss || s == htab->elf.sdynrelro || s == htab->elf.iplt @@ -1960,6 +2161,11 @@ elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, if ((s->flags & SEC_HAS_CONTENTS) == 0) continue; + /* Skip allocating contents for .sframe section as it is written + out differently. See below. */ + if (s == htab->plt_sframe) + continue; + /* Allocate memory for the section contents. We use bfd_zalloc here in case unused entries are not reclaimed before the section's contents are written out. This should not happen, @@ -1981,6 +2187,15 @@ elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, htab->plt_eh_frame->contents + PLT_FDE_LEN_OFFSET); } + if (_bfd_elf_sframe_present (info)) + { + if (htab->plt_sframe != NULL + && htab->elf.splt != NULL + && htab->elf.splt->size != 0 + && htab->plt_sframe->contents == NULL) + _bfd_s390_elf_write_sframe_plt (info); + } + return _bfd_elf_add_dynamic_tags (output_bfd, info, relocs); } @@ -3781,6 +3996,34 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd, } } + /* Make any adjustment if necessary and merge .sframe section to + create the final .sframe section for output_bfd. */ + if (htab->plt_sframe != NULL + && htab->plt_sframe->contents != NULL) + { + if (htab->elf.splt != NULL + && htab->elf.splt->size != 0 + && (htab->elf.splt->flags & SEC_EXCLUDE) == 0 + && htab->elf.splt->output_section != NULL + && htab->plt_sframe->output_section != NULL) + { + bfd_vma plt_start = htab->elf.splt->output_section->vma; + bfd_vma sframe_start = htab->plt_sframe->output_section->vma + + htab->plt_sframe->output_offset + + PLT_SFRAME_FDE_START_OFFSET; + bfd_put_signed_32 (dynobj, plt_start - sframe_start, + htab->plt_sframe->contents + + PLT_SFRAME_FDE_START_OFFSET); + } + if (htab->plt_sframe->sec_info_type == SEC_INFO_TYPE_SFRAME) + { + if (! _bfd_elf_merge_section_sframe (output_bfd, info, + htab->plt_sframe, + htab->plt_sframe->contents)) + return false; + } + } + return true; } @@ -4021,6 +4264,8 @@ elf_s390_create_dynamic_sections (bfd *dynobj, if (htab == NULL) return false; + htab->sframe_plt = &elf_s390x_sframe_plt; + if (htab->elf.splt != NULL) { /* Create .eh_frame section for .plt section. */ @@ -4041,6 +4286,20 @@ elf_s390_create_dynamic_sections (bfd *dynobj, return false; } } + + /* Create .sframe section for .plt section. */ + if (!info->no_ld_generated_unwind_info) + { + flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY + | SEC_HAS_CONTENTS | SEC_IN_MEMORY + | SEC_LINKER_CREATED); + + htab->plt_sframe = bfd_make_section_anyway_with_flags (dynobj, + ".sframe", + flags); + if (htab->plt_sframe == NULL) + return false; + } } return true; diff --git a/bfd/elflink.c b/bfd/elflink.c index 666399b..c4f57cf 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -11293,7 +11293,7 @@ _bfd_elf_default_action_discarded (asection *sec) && strncmp (sec->name, ".eh_frame.", 10) == 0) return 0; - if (strcmp (".sframe", sec->name) == 0) + if (elf_section_type (sec) == SHT_GNU_SFRAME) return 0; if (strcmp (".gcc_except_table", sec->name) == 0) diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c index e457bfc..07e222c 100644 --- a/bfd/elfn32-mips.c +++ b/bfd/elfn32-mips.c @@ -676,7 +676,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS_TLS_DTPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -691,7 +691,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS_TLS_DTPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -738,7 +738,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS_TLS_TPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -753,7 +753,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS_TLS_TPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -847,7 +847,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = true, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS_PCHI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -861,7 +861,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] = true, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS_PCLO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1785,7 +1785,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS16_TLS_DTPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1800,7 +1800,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS16_TLS_DTPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1830,7 +1830,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MIPS16_TLS_TPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -1845,7 +1845,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MIPS16_TLS_TPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -2461,7 +2461,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MICROMIPS_TLS_DTPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -2476,7 +2476,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MICROMIPS_TLS_DTPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -2509,7 +2509,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_hi16_reloc, /* special_function */ "R_MICROMIPS_TLS_TPREL_HI16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ @@ -2524,7 +2524,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] = false, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ - _bfd_mips_elf_generic_reloc, /* special_function */ + _bfd_mips_elf_lo16_reloc, /* special_function */ "R_MICROMIPS_TLS_TPREL_LO16", /* name */ true, /* partial_inplace */ 0x0000ffff, /* src_mask */ diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index 8f39920..9e98215d 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -2622,6 +2622,9 @@ struct elf_aarch64_link_hash_table /* Don't apply link-time values for dynamic relocations. */ int no_apply_dynamic_relocs; + /* Memtag Extension mode of operation. */ + aarch64_memtag_opts memtag_opts; + /* The number of bytes in the initial entry in the PLT. */ bfd_size_type plt_header_size; @@ -5009,13 +5012,15 @@ bfd_elfNN_aarch64_set_options (struct bfd *output_bfd, int fix_erratum_835769, erratum_84319_opts fix_erratum_843419, int no_apply_dynamic_relocs, - const aarch64_protection_opts *sw_protections) + const aarch64_protection_opts *sw_protections, + const aarch64_memtag_opts *memtag_opts) { struct elf_aarch64_link_hash_table *globals; globals = elf_aarch64_hash_table (link_info); globals->pic_veneer = pic_veneer; globals->fix_erratum_835769 = fix_erratum_835769; + globals->memtag_opts = *memtag_opts; /* If the default options are used, then ERRAT_ADR will be set by default which will enable the ADRP->ADR workaround for the erratum 843419 workaround. */ @@ -9775,7 +9780,20 @@ elfNN_aarch64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, && !add_dynamic_entry (DT_AARCH64_PAC_PLT, 0)) return false; } + + if (is_aarch64_elf (output_bfd) + && htab->memtag_opts.memtag_mode != AARCH64_MEMTAG_MODE_NONE + && !add_dynamic_entry (DT_AARCH64_MEMTAG_MODE, + htab->memtag_opts.memtag_mode == AARCH64_MEMTAG_MODE_ASYNC)) + return false; + + if (is_aarch64_elf (output_bfd) + && htab->memtag_opts.memtag_stack == 1 + && !add_dynamic_entry (DT_AARCH64_MEMTAG_STACK, + htab->memtag_opts.memtag_stack == 1)) + return false; } + #undef add_dynamic_entry return true; diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c index c75f520..46fafb3 100644 --- a/bfd/elfnn-loongarch.c +++ b/bfd/elfnn-loongarch.c @@ -5374,22 +5374,17 @@ loongarch_relax_pcala_addi (bfd *abfd, asection *sec, asection *sym_sec, symval = sec_addr (sec) + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec)); - /* If pc and symbol not in the same segment, add/sub segment alignment if the - section has not undergone alignment processing because distances may grow - after alignment. */ - if (!loongarch_sec_closed_for_deletion (sec)) - { - if (!loongarch_two_sections_in_same_segment (info->output_bfd, - sec->output_section, - sym_sec->output_section)) - max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize - : max_alignment; - - if (symval > pc) - pc -= (max_alignment > 4 ? max_alignment : 0); - else if (symval < pc) - pc += (max_alignment > 4 ? max_alignment : 0); - } + /* If pc and symbol not in the same segment, add/sub segment alignment. */ + if (!loongarch_two_sections_in_same_segment (info->output_bfd, + sec->output_section, + sym_sec->output_section)) + max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize + : max_alignment; + + if (symval > pc) + pc -= (max_alignment > 4 ? max_alignment : 0); + else if (symval < pc) + pc += (max_alignment > 4 ? max_alignment : 0); const uint32_t pcaddi = LARCH_OP_PCADDI; @@ -5444,22 +5439,17 @@ loongarch_relax_call36 (bfd *abfd, asection *sec, asection *sym_sec, symval = sec_addr (sec) + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec)); - /* If pc and symbol not in the same segment, add/sub segment alignment if the - section has not undergone alignment processing because distances may grow - after alignment. */ - if (!loongarch_sec_closed_for_deletion (sec)) - { - if (!loongarch_two_sections_in_same_segment (info->output_bfd, - sec->output_section, - sym_sec->output_section)) - max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize - : max_alignment; - - if (symval > pc) - pc -= (max_alignment > 4 ? max_alignment : 0); - else if (symval < pc) - pc += (max_alignment > 4 ? max_alignment : 0); - } + /* If pc and symbol not in the same segment, add/sub segment alignment. */ + if (!loongarch_two_sections_in_same_segment (info->output_bfd, + sec->output_section, + sym_sec->output_section)) + max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize + : max_alignment; + + if (symval > pc) + pc -= (max_alignment > 4 ? max_alignment : 0); + else if (symval < pc) + pc += (max_alignment > 4 ? max_alignment : 0); /* Is pcalau12i + addi.d insns? */ if (!LARCH_INSN_JIRL (jirl) @@ -5513,22 +5503,17 @@ loongarch_relax_pcala_ld (bfd *abfd, asection *sec, symval = sec_addr (sec) + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec)); - /* If pc and symbol not in the same segment, add/sub segment alignment if the - section has not undergone alignment processing because distances may grow - after alignment. */ - if (!loongarch_sec_closed_for_deletion (sec)) - { - if (!loongarch_two_sections_in_same_segment (info->output_bfd, - sec->output_section, - sym_sec->output_section)) - max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize - : max_alignment; - - if (symval > pc) - pc -= (max_alignment > 4 ? max_alignment : 0); - else if (symval < pc) - pc += (max_alignment > 4 ? max_alignment : 0); - } + /* If pc and symbol not in the same segment, add/sub segment alignment. */ + if (!loongarch_two_sections_in_same_segment (info->output_bfd, + sec->output_section, + sym_sec->output_section)) + max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize + : max_alignment; + + if (symval > pc) + pc -= (max_alignment > 4 ? max_alignment : 0); + else if (symval < pc) + pc += (max_alignment > 4 ? max_alignment : 0); if ((ELFNN_R_TYPE (rel_lo->r_info) != R_LARCH_GOT_PC_LO12) || (LARCH_GET_RD (ld) != rd) @@ -5651,22 +5636,17 @@ loongarch_relax_tls_ld_gd_desc (bfd *abfd, asection *sec, asection *sym_sec, symval = sec_addr (sec) + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec)); - /* If pc and symbol not in the same segment, add/sub segment alignment if the - section has not undergone alignment processing because distances may grow - after alignment. */ - if (!loongarch_sec_closed_for_deletion (sec)) - { - if (!loongarch_two_sections_in_same_segment (info->output_bfd, - sec->output_section, - sym_sec->output_section)) - max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize - : max_alignment; - - if (symval > pc) - pc -= (max_alignment > 4 ? max_alignment : 0); - else if (symval < pc) - pc += (max_alignment > 4 ? max_alignment : 0); - } + /* If pc and symbol not in the same segment, add/sub segment alignment. */ + if (!loongarch_two_sections_in_same_segment (info->output_bfd, + sec->output_section, + sym_sec->output_section)) + max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize + : max_alignment; + + if (symval > pc) + pc -= (max_alignment > 4 ? max_alignment : 0); + else if (symval < pc) + pc += (max_alignment > 4 ? max_alignment : 0); const uint32_t pcaddi = LARCH_OP_PCADDI; diff --git a/bfd/elfxx-aarch64.h b/bfd/elfxx-aarch64.h index 506f4a9..bd3642c 100644 --- a/bfd/elfxx-aarch64.h +++ b/bfd/elfxx-aarch64.h @@ -129,13 +129,38 @@ typedef enum ERRAT_ADRP = (1 << 2), /* Erratum workarounds using ADRP are allowed. */ } erratum_84319_opts; +/* An enum to define the various modes of MTE operation. + At this time, except AARCH64_MEMTAG_MODE_NONE, the enumerator constants are + the same as specified in the Memtag ABI Extension to ELF for the Arm 64-bit + Architecture (AArch64) document (the intent being that this keeps the + emission of the associated dynamic tag simple).*/ +typedef enum +{ + AARCH64_MEMTAG_MODE_SYNC = 0, + AARCH64_MEMTAG_MODE_ASYNC = 1, + AARCH64_MEMTAG_MODE_NONE = 2, +} aarch64_memtag_mode_type; + +/* A structure to encompass all information about memtag feature related + command line options. */ +struct aarch64_memtag_opts +{ + /* Mode of MTE operation. */ + aarch64_memtag_mode_type memtag_mode; + + /* Whether stack accesses use MTE insns. */ + unsigned int memtag_stack; +}; + +typedef struct aarch64_memtag_opts aarch64_memtag_opts; + extern void bfd_elf64_aarch64_set_options (bfd *, struct bfd_link_info *, int, int, int, int, erratum_84319_opts, int, - const aarch64_protection_opts *); + const aarch64_protection_opts *, const aarch64_memtag_opts *); extern void bfd_elf32_aarch64_set_options (bfd *, struct bfd_link_info *, int, int, int, int, erratum_84319_opts, int, - const aarch64_protection_opts *); + const aarch64_protection_opts *, const aarch64_memtag_opts *); /* AArch64 stub generation support for ELF64. Called from the linker. */ extern int elf64_aarch64_setup_section_lists diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 530e8d6..3c38f51 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -2294,6 +2294,17 @@ lo16_reloc_p (int r_type) } static inline bool +tls_hi16_reloc_p (int r_type) +{ + return (r_type == R_MIPS_TLS_DTPREL_HI16 + || r_type == R_MIPS_TLS_TPREL_HI16 + || r_type == R_MIPS16_TLS_DTPREL_HI16 + || r_type == R_MIPS16_TLS_TPREL_HI16 + || r_type == R_MICROMIPS_TLS_DTPREL_HI16 + || r_type == R_MICROMIPS_TLS_TPREL_HI16); +} + +static inline bool mips16_call_reloc_p (int r_type) { return r_type == R_MIPS16_26 || r_type == R_MIPS16_CALL16; @@ -2600,20 +2611,22 @@ _bfd_mips_elf_lo16_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, extended. For example, an addend of 0x38000 would have 0x0004 in the high part and 0x8000 (=0xff..f8000) in the low part. To extract the actual addend, calculate - ((hi & 0xffff) << 16) + ((lo & 0xffff) ^ 0x8000) - 0x8000. - We will be applying (symbol + addend) & 0xffff to the low insn, - and we want to apply (symbol + addend + 0x8000) >> 16 to the - high insn (the +0x8000 adjusting for when the applied low part is - negative). */ - vallo = ((bfd_get_32 (abfd, location) & 0xffff) ^ 0x8000) - 0x8000; + ((hi & 0xffff) << 16) + ((lo & 0xffff) ^ 0x8000) - 0x8000. */ + vallo = _bfd_mips_elf_sign_extend (bfd_get_32 (abfd, location) & 0xffff, 16); _bfd_mips_elf_reloc_shuffle (abfd, reloc_entry->howto->type, false, location); + /* Add in the separate addend, if any. Since we are REL here this + will have been set and the in-place addend cleared if we have + been called from GAS via `bfd_install_relocation'. */ + vallo += reloc_entry->addend; tdata = mips_elf_tdata (abfd); while (tdata->mips_hi16_list != NULL) { bfd_reloc_status_type ret; struct mips_hi16 *hi; + bfd_vma addhi; + bfd_vma addlo; hi = tdata->mips_hi16_list; @@ -2629,7 +2642,19 @@ _bfd_mips_elf_lo16_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, else if (hi->rel.howto->type == R_MICROMIPS_GOT16) hi->rel.howto = MIPS_ELF_RTYPE_TO_HOWTO (abfd, R_MICROMIPS_HI16, false); - hi->rel.addend += vallo; + /* We will be applying (symbol + addend) & 0xffff to the low insn, + and we want to apply (symbol + addend + 0x8000) >> 16 to the + high insn (the +0x8000 adjusting for when the applied low part is + negative). */ + addhi = (hi->rel.addend + 0x8000) & ~(bfd_vma) 0xffff; + addlo = vallo; + + /* For a PC-relative relocation the PCLO16 part of the addend + is relative to its PC and not ours, so we need to adjust it. */ + if (hi->rel.howto->type == R_MIPS_PCHI16) + addlo -= reloc_entry->address - hi->rel.address; + + hi->rel.addend = addhi + _bfd_mips_elf_sign_extend (addlo & 0xffff, 16); ret = _bfd_mips_elf_generic_reloc (abfd, &hi->rel, symbol, hi->data, hi->input_section, output_bfd, @@ -8298,14 +8323,44 @@ mips_elf_add_lo16_rel_addend (bfd *abfd, bfd_vma l; r_type = ELF_R_TYPE (abfd, rel->r_info); - if (mips16_reloc_p (r_type)) - lo16_type = R_MIPS16_LO16; - else if (micromips_reloc_p (r_type)) - lo16_type = R_MICROMIPS_LO16; - else if (r_type == R_MIPS_PCHI16) - lo16_type = R_MIPS_PCLO16; - else - lo16_type = R_MIPS_LO16; + switch (r_type) + { + case R_MIPS_HI16: + case R_MIPS_GOT16: + lo16_type = R_MIPS_LO16; + break; + case R_MIPS_PCHI16: + lo16_type = R_MIPS_PCLO16; + break; + case R_MIPS_TLS_DTPREL_HI16: + lo16_type = R_MIPS_TLS_DTPREL_LO16; + break; + case R_MIPS_TLS_TPREL_HI16: + lo16_type = R_MIPS_TLS_TPREL_LO16; + break; + case R_MIPS16_HI16: + case R_MIPS16_GOT16: + lo16_type = R_MIPS16_LO16; + break; + case R_MIPS16_TLS_DTPREL_HI16: + lo16_type = R_MIPS16_TLS_DTPREL_LO16; + break; + case R_MIPS16_TLS_TPREL_HI16: + lo16_type = R_MIPS16_TLS_TPREL_LO16; + break; + case R_MICROMIPS_HI16: + case R_MICROMIPS_GOT16: + lo16_type = R_MICROMIPS_LO16; + break; + case R_MICROMIPS_TLS_DTPREL_HI16: + lo16_type = R_MICROMIPS_TLS_DTPREL_LO16; + break; + case R_MICROMIPS_TLS_TPREL_HI16: + lo16_type = R_MICROMIPS_TLS_TPREL_LO16; + break; + default: + abort (); + } /* The combined value is the sum of the HI16 addend, left-shifted by sixteen bits, and the LO16 addend, sign extended. (Usually, the @@ -8334,6 +8389,10 @@ mips_elf_add_lo16_rel_addend (bfd *abfd, contents); l <<= lo16_howto->rightshift; + /* For a PC-relative relocation the PCLO16 part of the addend + is relative to its PC and not ours, so we need to adjust it. */ + if (r_type == R_MIPS_PCHI16) + l = (l - (lo16_relocation->r_offset - rel->r_offset)) & 0xffff; l = _bfd_mips_elf_sign_extend (l, 16); *addend <<= 16; @@ -10529,7 +10588,8 @@ _bfd_mips_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info, if (hi16_reloc_p (r_type) || (got16_reloc_p (r_type) && mips_elf_local_relocation_p (input_bfd, rel, - local_sections))) + local_sections)) + || tls_hi16_reloc_p (r_type)) { if (!mips_elf_add_lo16_rel_addend (input_bfd, input_section, rel, relend, @@ -10567,7 +10627,9 @@ _bfd_mips_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info, if (!rela_relocation_p && rel->r_addend) { addend += rel->r_addend; - if (hi16_reloc_p (r_type) || got16_reloc_p (r_type)) + if (hi16_reloc_p (r_type) + || got16_reloc_p (r_type) + || tls_hi16_reloc_p (r_type)) addend = mips_elf_high (addend); else if (r_type == R_MIPS_HIGHER) addend = mips_elf_higher (addend); diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c index 663f40a..3dc0095 100644 --- a/bfd/elfxx-x86.c +++ b/bfd/elfxx-x86.c @@ -4785,11 +4785,10 @@ _bfd_x86_elf_link_setup_gnu_properties | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); - sec = bfd_make_section_anyway_with_flags (dynobj, - ".sframe", - flags); + sec = bfd_make_section_anyway_with_flags (dynobj, ".sframe", flags); if (sec == NULL) info->callbacks->fatal (_("%P: failed to create PLT .sframe section\n")); + elf_section_type (sec) = SHT_GNU_SFRAME; // FIXME check this // if (!bfd_set_section_alignment (sec, class_align)) @@ -4805,6 +4804,7 @@ _bfd_x86_elf_link_setup_gnu_properties flags); if (sec == NULL) info->callbacks->fatal (_("%P: failed to create second PLT .sframe section\n")); + elf_section_type (sec) = SHT_GNU_SFRAME; htab->plt_second_sframe = sec; } @@ -4817,6 +4817,7 @@ _bfd_x86_elf_link_setup_gnu_properties flags); if (sec == NULL) info->callbacks->fatal (_("%P: failed to create PLT GOT .sframe section\n")); + elf_section_type (sec) = SHT_GNU_SFRAME; htab->plt_got_sframe = sec; } diff --git a/bfd/version.h b/bfd/version.h index 7739244..8973126 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -16,7 +16,7 @@ In releases, the date is not included in either version strings or sonames. */ -#define BFD_VERSION_DATE 20250710 +#define BFD_VERSION_DATE 20250713 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/binutils/NEWS b/binutils/NEWS index 1a746f1..89351d7 100644 --- a/binutils/NEWS +++ b/binutils/NEWS @@ -1,5 +1,24 @@ -*- text -*- +* New versioned release of libsframe: libsframe.so.2. This release introduces + versioned symbols with version node name LIBSFRAME_2.0. Some new symbols + have been added to support the new flag SFRAME_F_FDE_FUNC_START_PCREL and + retrieving flags from SFrame decoder and encoder objects: + - Addition of sframe_decoder_get_flags, + sframe_decoder_get_offsetof_fde_start_addr, sframe_encoder_get_flags, + sframe_encoder_get_offsetof_fde_start_addr. + This release also includes backward-incompatible ABI changes: + - Removal of sframe_get_funcdesc_with_addr. + - Change in the behavior of sframe_decoder_get_funcdesc_v2, + sframe_encoder_add_funcdesc_v2 and sframe_encoder_write. + +* On s390 64-bit (s390x), gas, ld, objdump, and readelf now support generating + and processing SFrame V2 stack trace information (.sframe). The assembler + generates SFrame info from CFI directives with option "--gsframe". The + linker generates SFrame info for the linker-generated .plt section and merges + all .sframe sections. Both objdump and readelf dump SFrame info with option + "--sframe[=<section-name>]". + * For SFrame stack trace format, the function start address in each SFrame FDE has a changed encoding: The 32-bit signed integer now holds the offset of the start PC of the associated function from the sfde_func_start_address @@ -17,6 +36,10 @@ * For RISC-V dis-assembler, the definition of mapping symbol $x is changed, so the file needs to be rebuilt since 2.45 once used .option arch directives. +* The LoongArch disassembler now properly accepts multiple disassembly + options given by -M, such as "-M no-aliases,numeric". (Previously only the + first option took effect.) + Changes in 2.44: * Support for Nios II targets has been removed except in the readelf utility, diff --git a/binutils/configure b/binutils/configure index a2a5bf0..4b24376 100755 --- a/binutils/configure +++ b/binutils/configure @@ -14675,287 +14675,6 @@ $as_echo "$LINGUAS" >&6; } fi - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - rm -f messages.po - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; } - GMSGFMT=":" - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - rm -f messages.po - fi - - ac_config_commands="$ac_config_commands default-2" - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. @@ -17613,13 +17332,6 @@ fi # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - _ACEOF @@ -17633,7 +17345,6 @@ do "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;; @@ -19064,107 +18775,6 @@ _LT_EOF ;; esac done ;; - "default-2":C) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.ac is obsolete" || echo "setting ALL_LINGUAS in configure.ac is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.ac. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; esac done # for ac_tag diff --git a/binutils/configure.ac b/binutils/configure.ac index 75ba9d3..cb65e50 100644 --- a/binutils/configure.ac +++ b/binutils/configure.ac @@ -156,8 +156,8 @@ AC_PROG_YACC AM_PROG_LEX ALL_LINGUAS="bg ca da es fi fr hr id it ja pt ro ru rw sk sr sv tr uk vi zh_CN zh_TW" -ZW_GNU_GETTEXT_SISTER_DIR AM_PO_SUBDIRS +ZW_GNU_GETTEXT_SISTER_DIR AM_MAINTAINER_MODE AM_CONDITIONAL(GENINSRC_NEVER, false) diff --git a/binutils/dwarf.c b/binutils/dwarf.c index e0e202f..f4bcb67 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -8582,6 +8582,8 @@ typedef struct Frame_Chunk } Frame_Chunk; +typedef bool (*is_mach_augmentation_ftype) (char c); +static is_mach_augmentation_ftype is_mach_augmentation; typedef const char *(*dwarf_regname_lookup_ftype) (unsigned int); static dwarf_regname_lookup_ftype dwarf_regnames_lookup_func; static const char *const *dwarf_regnames; @@ -8894,9 +8896,22 @@ init_dwarf_regnames_loongarch (void) dwarf_regnames_lookup_func = regname_internal_by_table_only; } +static bool +is_nomach_augmentation (char c ATTRIBUTE_UNUSED) +{ + return false; +} + +static bool +is_aarch64_augmentation (char c) +{ + return (c == 'B' || c == 'G'); +} + void -init_dwarf_regnames_by_elf_machine_code (unsigned int e_machine) +init_dwarf_by_elf_machine_code (unsigned int e_machine) { + is_mach_augmentation = is_nomach_augmentation; dwarf_regnames_lookup_func = NULL; is_aarch64 = false; @@ -8918,6 +8933,7 @@ init_dwarf_regnames_by_elf_machine_code (unsigned int e_machine) case EM_AARCH64: init_dwarf_regnames_aarch64 (); + is_mach_augmentation = is_aarch64_augmentation; break; case EM_S390: @@ -8941,9 +8957,10 @@ init_dwarf_regnames_by_elf_machine_code (unsigned int e_machine) architecture and specific machine type of a BFD. */ void -init_dwarf_regnames_by_bfd_arch_and_mach (enum bfd_architecture arch, - unsigned long mach) +init_dwarf_by_bfd_arch_and_mach (enum bfd_architecture arch, + unsigned long mach) { + is_mach_augmentation = is_nomach_augmentation; dwarf_regnames_lookup_func = NULL; is_aarch64 = false; @@ -8971,6 +8988,7 @@ init_dwarf_regnames_by_bfd_arch_and_mach (enum bfd_architecture arch, case bfd_arch_aarch64: init_dwarf_regnames_aarch64(); + is_mach_augmentation = is_aarch64_augmentation; break; case bfd_arch_s390: @@ -9216,7 +9234,7 @@ read_cie (unsigned char *start, unsigned char *end, fc->fde_encoding = *q++; else if (*p == 'S') ; - else if (*p == 'B') + else if (is_mach_augmentation (*p)) ; else break; diff --git a/binutils/dwarf.h b/binutils/dwarf.h index 6f693b1..13afb4a 100644 --- a/binutils/dwarf.h +++ b/binutils/dwarf.h @@ -241,9 +241,9 @@ extern unsigned long dwarf_start_die; extern int dwarf_check; -extern void init_dwarf_regnames_by_elf_machine_code (unsigned int); -extern void init_dwarf_regnames_by_bfd_arch_and_mach (enum bfd_architecture arch, - unsigned long mach); +extern void init_dwarf_by_elf_machine_code (unsigned int); +extern void init_dwarf_by_bfd_arch_and_mach (enum bfd_architecture arch, + unsigned long mach); extern bool load_debug_section (enum dwarf_section_display_enum, void *); extern void free_debug_section (enum dwarf_section_display_enum); diff --git a/binutils/objdump.c b/binutils/objdump.c index 7bb6d76..98d3049 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -4551,8 +4551,8 @@ dump_dwarf (bfd *abfd, bool is_mainfile) break; } - init_dwarf_regnames_by_bfd_arch_and_mach (bfd_get_arch (abfd), - bfd_get_mach (abfd)); + init_dwarf_by_bfd_arch_and_mach (bfd_get_arch (abfd), + bfd_get_mach (abfd)); bfd_map_over_sections (abfd, dump_dwarf_section, (void *) &is_mainfile); } diff --git a/binutils/readelf.c b/binutils/readelf.c index 5730247..cfccdd2 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -2584,9 +2584,12 @@ get_aarch64_dynamic_type (unsigned long type) { switch (type) { - case DT_AARCH64_BTI_PLT: return "AARCH64_BTI_PLT"; - case DT_AARCH64_PAC_PLT: return "AARCH64_PAC_PLT"; + case DT_AARCH64_BTI_PLT: return "AARCH64_BTI_PLT"; + case DT_AARCH64_PAC_PLT: return "AARCH64_PAC_PLT"; case DT_AARCH64_VARIANT_PCS: return "AARCH64_VARIANT_PCS"; + case DT_AARCH64_MEMTAG_MODE: return "AARCH64_MEMTAG_MODE"; + case DT_AARCH64_MEMTAG_STACK: return "AARCH64_MEMTAG_STACK"; + default: return NULL; } @@ -5964,6 +5967,7 @@ get_os_specific_section_type_name (Filedata * filedata, unsigned int sh_type) case SHT_GNU_HASH: return "GNU_HASH"; case SHT_GNU_LIBLIST: return "GNU_LIBLIST"; case SHT_GNU_OBJECT_ONLY: return "GNU_OBJECT_ONLY"; + case SHT_GNU_SFRAME: return "GNU_SFRAME"; case SHT_SUNW_move: return "SUNW_MOVE"; case SHT_SUNW_COMDAT: return "SUNW_COMDAT"; @@ -6827,7 +6831,7 @@ process_file_header (Filedata * filedata) return false; if (! filedata->is_separate) - init_dwarf_regnames_by_elf_machine_code (header->e_machine); + init_dwarf_by_elf_machine_code (header->e_machine); if (do_header) { @@ -8367,6 +8371,7 @@ process_section_headers (Filedata * filedata) case SHT_NOTE: case SHT_PROGBITS: + case SHT_GNU_SFRAME: /* Having a zero sized section is not illegal according to the ELF standard, but it might be an indication that something is wrong. So issue a warning if we are running in lint mode. */ @@ -1,10 +1,15 @@ -*- text -*- +* Add support to generate SFrame stack trace information (.sframe) + from CFI directives on s390 64-bit (s390x). + * All SFrame sections generated by gas have the header flag SFRAME_F_FDE_FUNC_START_PCREL set. gas was already emitting SFrame sections with the applicable encoding. Setting the flag ensures compliance with the updated SFrame V2 specification. + ELF SFrame sections now have section type set to SHT_GNU_SFRAME. + * Add .errif and .warnif directives, permitting user-controlled diagnostics with conditionals that are evaluated only at the end of assembly. @@ -36,6 +41,15 @@ * Add support for the x86 Zhaoxin PadLock XMODX instructions. +* Add support for several instruction aliases defined for the LoongArch 32-bit + reduced subset (LA32R): rdcntvl.w, rdcntvh.w, rdcntid.w. + +* For LoongArch, warn about out-of-range 3rd arguments (maximum number of + bytes to skip) of .align directives. + +* For LoongArch, warn about negative right-shift amounts and + division/modulus-by-zero when evaluating expressions. + Changes in 2.44: * Add support for the x86 Intel Diamond Rapids AMX instructions, including diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index 03b6c24..315d08e 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -1163,6 +1163,15 @@ obj_elf_attach_to_group (int dummy ATTRIBUTE_UNUSED) elf_set_group_name (now_seg, gname); } +/* Handle section related directives. + + Note on support for SFrame sections: These are generally expected to be + generated by the assembler. However, this function permits their direct + creation by the user. At the moment though, we go no extra mile by adding + an explicit @sframe for SHT_GNU_SFRAME (using the numeric value of section + type should suffice); Nor do we implement any outright refusal for + non-supported targets via ELFOSABI-specific checks. */ + void obj_elf_section (int push) { diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 3dfb077..cd9ae58 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -2351,6 +2351,14 @@ s_aarch64_cfi_b_key_frame (int ignored ATTRIBUTE_UNUSED) fde->pauth_key = AARCH64_PAUTH_KEY_B; } +static void +s_aarch64_mte_tagged_frame (int ignored ATTRIBUTE_UNUSED) +{ + demand_empty_rest_of_line (); + struct fde_entry *fde = frchain_now->frch_cfi_data->cur_fde_data; + fde->memtag_frame_p = true; +} + #ifdef OBJ_ELF /* Emit BFD_RELOC_AARCH64_TLSDESC_ADD on the next ADD instruction. */ @@ -2476,6 +2484,7 @@ const pseudo_typeS md_pseudo_table[] = { {"arch_extension", s_aarch64_arch_extension, 0}, {"inst", s_aarch64_inst, 0}, {"cfi_b_key_frame", s_aarch64_cfi_b_key_frame, 0}, + {"cfi_mte_tagged_frame", s_aarch64_mte_tagged_frame, 0}, #ifdef OBJ_ELF {"tlsdescadd", s_tlsdescadd, 0}, {"tlsdesccall", s_tlsdesccall, 0}, @@ -4607,7 +4616,9 @@ parse_hint_opt (const char *name, char **str, && o->value != HINT_OPD_CSYNC) || ((strcmp ("bti", name) == 0) && (o->value != HINT_OPD_C && o->value != HINT_OPD_J - && o->value != HINT_OPD_JC))) + && o->value != HINT_OPD_JC)) + || ((strcmp ("stshh", name) == 0) + && (o->value != HINT_OPD_KEEP && o->value != HINT_OPD_STRM))) return false; *str = q; @@ -4954,6 +4965,10 @@ parse_sme_sm_za (char **str) return TOLOWER (p[0]); } +/* By default, system register accesses are unguarded (apart from the + requirement of +d128 for mrrs/msrr). */ +static int sysreg_checking_p = 0; + /* Parse a system register or a PSTATE field name for an MSR/MRS instruction. Returns the encoding for the option, or PARSE_FAIL. @@ -5008,10 +5023,11 @@ parse_sys_reg (char **str, htab_t sys_regs, } else { - if (pstatefield_p && !aarch64_pstatefield_supported_p (cpu_variant, o)) + if (pstatefield_p && sysreg_checking_p + && !aarch64_pstatefield_supported_p (cpu_variant, o)) as_bad (_("selected processor does not support PSTATE field " "name '%s'"), buf); - if (!pstatefield_p + if (!pstatefield_p && sysreg_checking_p && !aarch64_sys_ins_reg_supported_p (cpu_variant, o->name, o->flags, &o->features)) as_bad (_("selected processor does not support system register " @@ -5092,12 +5108,14 @@ parse_sys_ins_reg (char **str, htab_t sys_ins_regs, bool sysreg128_p) } while (0) #define po_imm_nc_or_fail() do { \ - if (! parse_constant_immediate (&str, &val, imm_reg_type)) \ + aarch64_reg_type invalid_types = imm_invalid_reg_types (opcode->flags); \ + if (! parse_constant_immediate (&str, &val, invalid_types)) \ goto failure; \ } while (0) #define po_imm_or_fail(min, max) do { \ - if (! parse_constant_immediate (&str, &val, imm_reg_type)) \ + aarch64_reg_type invalid_types = imm_invalid_reg_types (opcode->flags); \ + if (! parse_constant_immediate (&str, &val, invalid_types)) \ goto failure; \ if (val < min || val > max) \ { \ @@ -5108,8 +5126,9 @@ parse_sys_ins_reg (char **str, htab_t sys_ins_regs, bool sysreg128_p) } while (0) #define po_enum_or_fail(array) do { \ + aarch64_reg_type invalid_types = imm_invalid_reg_types (opcode->flags); \ if (!parse_enum_string (&str, &val, array, \ - ARRAY_SIZE (array), imm_reg_type)) \ + ARRAY_SIZE (array), invalid_types)) \ goto failure; \ } while (0) @@ -6655,6 +6674,28 @@ reg_list_valid_p (uint32_t reginfo, struct aarch64_reglist *list, return true; } +static aarch64_reg_type +imm_invalid_reg_types (uint64_t flags) +{ + switch (flags & F_INVALID_IMM_SYMS) + { + case F_INVALID_IMM_SYMS_1: + return REG_TYPE_R_ZR_BHSDQ_V; + + case F_INVALID_IMM_SYMS_2: + return REG_TYPE_R_ZR_SP_BHSDQ_VZP; + + case F_INVALID_IMM_SYMS_3: + return REG_TYPE_R_ZR_SP_BHSDQ_VZP_PN; + + default: + /* All instructions with immediate operands require an explicit flag - + this ensures that the flags will not be forgotten when adding new + instructions. */ + gas_assert (0); + } +} + /* Generic instruction operand parser. This does no encoding and no semantic validation; it merely squirrels values away in the inst structure. Returns TRUE or FALSE depending on whether the @@ -6667,19 +6708,10 @@ parse_operands (char *str, const aarch64_opcode *opcode) char *backtrack_pos = 0; const enum aarch64_opnd *operands = opcode->operands; const uint64_t flags = opcode->flags; - aarch64_reg_type imm_reg_type; clear_error (); skip_whitespace (str); - if (AARCH64_CPU_HAS_FEATURE (*opcode->avariant, SME2)) - imm_reg_type = REG_TYPE_R_ZR_SP_BHSDQ_VZP_PN; - else if (AARCH64_CPU_HAS_FEATURE (*opcode->avariant, SVE) - || AARCH64_CPU_HAS_FEATURE (*opcode->avariant, SVE2)) - imm_reg_type = REG_TYPE_R_ZR_SP_BHSDQ_VZP; - else - imm_reg_type = REG_TYPE_R_ZR_BHSDQ_V; - for (i = 0; operands[i] != AARCH64_OPND_NIL; i++) { int64_t val; @@ -6917,6 +6949,7 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_SME_Zn_INDEX1_16: case AARCH64_OPND_SME_Zn_INDEX2_15: case AARCH64_OPND_SME_Zn_INDEX2_16: + case AARCH64_OPND_SME_Zn_INDEX2_19: case AARCH64_OPND_SME_Zn_INDEX3_14: case AARCH64_OPND_SME_Zn_INDEX3_15: case AARCH64_OPND_SME_Zn_INDEX4_14: @@ -7234,13 +7267,15 @@ parse_operands (char *str, const aarch64_opcode *opcode) { int qfloat; bool res1 = false, res2 = false; + aarch64_reg_type invalid_types + = imm_invalid_reg_types (opcode->flags); /* N.B. -0.0 will be rejected; although -0.0 shouldn't be rejected, it is probably not worth the effort to support it. */ if (!(res1 = parse_aarch64_imm_float (&str, &qfloat, false, - imm_reg_type)) + invalid_types)) && (error_p () || !(res2 = parse_constant_immediate (&str, &val, - imm_reg_type)))) + invalid_types)))) goto failure; if ((res1 && qfloat == 0) || (res2 && val == 0)) { @@ -7274,7 +7309,8 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_SIMD_IMM: case AARCH64_OPND_SIMD_IMM_SFT: - if (! parse_big_immediate (&str, &val, imm_reg_type)) + if (! parse_big_immediate (&str, &val, + imm_invalid_reg_types (opcode->flags))) goto failure; assign_imm_if_const_or_fixup_later (&inst.reloc, info, /* addr_off_p */ 0, @@ -7302,11 +7338,13 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_SIMD_FPIMM: case AARCH64_OPND_SVE_FPIMM8: { + aarch64_reg_type invalid_types + = imm_invalid_reg_types (opcode->flags); int qfloat; bool dp_p; dp_p = double_precision_operand_p (&inst.base.operands[0]); - if (!parse_aarch64_imm_float (&str, &qfloat, dp_p, imm_reg_type) + if (!parse_aarch64_imm_float (&str, &qfloat, dp_p, invalid_types) || !aarch64_imm_float_p (qfloat)) { if (!error_p ()) @@ -7323,11 +7361,13 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_SVE_I1_HALF_TWO: case AARCH64_OPND_SVE_I1_ZERO_ONE: { + aarch64_reg_type invalid_types + = imm_invalid_reg_types (opcode->flags); int qfloat; bool dp_p; dp_p = double_precision_operand_p (&inst.base.operands[0]); - if (!parse_aarch64_imm_float (&str, &qfloat, dp_p, imm_reg_type)) + if (!parse_aarch64_imm_float (&str, &qfloat, dp_p, invalid_types)) { if (!error_p ()) set_fatal_syntax_error (_("invalid floating-point" @@ -7416,13 +7456,17 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_EXCEPTION: case AARCH64_OPND_UNDEFINED: - po_misc_or_fail (parse_immediate_expression (&str, &inst.reloc.exp, - imm_reg_type)); - assign_imm_if_const_or_fixup_later (&inst.reloc, info, - /* addr_off_p */ 0, - /* need_libopcodes_p */ 0, - /* skip_p */ 1); - break; + { + aarch64_reg_type invalid_types + = imm_invalid_reg_types (opcode->flags); + po_misc_or_fail (parse_immediate_expression (&str, &inst.reloc.exp, + invalid_types)); + assign_imm_if_const_or_fixup_later (&inst.reloc, info, + /* addr_off_p */ 0, + /* need_libopcodes_p */ 0, + /* skip_p */ 1); + break; + } case AARCH64_OPND_NZCV: { @@ -8091,7 +8135,9 @@ parse_operands (char *str, const aarch64_opcode *opcode) { /* DSB nXS barrier variant accept 5-bit unsigned immediate, with possible values 16, 20, 24 or 28 , encoded as val<3:2>. */ - if (! parse_constant_immediate (&str, &val, imm_reg_type)) + aarch64_reg_type invalid_types + = imm_invalid_reg_types (opcode->flags); + if (! parse_constant_immediate (&str, &val, invalid_types)) goto failure; if (!(val == 16 || val == 20 || val == 24 || val == 28)) { @@ -8106,9 +8152,18 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_PRFOP: val = parse_pldop (&str); + + if (opcode->iclass != ldst_pos && val == 0x18) + { + set_syntax_error (_("invalid prefetch operation (IR is not valid for" + " this instruction variant)")); + goto failure; + } + /* This is an extension to accept a 0..31 immediate. */ if (val == PARSE_FAIL) po_imm_or_fail (0, 31); + inst.base.operands[i].prfop = aarch64_prfops + val; break; @@ -8188,6 +8243,11 @@ parse_operands (char *str, const aarch64_opcode *opcode) goto failure; break; + case AARCH64_OPND_STSHH_POLICY: + if (!parse_hint_opt (opcode->name, &str, &(info->hint_option))) + goto failure; + break; + case AARCH64_OPND_SME_ZAda_1b: case AARCH64_OPND_SME_ZAda_2b: case AARCH64_OPND_SME_ZAda_3b: @@ -9347,6 +9407,10 @@ try_to_encode_as_unscaled_ldst (aarch64_inst *instr) if (new_op == OP_NIL) return false; + if ((instr->opcode->op == OP_PRFM_POS) + && (instr->operands[0].prfop->value == 0x18)) + return false; + new_opcode = aarch64_get_opcode (new_op); gas_assert (new_opcode != NULL); @@ -10553,6 +10617,9 @@ static struct aarch64_option_table aarch64_opts[] = { NULL}, {"mno-verbose-error", N_("do not output verbose error messages"), &verbose_error_p, 0, NULL}, + {"menable-sysreg-checking", + N_("enable feature flag gating for system registers"), + &sysreg_checking_p, 1, NULL}, {NULL, NULL, NULL, 0, NULL} }; @@ -10675,6 +10742,7 @@ static const struct aarch64_arch_option_table aarch64_archs[] = { {"armv9.3-a", AARCH64_ARCH_FEATURES (V9_3A)}, {"armv9.4-a", AARCH64_ARCH_FEATURES (V9_4A)}, {"armv9.5-a", AARCH64_ARCH_FEATURES (V9_5A)}, + {"armv9.6-a", AARCH64_ARCH_FEATURES (V9_6A)}, {NULL, AARCH64_NO_FEATURES} }; @@ -10698,6 +10766,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = { {"lse", AARCH64_FEATURE (LSE), AARCH64_NO_FEATURES}, {"lsfe", AARCH64_FEATURE (LSFE), AARCH64_FEATURE (FP)}, {"lse128", AARCH64_FEATURE (LSE128), AARCH64_FEATURE (LSE)}, + {"lsui", AARCH64_FEATURE (LSUI), AARCH64_NO_FEATURES}, {"simd", AARCH64_FEATURE (SIMD), AARCH64_FEATURE (FP)}, {"pan", AARCH64_FEATURE (PAN), AARCH64_NO_FEATURES}, {"lor", AARCH64_FEATURE (LOR), AARCH64_NO_FEATURES}, @@ -10735,7 +10804,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = { {"sve2-sm4", AARCH64_FEATURE (SVE2_SM4), AARCH64_FEATURES (2, SVE2, SM4)}, {"sve2-aes", AARCH64_FEATURE (SVE2_AES), - AARCH64_FEATURES (2, SVE2, AES)}, + AARCH64_FEATURES (2, SVE2, SVE_AES)}, {"sve2-sha3", AARCH64_FEATURE (SVE2_SHA3), AARCH64_FEATURES (2, SVE2, SHA3)}, {"sve2-bitperm", AARCH64_FEATURE (SVE2_BITPERM), @@ -10773,6 +10842,9 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = { {"sve-f16f32mm", AARCH64_FEATURE (SVE_F16F32MM), AARCH64_FEATURE (SVE)}, {"f8f32mm", AARCH64_FEATURE (F8F32MM), AARCH64_FEATURES (2, SIMD, FP8)}, {"f8f16mm", AARCH64_FEATURE (F8F16MM), AARCH64_FEATURES (2, SIMD, FP8)}, + {"sve-aes", AARCH64_FEATURE (SVE_AES), AARCH64_FEATURE (AES)}, + {"sve-aes2", AARCH64_FEATURE (SVE_AES2), AARCH64_NO_FEATURES}, + {"ssve-aes", AARCH64_FEATURE (SSVE_AES), AARCH64_FEATURES (2, SME2, SVE_AES)}, {"rcpc3", AARCH64_FEATURE (RCPC3), AARCH64_FEATURE (RCPC2)}, {"cpa", AARCH64_FEATURE (CPA), AARCH64_NO_FEATURES}, {"faminmax", AARCH64_FEATURE (FAMINMAX), AARCH64_FEATURE (SIMD)}, @@ -10811,6 +10883,8 @@ struct aarch64_virtual_dependency_table }; static const struct aarch64_virtual_dependency_table aarch64_dependencies[] = { + {AARCH64_FEATURE (SVE2), AARCH64_FEATURE (SVE2_SSVE_AES)}, + {AARCH64_FEATURE (SSVE_AES), AARCH64_FEATURE (SVE2_SSVE_AES)}, {AARCH64_FEATURES (2, FP8FMA, SVE2), AARCH64_FEATURE (FP8FMA_SVE)}, {AARCH64_FEATURE (SSVE_FP8FMA), AARCH64_FEATURE (FP8FMA_SVE)}, {AARCH64_FEATURES (2, FP8DOT4, SVE2), AARCH64_FEATURE (FP8DOT4_SVE)}, diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h index 0d8066c..fce34ed 100644 --- a/gas/config/tc-aarch64.h +++ b/gas/config/tc-aarch64.h @@ -90,13 +90,21 @@ enum pointer_auth_key { /* The extra fields required by AArch64 in fde_entry and cie_entry. Currently only used to store the key used to sign the frame's return address. */ -#define tc_fde_entry_extras enum pointer_auth_key pauth_key; -#define tc_cie_entry_extras enum pointer_auth_key pauth_key; +#define tc_fde_entry_extras enum pointer_auth_key pauth_key; \ + bool memtag_frame_p; +#define tc_cie_entry_extras enum pointer_auth_key pauth_key; \ + bool memtag_frame_p; /* The extra initialisation steps needed by AArch64 in alloc_fde_entry. Currently only used to initialise the key used to sign the return address. */ -#define tc_fde_entry_init_extra(fde) fde->pauth_key = AARCH64_PAUTH_KEY_A; +#define tc_fde_entry_init_extra(fde) \ + do \ + { \ + fde->pauth_key = AARCH64_PAUTH_KEY_A; \ + fde->memtag_frame_p = false; \ + } \ + while (0) /* Extra checks required by AArch64 when outputting the current cie_entry. Currently only used to output a 'B' if the return address is signed with the @@ -106,18 +114,29 @@ enum pointer_auth_key { { \ if (cie->pauth_key == AARCH64_PAUTH_KEY_B) \ out_one ('B'); \ + if (cie->memtag_frame_p) \ + out_one ('G'); \ } \ while (0) /* Extra equivalence checks required by AArch64 when selecting the correct cie - for some fde. Currently only used to check for quivalence between keys used - to sign ther return address. */ -#define tc_cie_fde_equivalent_extra(cie, fde) (cie->pauth_key == fde->pauth_key) + for some fde. Currently used to check for equivalence between - keys used + to sign the return address, and if stack locations have MTE tagging + enabled. */ +#define tc_cie_fde_equivalent_extra(cie, fde) \ + ((cie->pauth_key == fde->pauth_key) \ + && (cie->memtag_frame_p == fde->memtag_frame_p)) /* The extra initialisation steps needed by AArch64 in select_cie_for_fde. Currently only used to initialise the key used to sign the return address. */ -#define tc_cie_entry_init_extra(cie, fde) cie->pauth_key = fde->pauth_key; +#define tc_cie_entry_init_extra(cie, fde) \ + do \ + { \ + cie->pauth_key = fde->pauth_key; \ + cie->memtag_frame_p = fde->memtag_frame_p; \ + } \ + while (0) #define TC_FIX_TYPE struct aarch64_fix #define TC_INIT_FIX_DATA(FIX) { (FIX)->tc_fix_data.inst = NULL; \ diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c index 7c4cffb..9558425 100644 --- a/gas/config/tc-alpha.c +++ b/gas/config/tc-alpha.c @@ -99,7 +99,7 @@ struct alpha_insn long sequence; }; -enum alpha_macro_arg +typedef enum { MACRO_EOA = 1, MACRO_IR, @@ -108,14 +108,20 @@ enum alpha_macro_arg MACRO_CPIR, MACRO_FPR, MACRO_EXP - }; + } alpha_macro_argset; + +typedef union +{ + const void *p; + uintptr_t i; +} alpha_macro_arg; struct alpha_macro { const char *name; - void (*emit) (const expressionS *, int, const void *); - const void * arg; - enum alpha_macro_arg argsets[16]; + void (*emit) (const expressionS *, int, alpha_macro_arg); + alpha_macro_arg arg; + alpha_macro_argset argsets[16]; }; /* Extra expression types. */ @@ -1641,7 +1647,7 @@ load_expression (int targreg, static void emit_lda (const expressionS *tok, int ntok, - const void * unused ATTRIBUTE_UNUSED) + alpha_macro_arg unused ATTRIBUTE_UNUSED) { int basereg; @@ -1659,7 +1665,7 @@ emit_lda (const expressionS *tok, static void emit_ldah (const expressionS *tok, int ntok ATTRIBUTE_UNUSED, - const void * unused ATTRIBUTE_UNUSED) + alpha_macro_arg unused ATTRIBUTE_UNUSED) { expressionS newtok[3]; @@ -2144,7 +2150,7 @@ assemble_insn (const struct alpha_opcode *opcode, static void emit_ir_load (const expressionS *tok, int ntok, - const void * opname) + alpha_macro_arg opname) { int basereg; long lituse; @@ -2160,7 +2166,7 @@ emit_ir_load (const expressionS *tok, basereg = tok[2].X_add_number; lituse = load_expression (tok[0].X_add_number, &tok[1], - &basereg, &newtok[1], opname); + &basereg, &newtok[1], opname.p); if (basereg == alpha_gp_register && (symlen > 4 && strcmp (&symname [symlen - 4], "..lk") == 0)) @@ -2169,7 +2175,7 @@ emit_ir_load (const expressionS *tok, newtok[0] = tok[0]; set_tok_preg (newtok[2], basereg); - assemble_tokens_to_insn (opname, newtok, 3, &insn); + assemble_tokens_to_insn (opname.p, newtok, 3, &insn); if (lituse) { @@ -2189,7 +2195,7 @@ emit_ir_load (const expressionS *tok, static void emit_loadstore (const expressionS *tok, int ntok, - const void * opname) + alpha_macro_arg opname) { int basereg; long lituse; @@ -2207,7 +2213,7 @@ emit_loadstore (const expressionS *tok, as_bad (_("macro requires $at register while noat in effect")); lituse = load_expression (AXP_REG_AT, &tok[1], - &basereg, &newtok[1], opname); + &basereg, &newtok[1], opname.p); } else { @@ -2218,7 +2224,7 @@ emit_loadstore (const expressionS *tok, newtok[0] = tok[0]; set_tok_preg (newtok[2], basereg); - assemble_tokens_to_insn (opname, newtok, 3, &insn); + assemble_tokens_to_insn (opname.p, newtok, 3, &insn); if (lituse) { @@ -2237,10 +2243,10 @@ emit_loadstore (const expressionS *tok, static void emit_ldXu (const expressionS *tok, int ntok, - const void * vlgsize) + alpha_macro_arg lgsize) { if (alpha_target & AXP_OPCODE_BWX) - emit_ir_load (tok, ntok, ldXu_op[(intptr_t) vlgsize]); + emit_ir_load (tok, ntok, (alpha_macro_arg) { ldXu_op[lgsize.i] }); else { expressionS newtok[3]; @@ -2280,7 +2286,7 @@ emit_ldXu (const expressionS *tok, /* Emit "extXl targ, $at, targ". */ set_tok_reg (newtok[1], basereg); newtok[2] = newtok[0]; - assemble_tokens_to_insn (extXl_op[(intptr_t) vlgsize], newtok, 3, &insn); + assemble_tokens_to_insn (extXl_op[lgsize.i], newtok, 3, &insn); if (lituse) { @@ -2300,10 +2306,10 @@ emit_ldXu (const expressionS *tok, static void emit_ldX (const expressionS *tok, int ntok, - const void * vlgsize) + alpha_macro_arg lgsize) { - emit_ldXu (tok, ntok, vlgsize); - assemble_tokens (sextX_op[(intptr_t) vlgsize], tok, 1, 1); + emit_ldXu (tok, ntok, lgsize); + assemble_tokens (sextX_op[lgsize.i], tok, 1, 1); } /* Load an integral value from an unaligned address as an unsigned @@ -2312,9 +2318,8 @@ emit_ldX (const expressionS *tok, static void emit_uldXu (const expressionS *tok, int ntok, - const void * vlgsize) + alpha_macro_arg lgsize) { - int lgsize = (intptr_t) vlgsize; expressionS newtok[3]; if (alpha_noat_on) @@ -2333,19 +2338,19 @@ emit_uldXu (const expressionS *tok, /* Emit "ldq_u $t10, size-1($at)". */ set_tok_reg (newtok[0], AXP_REG_T10); - set_tok_const (newtok[1], (1 << lgsize) - 1); + set_tok_const (newtok[1], (1 << lgsize.i) - 1); assemble_tokens ("ldq_u", newtok, 3, 1); /* Emit "extXl $t9, $at, $t9". */ set_tok_reg (newtok[0], AXP_REG_T9); set_tok_reg (newtok[1], AXP_REG_AT); set_tok_reg (newtok[2], AXP_REG_T9); - assemble_tokens (extXl_op[lgsize], newtok, 3, 1); + assemble_tokens (extXl_op[lgsize.i], newtok, 3, 1); /* Emit "extXh $t10, $at, $t10". */ set_tok_reg (newtok[0], AXP_REG_T10); set_tok_reg (newtok[2], AXP_REG_T10); - assemble_tokens (extXh_op[lgsize], newtok, 3, 1); + assemble_tokens (extXh_op[lgsize.i], newtok, 3, 1); /* Emit "or $t9, $t10, targ". */ set_tok_reg (newtok[0], AXP_REG_T9); @@ -2361,10 +2366,10 @@ emit_uldXu (const expressionS *tok, static void emit_uldX (const expressionS *tok, int ntok, - const void * vlgsize) + alpha_macro_arg lgsize) { - emit_uldXu (tok, ntok, vlgsize); - assemble_tokens (sextX_op[(intptr_t) vlgsize], tok, 1, 1); + emit_uldXu (tok, ntok, lgsize); + assemble_tokens (sextX_op[lgsize.i], tok, 1, 1); } /* Implement the ldil macro. */ @@ -2372,7 +2377,7 @@ emit_uldX (const expressionS *tok, static void emit_ldil (const expressionS *tok, int ntok, - const void * unused ATTRIBUTE_UNUSED) + alpha_macro_arg unused ATTRIBUTE_UNUSED) { expressionS newtok[2]; @@ -2387,12 +2392,10 @@ emit_ldil (const expressionS *tok, static void emit_stX (const expressionS *tok, int ntok, - const void * vlgsize) + alpha_macro_arg lgsize) { - int lgsize = (intptr_t) vlgsize; - if (alpha_target & AXP_OPCODE_BWX) - emit_loadstore (tok, ntok, stX_op[lgsize]); + emit_loadstore (tok, ntok, (alpha_macro_arg) { stX_op[lgsize.i] }); else { expressionS newtok[3]; @@ -2433,7 +2436,7 @@ emit_stX (const expressionS *tok, newtok[0] = tok[0]; set_tok_reg (newtok[1], basereg); set_tok_reg (newtok[2], AXP_REG_T10); - assemble_tokens_to_insn (insXl_op[lgsize], newtok, 3, &insn); + assemble_tokens_to_insn (insXl_op[lgsize.i], newtok, 3, &insn); if (lituse) { @@ -2449,7 +2452,7 @@ emit_stX (const expressionS *tok, /* Emit "mskXl $t9, $at, $t9". */ set_tok_reg (newtok[0], AXP_REG_T9); newtok[2] = newtok[0]; - assemble_tokens_to_insn (mskXl_op[lgsize], newtok, 3, &insn); + assemble_tokens_to_insn (mskXl_op[lgsize.i], newtok, 3, &insn); if (lituse) { @@ -2489,9 +2492,8 @@ emit_stX (const expressionS *tok, static void emit_ustX (const expressionS *tok, int ntok, - const void * vlgsize) + alpha_macro_arg lgsize) { - int lgsize = (intptr_t) vlgsize; expressionS newtok[3]; /* Emit "lda $at, exp". */ @@ -2507,28 +2509,28 @@ emit_ustX (const expressionS *tok, /* Emit "ldq_u $10, size-1($at)". */ set_tok_reg (newtok[0], AXP_REG_T10); - set_tok_const (newtok[1], (1 << lgsize) - 1); + set_tok_const (newtok[1], (1 << lgsize.i) - 1); assemble_tokens ("ldq_u", newtok, 3, 1); /* Emit "insXl src, $at, $t11". */ newtok[0] = tok[0]; set_tok_reg (newtok[1], AXP_REG_AT); set_tok_reg (newtok[2], AXP_REG_T11); - assemble_tokens (insXl_op[lgsize], newtok, 3, 1); + assemble_tokens (insXl_op[lgsize.i], newtok, 3, 1); /* Emit "insXh src, $at, $t12". */ set_tok_reg (newtok[2], AXP_REG_T12); - assemble_tokens (insXh_op[lgsize], newtok, 3, 1); + assemble_tokens (insXh_op[lgsize.i], newtok, 3, 1); /* Emit "mskXl $t9, $at, $t9". */ set_tok_reg (newtok[0], AXP_REG_T9); newtok[2] = newtok[0]; - assemble_tokens (mskXl_op[lgsize], newtok, 3, 1); + assemble_tokens (mskXl_op[lgsize.i], newtok, 3, 1); /* Emit "mskXh $t10, $at, $t10". */ set_tok_reg (newtok[0], AXP_REG_T10); newtok[2] = newtok[0]; - assemble_tokens (mskXh_op[lgsize], newtok, 3, 1); + assemble_tokens (mskXh_op[lgsize.i], newtok, 3, 1); /* Emit "or $t9, $t11, $t9". */ set_tok_reg (newtok[0], AXP_REG_T9); @@ -2544,7 +2546,7 @@ emit_ustX (const expressionS *tok, /* Emit "stq_u $t10, size-1($at)". */ set_tok_reg (newtok[0], AXP_REG_T10); - set_tok_const (newtok[1], (1 << lgsize) - 1); + set_tok_const (newtok[1], (1 << lgsize.i) - 1); set_tok_preg (newtok[2], AXP_REG_AT); assemble_tokens ("stq_u", newtok, 3, 1); @@ -2560,15 +2562,13 @@ emit_ustX (const expressionS *tok, static void emit_sextX (const expressionS *tok, int ntok, - const void * vlgsize) + alpha_macro_arg lgsize) { - int lgsize = (intptr_t) vlgsize; - if (alpha_target & AXP_OPCODE_BWX) - assemble_tokens (sextX_op[lgsize], tok, ntok, 0); + assemble_tokens (sextX_op[lgsize.i], tok, ntok, 0); else { - int bitshift = 64 - 8 * (1 << lgsize); + int bitshift = 64 - 8 * (1 << lgsize.i); expressionS newtok[3]; /* Emit "sll src,bits,dst". */ @@ -2593,7 +2593,7 @@ emit_sextX (const expressionS *tok, static void emit_division (const expressionS *tok, int ntok, - const void * symname) + alpha_macro_arg symname) { /* DIVISION and MODULUS. Yech. @@ -2664,7 +2664,7 @@ emit_division (const expressionS *tok, } } - sym = symbol_find_or_make (symname); + sym = symbol_find_or_make (symname.p); set_tok_reg (newtok[0], AXP_REG_AT); set_tok_sym (newtok[1], sym, 0); @@ -2690,7 +2690,7 @@ emit_division (const expressionS *tok, static void emit_division (const expressionS *tok, int ntok, - const void * symname) + alpha_macro_arg symname) { /* DIVISION and MODULUS. Yech. Convert @@ -2717,7 +2717,7 @@ emit_division (const expressionS *tok, else rr = regno (tok[2].X_add_number); - sym = symbol_find_or_make (symname); + sym = symbol_find_or_make (symname.p); /* Move the operands into the right place. */ if (yr == AXP_REG_T10 && xr == AXP_REG_T11) @@ -2796,9 +2796,8 @@ FIXME static void emit_jsrjmp (const expressionS *tok, int ntok, - const void * vopname) + alpha_macro_arg opname) { - const char *opname = vopname; struct alpha_insn insn; expressionS newtok[3]; int r, tokidx = 0; @@ -2807,7 +2806,7 @@ emit_jsrjmp (const expressionS *tok, if (tokidx < ntok && tok[tokidx].X_op == O_register) r = regno (tok[tokidx++].X_add_number); else - r = strcmp (opname, "jmp") == 0 ? AXP_REG_ZERO : AXP_REG_RA; + r = strcmp (opname.p, "jmp") == 0 ? AXP_REG_ZERO : AXP_REG_RA; set_tok_reg (newtok[0], r); @@ -2821,7 +2820,7 @@ emit_jsrjmp (const expressionS *tok, { int basereg = alpha_gp_register; lituse = load_expression (r = AXP_REG_PV, &tok[tokidx], - &basereg, NULL, opname); + &basereg, NULL, opname.p); } #endif @@ -2834,7 +2833,7 @@ emit_jsrjmp (const expressionS *tok, #endif set_tok_const (newtok[2], 0); - assemble_tokens_to_insn (opname, newtok, 3, &insn); + assemble_tokens_to_insn (opname.p, newtok, 3, &insn); if (lituse) { @@ -2892,9 +2891,8 @@ emit_jsrjmp (const expressionS *tok, static void emit_retjcr (const expressionS *tok, int ntok, - const void * vopname) + alpha_macro_arg opname) { - const char *opname = vopname; expressionS newtok[3]; int r, tokidx = 0; @@ -2916,9 +2914,9 @@ emit_retjcr (const expressionS *tok, if (tokidx < ntok) newtok[2] = tok[tokidx]; else - set_tok_const (newtok[2], strcmp (opname, "ret") == 0); + set_tok_const (newtok[2], strcmp (opname.p, "ret") == 0); - assemble_tokens (opname, newtok, 3, 0); + assemble_tokens (opname.p, newtok, 3, 0); } /* Implement the ldgp macro. */ @@ -2926,7 +2924,7 @@ emit_retjcr (const expressionS *tok, static void emit_ldgp (const expressionS *tok ATTRIBUTE_UNUSED, int ntok ATTRIBUTE_UNUSED, - const void * unused ATTRIBUTE_UNUSED) + alpha_macro_arg unused ATTRIBUTE_UNUSED) { #ifdef OBJ_AOUT FIXME @@ -2987,167 +2985,167 @@ FIXME static const struct alpha_macro alpha_macros[] = { /* Load/Store macros. */ - { "lda", emit_lda, NULL, + { "lda", emit_lda, { NULL }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldah", emit_ldah, NULL, + { "ldah", emit_ldah, { NULL }, { MACRO_IR, MACRO_EXP, MACRO_EOA } }, - { "ldl", emit_ir_load, "ldl", + { "ldl", emit_ir_load, { "ldl" }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldl_l", emit_ir_load, "ldl_l", + { "ldl_l", emit_ir_load, { "ldl_l" }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldq", emit_ir_load, "ldq", + { "ldq", emit_ir_load, { "ldq" }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldq_l", emit_ir_load, "ldq_l", + { "ldq_l", emit_ir_load, { "ldq_l" }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldq_u", emit_ir_load, "ldq_u", + { "ldq_u", emit_ir_load, { "ldq_u" }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldf", emit_loadstore, "ldf", + { "ldf", emit_loadstore, { "ldf" }, { MACRO_FPR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldg", emit_loadstore, "ldg", + { "ldg", emit_loadstore, { "ldg" }, { MACRO_FPR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "lds", emit_loadstore, "lds", + { "lds", emit_loadstore, { "lds" }, { MACRO_FPR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldt", emit_loadstore, "ldt", + { "ldt", emit_loadstore, { "ldt" }, { MACRO_FPR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldb", emit_ldX, (void *) 0, + { "ldb", emit_ldX, { .i = 0 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldbu", emit_ldXu, (void *) 0, + { "ldbu", emit_ldXu, { .i = 0 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldw", emit_ldX, (void *) 1, + { "ldw", emit_ldX, { .i = 1 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldwu", emit_ldXu, (void *) 1, + { "ldwu", emit_ldXu, { .i = 1 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "uldw", emit_uldX, (void *) 1, + { "uldw", emit_uldX, { .i = 1 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "uldwu", emit_uldXu, (void *) 1, + { "uldwu", emit_uldXu, { .i = 1 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "uldl", emit_uldX, (void *) 2, + { "uldl", emit_uldX, { .i = 2 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "uldlu", emit_uldXu, (void *) 2, + { "uldlu", emit_uldXu, { .i = 2 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "uldq", emit_uldXu, (void *) 3, + { "uldq", emit_uldXu, { .i = 3 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ldgp", emit_ldgp, NULL, + { "ldgp", emit_ldgp, { NULL }, { MACRO_IR, MACRO_EXP, MACRO_PIR, MACRO_EOA } }, - { "ldi", emit_lda, NULL, + { "ldi", emit_lda, { NULL }, { MACRO_IR, MACRO_EXP, MACRO_EOA } }, - { "ldil", emit_ldil, NULL, + { "ldil", emit_ldil, { NULL }, { MACRO_IR, MACRO_EXP, MACRO_EOA } }, - { "ldiq", emit_lda, NULL, + { "ldiq", emit_lda, { NULL }, { MACRO_IR, MACRO_EXP, MACRO_EOA } }, - { "stl", emit_loadstore, "stl", + { "stl", emit_loadstore, { "stl" }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "stl_c", emit_loadstore, "stl_c", + { "stl_c", emit_loadstore, { "stl_c" }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "stq", emit_loadstore, "stq", + { "stq", emit_loadstore, { "stq" }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "stq_c", emit_loadstore, "stq_c", + { "stq_c", emit_loadstore, { "stq_c" }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "stq_u", emit_loadstore, "stq_u", + { "stq_u", emit_loadstore, { "stq_u" }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "stf", emit_loadstore, "stf", + { "stf", emit_loadstore, { "stf" }, { MACRO_FPR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "stg", emit_loadstore, "stg", + { "stg", emit_loadstore, { "stg" }, { MACRO_FPR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "sts", emit_loadstore, "sts", + { "sts", emit_loadstore, { "sts" }, { MACRO_FPR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "stt", emit_loadstore, "stt", + { "stt", emit_loadstore, { "stt" }, { MACRO_FPR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "stb", emit_stX, (void *) 0, + { "stb", emit_stX, { .i = 0 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "stw", emit_stX, (void *) 1, + { "stw", emit_stX, { .i = 1 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ustw", emit_ustX, (void *) 1, + { "ustw", emit_ustX, { .i = 1 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ustl", emit_ustX, (void *) 2, + { "ustl", emit_ustX, { .i = 2 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, - { "ustq", emit_ustX, (void *) 3, + { "ustq", emit_ustX, { .i = 3 }, { MACRO_IR, MACRO_EXP, MACRO_OPIR, MACRO_EOA } }, /* Arithmetic macros. */ - { "sextb", emit_sextX, (void *) 0, + { "sextb", emit_sextX, { .i = 0 }, { MACRO_IR, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_EOA, /* MACRO_EXP, MACRO_IR, MACRO_EOA */ } }, - { "sextw", emit_sextX, (void *) 1, + { "sextw", emit_sextX, { .i = 1 }, { MACRO_IR, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_EOA, /* MACRO_EXP, MACRO_IR, MACRO_EOA */ } }, - { "divl", emit_division, "__divl", + { "divl", emit_division, { "__divl" }, { MACRO_IR, MACRO_IR, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_IR, MACRO_EOA, /* MACRO_IR, MACRO_EXP, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_EXP, MACRO_EOA */ } }, - { "divlu", emit_division, "__divlu", + { "divlu", emit_division, { "__divlu" }, { MACRO_IR, MACRO_IR, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_IR, MACRO_EOA, /* MACRO_IR, MACRO_EXP, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_EXP, MACRO_EOA */ } }, - { "divq", emit_division, "__divq", + { "divq", emit_division, { "__divq" }, { MACRO_IR, MACRO_IR, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_IR, MACRO_EOA, /* MACRO_IR, MACRO_EXP, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_EXP, MACRO_EOA */ } }, - { "divqu", emit_division, "__divqu", + { "divqu", emit_division, { "__divqu" }, { MACRO_IR, MACRO_IR, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_IR, MACRO_EOA, /* MACRO_IR, MACRO_EXP, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_EXP, MACRO_EOA */ } }, - { "reml", emit_division, "__reml", + { "reml", emit_division, { "__reml" }, { MACRO_IR, MACRO_IR, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_IR, MACRO_EOA, /* MACRO_IR, MACRO_EXP, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_EXP, MACRO_EOA */ } }, - { "remlu", emit_division, "__remlu", + { "remlu", emit_division, { "__remlu" }, { MACRO_IR, MACRO_IR, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_IR, MACRO_EOA, /* MACRO_IR, MACRO_EXP, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_EXP, MACRO_EOA */ } }, - { "remq", emit_division, "__remq", + { "remq", emit_division, { "__remq" }, { MACRO_IR, MACRO_IR, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_IR, MACRO_EOA, /* MACRO_IR, MACRO_EXP, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_EXP, MACRO_EOA */ } }, - { "remqu", emit_division, "__remqu", + { "remqu", emit_division, { "__remqu" }, { MACRO_IR, MACRO_IR, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_IR, MACRO_EOA, /* MACRO_IR, MACRO_EXP, MACRO_IR, MACRO_EOA, MACRO_IR, MACRO_EXP, MACRO_EOA */ } }, - { "jsr", emit_jsrjmp, "jsr", + { "jsr", emit_jsrjmp, { "jsr" }, { MACRO_PIR, MACRO_EXP, MACRO_EOA, MACRO_PIR, MACRO_EOA, MACRO_IR, MACRO_EXP, MACRO_EOA, MACRO_EXP, MACRO_EOA } }, - { "jmp", emit_jsrjmp, "jmp", + { "jmp", emit_jsrjmp, { "jmp" }, { MACRO_PIR, MACRO_EXP, MACRO_EOA, MACRO_PIR, MACRO_EOA, MACRO_IR, MACRO_EXP, MACRO_EOA, MACRO_EXP, MACRO_EOA } }, - { "ret", emit_retjcr, "ret", + { "ret", emit_retjcr, { "ret" }, { MACRO_IR, MACRO_EXP, MACRO_EOA, MACRO_IR, MACRO_EOA, MACRO_PIR, MACRO_EXP, MACRO_EOA, MACRO_PIR, MACRO_EOA, MACRO_EXP, MACRO_EOA, MACRO_EOA } }, - { "jcr", emit_retjcr, "jcr", + { "jcr", emit_retjcr, { "jcr" }, { MACRO_IR, MACRO_EXP, MACRO_EOA, MACRO_IR, MACRO_EOA, MACRO_PIR, MACRO_EXP, MACRO_EOA, MACRO_PIR, MACRO_EOA, MACRO_EXP, MACRO_EOA, MACRO_EOA } }, - { "jsr_coroutine", emit_retjcr, "jcr", + { "jsr_coroutine", emit_retjcr, { "jcr" }, { MACRO_IR, MACRO_EXP, MACRO_EOA, MACRO_IR, MACRO_EOA, MACRO_PIR, MACRO_EXP, MACRO_EOA, @@ -3173,7 +3171,7 @@ find_macro_match (const struct alpha_macro *first_macro, do { - const enum alpha_macro_arg *arg = macro->argsets; + const alpha_macro_argset *arg = macro->argsets; int tokidx = 0; while (*arg) diff --git a/gas/config/tc-cr16.c b/gas/config/tc-cr16.c index 5bf088d..99bc1bd 100644 --- a/gas/config/tc-cr16.c +++ b/gas/config/tc-cr16.c @@ -636,15 +636,15 @@ md_estimate_size_before_relax (fragS *fragp, asection *seg) } void -md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, fragS *fragP) +md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, + asection *sec ATTRIBUTE_UNUSED, + fragS *fragP) { /* 'opcode' points to the start of the instruction, whether we need to change the instruction's fixed encoding. */ char *opcode = &fragP->fr_literal[0] + fragP->fr_fix; bfd_reloc_code_real_type reloc; - subseg_change (sec, 0); - switch (fragP->fr_subtype) { case 0: diff --git a/gas/config/tc-crx.c b/gas/config/tc-crx.c index d5eb9db..e519214 100644 --- a/gas/config/tc-crx.c +++ b/gas/config/tc-crx.c @@ -368,15 +368,15 @@ md_estimate_size_before_relax (fragS *fragp, asection *seg) } void -md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, fragS *fragP) +md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, + asection *sec ATTRIBUTE_UNUSED, + fragS *fragP) { /* 'opcode' points to the start of the instruction, whether we need to change the instruction's fixed encoding. */ char *opcode = &fragP->fr_literal[0] + fragP->fr_fix; bfd_reloc_code_real_type reloc; - subseg_change (sec, 0); - switch (fragP->fr_subtype) { case 0: diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 9134cef..7d0d855 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -4328,14 +4328,16 @@ got16_reloc_p (bfd_reloc_code_real_type reloc) static inline bool hi16_reloc_p (bfd_reloc_code_real_type reloc) { - return (reloc == BFD_RELOC_HI16_S || reloc == BFD_RELOC_MIPS16_HI16_S + return (reloc == BFD_RELOC_HI16_S || reloc == BFD_RELOC_HI16_S_PCREL + || reloc == BFD_RELOC_MIPS16_HI16_S || reloc == BFD_RELOC_MICROMIPS_HI16_S); } static inline bool lo16_reloc_p (bfd_reloc_code_real_type reloc) { - return (reloc == BFD_RELOC_LO16 || reloc == BFD_RELOC_MIPS16_LO16 + return (reloc == BFD_RELOC_LO16 || reloc == BFD_RELOC_LO16_PCREL + || reloc == BFD_RELOC_MIPS16_LO16 || reloc == BFD_RELOC_MICROMIPS_LO16); } @@ -4402,8 +4404,9 @@ static inline bfd_reloc_code_real_type matching_lo_reloc (bfd_reloc_code_real_type reloc) { return (mips16_reloc_p (reloc) ? BFD_RELOC_MIPS16_LO16 - : (micromips_reloc_p (reloc) ? BFD_RELOC_MICROMIPS_LO16 - : BFD_RELOC_LO16)); + : micromips_reloc_p (reloc) ? BFD_RELOC_MICROMIPS_LO16 + : reloc == BFD_RELOC_HI16_S_PCREL ? BFD_RELOC_LO16_PCREL + : BFD_RELOC_LO16); } /* Return true if the given fixup is followed by a matching R_MIPS_LO16 @@ -4415,7 +4418,12 @@ fixup_has_matching_lo_p (fixS *fixp) return (fixp->fx_next != NULL && fixp->fx_next->fx_r_type == matching_lo_reloc (fixp->fx_r_type) && fixp->fx_addsy == fixp->fx_next->fx_addsy - && fixp->fx_offset == fixp->fx_next->fx_offset); + && (fixp->fx_r_type == BFD_RELOC_HI16_S_PCREL + ? (fixp->fx_next->fx_offset - fixp->fx_offset + == ((fixp->fx_next->fx_frag->fr_address + + fixp->fx_next->fx_where) + - (fixp->fx_frag->fr_address + fixp->fx_where))) + : fixp->fx_offset == fixp->fx_next->fx_offset)); } /* Move all labels in LABELS to the current insertion point. TEXT_P @@ -15413,6 +15421,13 @@ mips_frob_file_before_adjust (void) if the user knows that adding 2 to "foo" will not induce a carry to the high 16 bits. + A %pcrel_lo() expression matches a %pcrel_hi() expression if: + + (a) it refers to the same symbol; and + (b) the offset applied in the %pcrel_lo() expression equals + the offset applied in the %pcrel_hi() expression plus the + distance from the location of %pcrel_hi() to %pcrel_lo(). + When several %lo()s match a particular %got() or %hi(), we use the following rules to distinguish them: @@ -15484,9 +15499,14 @@ mips_frob_file (void) if ((*pos)->fx_r_type == looking_for_rtype && symbol_same_p ((*pos)->fx_addsy, l->fixp->fx_addsy) - && (*pos)->fx_offset >= l->fixp->fx_offset + && (l->fixp->fx_r_type == BFD_RELOC_HI16_S_PCREL + ? ((*pos)->fx_offset - l->fixp->fx_offset + == (((*pos)->fx_frag->fr_address + (*pos)->fx_where) + - (l->fixp->fx_frag->fr_address + l->fixp->fx_where))) + : (*pos)->fx_offset >= l->fixp->fx_offset) && (lo_pos == NULL - || (*pos)->fx_offset < (*lo_pos)->fx_offset + || (l->fixp->fx_r_type != BFD_RELOC_HI16_S_PCREL + && (*pos)->fx_offset < (*lo_pos)->fx_offset) || (!matched_lo_p && (*pos)->fx_offset == (*lo_pos)->fx_offset))) lo_pos = pos; @@ -15497,15 +15517,20 @@ mips_frob_file (void) /* If we found a match, remove the high-part relocation from its current position and insert it before the low-part relocation. - Make the offsets match so that fixup_has_matching_lo_p() - will return true. + + For absolute relocations make the offsets match so that + fixup_has_matching_lo_p() will return true. For PC-relative + relocations the distance between the offsets is retained + according to expectations in `fixup_has_matching_lo_p', + `_bfd_mips_elf_lo16_reloc' and `mips_elf_add_lo16_rel_addend'. We don't warn about unmatched high-part relocations since some versions of gcc have been known to emit dead "lui ...%hi(...)" instructions. */ if (lo_pos != NULL) { - l->fixp->fx_offset = (*lo_pos)->fx_offset; + if (l->fixp->fx_r_type != BFD_RELOC_HI16_S_PCREL) + l->fixp->fx_offset = (*lo_pos)->fx_offset; if (l->fixp->fx_next != *lo_pos) { *hi_pos = l->fixp->fx_next; diff --git a/gas/config/tc-mn10200.c b/gas/config/tc-mn10200.c index 210e9b0..1eb4702 100644 --- a/gas/config/tc-mn10200.c +++ b/gas/config/tc-mn10200.c @@ -328,7 +328,6 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, static unsigned long label_count = 0; char buf[40]; - subseg_change (sec, 0); if (fragP->fr_subtype == 0) { fix_new (fragP, fragP->fr_fix + 1, 1, fragP->fr_symbol, diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c index a1d89f0..db87d52 100644 --- a/gas/config/tc-mn10300.c +++ b/gas/config/tc-mn10300.c @@ -466,7 +466,6 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, static unsigned long label_count = 0; char buf[40]; - subseg_change (sec, 0); if (fragP->fr_subtype == 0) { fix_new (fragP, fragP->fr_fix + 1, 1, fragP->fr_symbol, diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c index d5d3976..b073d8e 100644 --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -24,6 +24,8 @@ #include "subsegs.h" #include "dwarf2dbg.h" #include "dw2gencfi.h" +#include "sframe.h" +#include "gen-sframe.h" #include "opcode/s390.h" #include "elf/s390.h" @@ -97,6 +99,17 @@ const char FLT_CHARS[] = "dD"; /* The dwarf2 data alignment, adjusted for 32 or 64 bit. */ int s390_cie_data_alignment; +/* Register numbers used for SFrame stack trace info. */ + +/* Designated stack pointer DWARF register number according to s390x ELF ABI. */ +const unsigned int s390_sframe_cfa_sp_reg = 15; + +/* Preferred frame pointer DWARF register number according to s390x ELF ABI. */ +const unsigned int s390_sframe_cfa_fp_reg = 11; + +/* Designated return address DWARF register number according to s390x ELF ABI. */ +const unsigned int s390_sframe_cfa_ra_reg = DWARF2_DEFAULT_RETURN_COLUMN; + /* The target specific pseudo-ops which we support. */ /* Define the prototypes for the pseudo-ops */ @@ -2865,6 +2878,48 @@ tc_s390_regname_to_dw2regnum (char *regname) return regnum; } +/* Whether SFrame stack trace info is supported. */ + +bool +s390_support_sframe_p (void) +{ + /* At this time, SFrame is supported for s390x (64-bit) only. */ + return (s390_arch_size == 64); +} + +/* Specify if RA tracking is needed. */ + +bool +s390_sframe_ra_tracking_p (void) +{ + return true; +} + +/* Specify the fixed offset to recover RA from CFA. + (useful only when RA tracking is not needed). */ + +offsetT +s390_sframe_cfa_ra_offset (void) +{ + return (offsetT) SFRAME_CFA_FIXED_RA_INVALID; +} + +/* Get the abi/arch identifier for SFrame. */ + +unsigned char +s390_sframe_get_abi_arch (void) +{ + unsigned char sframe_abi_arch = 0; + + if (s390_support_sframe_p ()) + { + gas_assert (target_big_endian); + sframe_abi_arch = SFRAME_ABI_S390X_ENDIAN_BIG; + } + + return sframe_abi_arch; +} + void s390_elf_final_processing (void) { diff --git a/gas/config/tc-s390.h b/gas/config/tc-s390.h index 9206c02..c92769e 100644 --- a/gas/config/tc-s390.h +++ b/gas/config/tc-s390.h @@ -98,3 +98,34 @@ extern int s390_cie_data_alignment; extern void s390_elf_final_processing (void); #define elf_tc_final_processing s390_elf_final_processing + +/* SFrame. */ + +/* Whether SFrame stack trace info is supported. */ +extern bool s390_support_sframe_p (void); +#define support_sframe_p s390_support_sframe_p + +/* The stack pointer DWARF register number for SFrame CFA tracking. */ +extern const unsigned int s390_sframe_cfa_sp_reg; +#define SFRAME_CFA_SP_REG s390_sframe_cfa_sp_reg + +/* The frame pointer DWARF register number for SFrame CFA and FP tracking. */ +extern const unsigned int s390_sframe_cfa_fp_reg; +#define SFRAME_CFA_FP_REG s390_sframe_cfa_fp_reg + +/* The return address DWARF register number for SFrame RA tracking. */ +extern const unsigned int s390_sframe_cfa_ra_reg; +#define SFRAME_CFA_RA_REG s390_sframe_cfa_ra_reg + +/* Whether SFrame return address tracking is needed. */ +extern bool s390_sframe_ra_tracking_p (void); +#define sframe_ra_tracking_p s390_sframe_ra_tracking_p + +/* The fixed offset from CFA for SFrame to recover the return address. + (useful only when SFrame RA tracking is not needed). */ +extern offsetT s390_sframe_cfa_ra_offset (void); +#define sframe_cfa_ra_offset s390_sframe_cfa_ra_offset + +/* The abi/arch identifier for SFrame. */ +unsigned char s390_sframe_get_abi_arch (void); +#define sframe_get_abi_arch s390_sframe_get_abi_arch diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c index 5653583..551d8e8 100644 --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -3018,7 +3018,6 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT seg, fragS *fragP) { case C (COND_JUMP, COND8): case C (COND_JUMP_DELAY, COND8): - subseg_change (seg, 0); fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol, fragP->fr_offset, 1, BFD_RELOC_SH_PCDISP8BY2); fragP->fr_fix += 2; @@ -3026,7 +3025,6 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT seg, fragS *fragP) break; case C (UNCOND_JUMP, UNCOND12): - subseg_change (seg, 0); fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol, fragP->fr_offset, 1, BFD_RELOC_SH_PCDISP12BY2); fragP->fr_fix += 2; @@ -3082,7 +3080,6 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT seg, fragS *fragP) its delay-slot insn already makes the branch reach. */ /* Build a relocation to six / four bytes farther on. */ - subseg_change (seg, 0); fix_new (fragP, fragP->fr_fix, 2, section_symbol (seg), fragP->fr_address + fragP->fr_fix + (delay ? 4 : 6), 1, BFD_RELOC_SH_PCDISP8BY2); diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c index 8a86b1d..f73c3bf 100644 --- a/gas/config/tc-v850.c +++ b/gas/config/tc-v850.c @@ -1673,42 +1673,29 @@ md_atof (int type, char *litp, int *sizep) void md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, - asection *sec, + asection *sec ATTRIBUTE_UNUSED, fragS *fragP) { - union u - { - bfd_reloc_code_real_type fx_r_type; - char * fr_opcode; - } - opcode_converter; - subseg_change (sec, 0); - - opcode_converter.fr_opcode = fragP->fr_opcode; - - subseg_change (sec, 0); + unsigned int opindex = (uintptr_t) fragP->fr_opcode; if (fragP->fr_subtype == SUBYPTE_LOOP_16_22) { fix_new (fragP, fragP->fr_fix, 4, fragP->fr_symbol, - fragP->fr_offset, 1, - BFD_RELOC_UNUSED + opcode_converter.fx_r_type); + fragP->fr_offset, 1, BFD_RELOC_UNUSED + opindex); fragP->fr_fix += 4; } else if (fragP->fr_subtype == SUBYPTE_LOOP_16_22 + 1) { - unsigned char * buffer = - (unsigned char *) (fragP->fr_fix + &fragP->fr_literal[0]); - int loop_reg = (buffer[0] & 0x1f); + char *buffer = fragP->fr_literal + fragP->fr_fix; + int loop_reg = buffer[0] & 0x1f; /* Add -1.reg. */ - md_number_to_chars ((char *) buffer, 0x025f | (loop_reg << 11), 2); + md_number_to_chars (buffer, 0x025f | (loop_reg << 11), 2); /* Now create the conditional branch + fixup to the final target. */ /* 0x000107ea = bne LBL(disp17). */ - md_number_to_chars ((char *) buffer + 2, 0x000107ea, 4); + md_number_to_chars (buffer + 2, 0x000107ea, 4); fix_new (fragP, fragP->fr_fix + 2, 4, fragP->fr_symbol, - fragP->fr_offset, 1, - BFD_RELOC_V850_17_PCREL); + fragP->fr_offset, 1, BFD_RELOC_V850_17_PCREL); fragP->fr_fix += 6; } /* In range conditional or unconditional branch. */ @@ -1725,8 +1712,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, { fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol, - fragP->fr_offset, 1, - BFD_RELOC_UNUSED + opcode_converter.fx_r_type); + fragP->fr_offset, 1, BFD_RELOC_UNUSED + opindex); fragP->fr_fix += 2; } /* V850e2r-v3 17bit conditional branch. */ @@ -1735,8 +1721,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, || fragP->fr_subtype == SUBYPTE_SA_9_17_22 + 1 || fragP->fr_subtype == SUBYPTE_SA_9_17_22_32 + 1) { - unsigned char *buffer = - (unsigned char *) (fragP->fr_fix + &fragP->fr_literal[0]); + char *buffer = fragP->fr_literal + fragP->fr_fix; buffer[0] &= 0x0f; /* Use condition. */ buffer[0] |= 0xe0; @@ -1744,7 +1729,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, /* Now create the unconditional branch + fixup to the final target. */ - md_number_to_chars ((char *) buffer + 2, 0x0001, 2); + md_number_to_chars (buffer + 2, 0x0001, 2); fix_new (fragP, fragP->fr_fix, 4, fragP->fr_symbol, fragP->fr_offset, 1, BFD_RELOC_V850_17_PCREL); fragP->fr_fix += 4; @@ -1755,8 +1740,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, || fragP->fr_subtype == SUBYPTE_COND_9_17_22 + 2 || fragP->fr_subtype == SUBYPTE_COND_9_17_22_32 + 2) { - unsigned char *buffer = - (unsigned char *) (fragP->fr_fix + fragP->fr_literal); + char *buffer = fragP->fr_literal + fragP->fr_fix; /* Reverse the condition of the first branch. */ buffer[0] ^= 0x08; @@ -1769,7 +1753,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, /* Now create the unconditional branch + fixup to the final target. */ - md_number_to_chars ((char *) buffer + 2, 0x00000780, 4); + md_number_to_chars (buffer + 2, 0x00000780, 4); fix_new (fragP, fragP->fr_fix + 2, 4, fragP->fr_symbol, fragP->fr_offset, 1, BFD_RELOC_V850_22_PCREL); fragP->fr_fix += 6; @@ -1778,8 +1762,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, else if (fragP->fr_subtype == SUBYPTE_COND_9_22_32 + 2 || fragP->fr_subtype == SUBYPTE_COND_9_17_22_32 + 3) { - unsigned char *buffer = - (unsigned char *) (fragP->fr_fix + fragP->fr_literal); + char *buffer = fragP->fr_literal + fragP->fr_fix; /* Reverse the condition of the first branch. */ buffer[0] ^= 0x08; @@ -1792,7 +1775,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, /* Now create the unconditional branch + fixup to the final target. */ - md_number_to_chars ((char *) buffer + 2, 0x02e0, 2); + md_number_to_chars (buffer + 2, 0x02e0, 2); fix_new (fragP, fragP->fr_fix + 4, 4, fragP->fr_symbol, fragP->fr_offset + 2, 1, BFD_RELOC_V850_32_PCREL); fragP->fr_fix += 8; @@ -1820,8 +1803,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, || fragP->fr_subtype == SUBYPTE_SA_9_17_22 + 2 || fragP->fr_subtype == SUBYPTE_SA_9_17_22_32 + 2) { - unsigned char *buffer = - (unsigned char *) (fragP->fr_fix + fragP->fr_literal); + char *buffer = fragP->fr_literal + fragP->fr_fix; /* bsa .+4 */ buffer[0] &= 0x8f; @@ -1829,23 +1811,21 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, buffer[1] &= 0x07; /* br .+6 */ - md_number_to_chars ((char *) buffer + 2, 0x05b5, 2); + md_number_to_chars (buffer + 2, 0x05b5, 2); /* Now create the unconditional branch + fixup to the final target. */ /* jr SYM */ - md_number_to_chars ((char *) buffer + 4, 0x00000780, 4); + md_number_to_chars (buffer + 4, 0x00000780, 4); fix_new (fragP, fragP->fr_fix + 4, 4, fragP->fr_symbol, - fragP->fr_offset, 1, - BFD_RELOC_V850_22_PCREL); + fragP->fr_offset, 1, BFD_RELOC_V850_22_PCREL); fragP->fr_fix += 8; } /* Out of range SA conditional branch. Emit a branch around a 32bit jump. */ else if (fragP->fr_subtype == SUBYPTE_SA_9_22_32 + 2 || fragP->fr_subtype == SUBYPTE_SA_9_17_22_32 + 3) { - unsigned char *buffer = - (unsigned char *) (fragP->fr_fix + fragP->fr_literal); + char *buffer = fragP->fr_literal + fragP->fr_fix; /* bsa .+2 */ buffer[0] &= 0x8f; @@ -1853,12 +1833,12 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, buffer[1] &= 0x07; /* br .+8 */ - md_number_to_chars ((char *) buffer + 2, 0x05c5, 2); + md_number_to_chars (buffer + 2, 0x05c5, 2); /* Now create the unconditional branch + fixup to the final target. */ /* jr SYM */ - md_number_to_chars ((char *) buffer + 4, 0x02e0, 2); + md_number_to_chars (buffer + 4, 0x02e0, 2); fix_new (fragP, fragP->fr_fix + 6, 4, fragP->fr_symbol, fragP->fr_offset + 2, 1, BFD_RELOC_V850_32_PCREL); @@ -3068,7 +3048,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 6, 2, SUBYPTE_LOOP_16_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f+4, 0, 4); } @@ -3085,7 +3065,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 4, 2, SUBYPTE_UNCOND_9_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 2); } @@ -3094,7 +3074,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 6, 4, SUBYPTE_UNCOND_9_22_32, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 4); } @@ -3111,7 +3091,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 8, 6, SUBYPTE_SA_9_17_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 6); } @@ -3120,7 +3100,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 6, 4, SUBYPTE_COND_9_17_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 4); } @@ -3132,7 +3112,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 8, 6, SUBYPTE_SA_9_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 6); } @@ -3141,7 +3121,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 6, 4, SUBYPTE_COND_9_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 4); } @@ -3156,7 +3136,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 10, 8, SUBYPTE_SA_9_17_22_32, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 8); } @@ -3165,7 +3145,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 8, 6, SUBYPTE_COND_9_17_22_32, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 6); } @@ -3177,7 +3157,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 10, 8, SUBYPTE_SA_9_22_32, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 8); } @@ -3186,7 +3166,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 8, 6, SUBYPTE_COND_9_22_32, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(intptr_t) fixups[0].opindex); + (char *) (uintptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 6); } diff --git a/gas/configure b/gas/configure index e39c965..3212e5f 100755 --- a/gas/configure +++ b/gas/configure @@ -15182,287 +15182,6 @@ $as_echo "$LINGUAS" >&6; } fi - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - rm -f messages.po - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; } - GMSGFMT=":" - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - rm -f messages.po - fi - - ac_config_commands="$ac_config_commands default-2" - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. @@ -17282,13 +17001,6 @@ fi # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - target_cpu_type=${target_cpu_type} cgen_cpu_prefix=${cgen_cpu_prefix} obj_format=${obj_format} @@ -17308,7 +17020,6 @@ do "gdb.ini") CONFIG_FILES="$CONFIG_FILES gdb.ini:gdbinit.in" ;; ".gdbinit") CONFIG_FILES="$CONFIG_FILES .gdbinit:gdbinit.in" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; @@ -18740,107 +18451,6 @@ _LT_EOF ;; esac done ;; - "default-2":C) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.ac is obsolete" || echo "setting ALL_LINGUAS in configure.ac is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.ac. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; "default":C) rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h diff --git a/gas/configure.ac b/gas/configure.ac index e1d32c3..30fa5eb 100644 --- a/gas/configure.ac +++ b/gas/configure.ac @@ -941,8 +941,8 @@ AC_PROG_YACC AM_PROG_LEX ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN" -ZW_GNU_GETTEXT_SISTER_DIR AM_PO_SUBDIRS +ZW_GNU_GETTEXT_SISTER_DIR AM_MAINTAINER_MODE AM_CONDITIONAL(GENINSRC_NEVER, false) diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi index acfa003..dc64e09 100644 --- a/gas/doc/c-aarch64.texi +++ b/gas/doc/c-aarch64.texi @@ -136,6 +136,12 @@ is enabled by default. @item -mno-verbose-error This option disables verbose error messages in AArch64 gas. +@cindex @code{-menable-sysreg-checking} command-line option, AArch64 +@item -menable-sysreg-checking +This option enables error messages that are issued if an attempt is made to +assemble a system register access which will not execute on the target +architecture. + @end table @c man end @@ -235,6 +241,8 @@ automatically cause those extensions to be disabled. @tab Enable the 128-bit Atomic Instructions extension. @item @code{lsfe} @tab @code{fp} @tab Enable Large System Float Extension. +@item @code{lsui} @tab + @tab Enable Unprivileged Load/Store instructions. @item @code{lut} @tab @tab Enable the Lookup Table (LUT) extension. @item @code{memtag} @tab @@ -305,12 +313,18 @@ automatically cause those extensions to be disabled. @tab Enable Speculative Store Bypassing Safe state read and write. @item @code{ssve-fp8dot2} @tab @code{sme2}, @code{fp8} @tab Enable the Streaming SVE FP8 2-way dot product instructions. +@item @code{ssve-aes} @tab @code{sme2}, @code{sve-aes} + @tab Enable SVE AES instructions in streaming mode. @item @code{ssve-fp8dot4} @tab @code{sme2}, @code{fp8} @tab Enable the Streaming SVE FP8 4-way dot product instructions. @item @code{ssve-fp8fma} @tab @code{sme2}, @code{fp8} @tab Enable the Streaming SVE FP8 FMA instructions. @item @code{sve} @tab @code{fcma} @tab Enable the Scalable Vector Extension. +@item @code{sve-aes} @tab @code{aes} + @tab Enable the SVE PMULL128 instructions. +@item @code{sve-aes2} @tab +@tab Enable the SVE-AES2 extension. @item @code{sve-b16b16} @tab @tab Enable the SVE B16B16 extension. These instructions also require either @code{+sve2} or @code{+sme2}. @item @code{sve-bfscale} @tab @@ -361,6 +375,7 @@ automatically cause those extensions to be disabled. @item @code{armv9.3-a} @tab @code{armv9.2-a}, @code{armv8.8-a} @item @code{armv9.4-a} @tab @code{armv9.3-a}, @code{armv8.9-a} @item @code{armv9.5-a} @tab @code{armv9.4-a}, @code{cpa}, @code{lut}, @code{faminmax} +@item @code{armv9.6-a} @tab @code{armv9.5-a}, @code{cmpbr}, @code{fprcvt}, @code{lsui}, @code{occmo}, @code{sve2p2} @item @code{armv8-r} @tab @code{armv8.4-a+nolor} @end multitable @@ -484,6 +499,14 @@ incrementally to the architecture being compiled for. @c BBBBBBBBBBBBBBBBBBBBBBBBBB @c CCCCCCCCCCCCCCCCCCCCCCCCCC +@cindex @code{.cfi_mte_tagged_frame} directive, AArch64 +@item @code{.cfi_mte_tagged_frame} +The @code{.cfi_mte_tagged_frame} directive inserts a 'G' character into the +CIE corresponding to the current frame's FDE, meaning that the associated +frames may modify MTE tags on the stack space they use. This information is +intended to be used by the stack unwinder in order to properly untag stack +frames. + @cindex @code{.cpu} directive, AArch64 @item .cpu @var{name} Set the target processor. Valid values for @var{name} are the same as diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c index 5eb8a5d..57fffab 100644 --- a/gas/dw2gencfi.c +++ b/gas/dw2gencfi.c @@ -91,11 +91,6 @@ #define tc_cfi_reloc_for_encoding(e) BFD_RELOC_NONE #endif -/* Targets which support SFrame format will define this and return true. */ -#ifndef support_sframe_p -# define support_sframe_p() false -#endif - /* Private segment collection list. */ struct dwcfi_seg_list { @@ -414,7 +409,7 @@ alloc_fde_entry (void) fde->lsda_encoding = DW_EH_PE_omit; fde->eh_header_type = EH_COMPACT_UNKNOWN; #ifdef tc_fde_entry_init_extra - tc_fde_entry_init_extra (fde) + tc_fde_entry_init_extra (fde); #endif return fde; @@ -2277,7 +2272,7 @@ select_cie_for_fde (struct fde_entry *fde, bool eh_frame, cie->personality = fde->personality; cie->first = fde->data; #ifdef tc_cie_entry_init_extra - tc_cie_entry_init_extra (cie, fde) + tc_cie_entry_init_extra (cie, fde); #endif for (i = cie->first; i ; i = i->next) @@ -2606,6 +2601,7 @@ cfi_finish (void) - .sframe in the .cfi_sections directive. */ if (flag_gen_sframe || (all_cfi_sections & CFI_EMIT_sframe) != 0) { +#ifdef support_sframe_p if (support_sframe_p () && !SUPPORT_FRAME_LINKONCE) { segT sframe_seg; @@ -2615,9 +2611,11 @@ cfi_finish (void) (SEC_ALLOC | SEC_LOAD | SEC_DATA | DWARF2_EH_FRAME_READ_ONLY), alignment); + elf_section_type (sframe_seg) = SHT_GNU_SFRAME; output_sframe (sframe_seg); } else +#endif as_bad (_(".sframe not supported for target")); } diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c index 3cba508..806ef5f 100644 --- a/gas/gen-sframe.c +++ b/gas/gen-sframe.c @@ -135,10 +135,26 @@ sframe_fre_set_cfa_base_reg (struct sframe_row_entry *fre, fre->merge_candidate = false; } +static offsetT +sframe_fre_get_cfa_offset (const struct sframe_row_entry * fre) +{ + offsetT offset = fre->cfa_offset; + + /* For s390x undo adjustment of CFA offset (to enable 8-bit offsets). */ + if (sframe_get_abi_arch () == SFRAME_ABI_S390X_ENDIAN_BIG) + offset = SFRAME_V2_S390X_CFA_OFFSET_DECODE (offset); + + return offset; +} + static void sframe_fre_set_cfa_offset (struct sframe_row_entry *fre, offsetT cfa_offset) { + /* For s390x adjust CFA offset to enable 8-bit offsets. */ + if (sframe_get_abi_arch () == SFRAME_ABI_S390X_ENDIAN_BIG) + cfa_offset = SFRAME_V2_S390X_CFA_OFFSET_ENCODE (cfa_offset); + fre->cfa_offset = cfa_offset; fre->merge_candidate = false; } @@ -340,7 +356,10 @@ get_fre_num_offsets (struct sframe_row_entry *sframe_fre) if (sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK) fre_num_offsets++; if (sframe_ra_tracking_p () - && sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK) + && (sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK + /* For s390x account padding RA offset, if FP without RA saved. */ + || (sframe_get_abi_arch () == SFRAME_ABI_S390X_ENDIAN_BIG + && sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK))) fre_num_offsets++; return fre_num_offsets; } @@ -362,9 +381,15 @@ sframe_get_fre_offset_size (struct sframe_row_entry *sframe_fre) cfa_offset_size = get_offset_size_in_bytes (sframe_fre->cfa_offset); if (sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK) bp_offset_size = get_offset_size_in_bytes (sframe_fre->bp_offset); - if (sframe_ra_tracking_p () - && sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK) - ra_offset_size = get_offset_size_in_bytes (sframe_fre->ra_offset); + if (sframe_ra_tracking_p ()) + { + if (sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK) + ra_offset_size = get_offset_size_in_bytes (sframe_fre->ra_offset); + /* For s390x account padding RA offset, if FP without RA saved. */ + else if (sframe_get_abi_arch () == SFRAME_ABI_S390X_ENDIAN_BIG + && sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK) + ra_offset_size = get_offset_size_in_bytes (SFRAME_FRE_RA_OFFSET_INVALID); + } /* Get the maximum size needed to represent the offsets. */ max_offset_size = cfa_offset_size; @@ -570,11 +595,20 @@ output_sframe_row_entry (symbolS *fde_start_addr, fre_offset_func_map[idx].out_func (sframe_fre->cfa_offset); fre_write_offsets++; - if (sframe_ra_tracking_p () - && sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK) + if (sframe_ra_tracking_p ()) { - fre_offset_func_map[idx].out_func (sframe_fre->ra_offset); - fre_write_offsets++; + if (sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK) + { + fre_offset_func_map[idx].out_func (sframe_fre->ra_offset); + fre_write_offsets++; + } + /* For s390x write padding RA offset, if FP without RA saved. */ + else if (sframe_get_abi_arch () == SFRAME_ABI_S390X_ENDIAN_BIG + && sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK) + { + fre_offset_func_map[idx].out_func (SFRAME_FRE_RA_OFFSET_INVALID); + fre_write_offsets++; + } } if (sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK) { @@ -714,7 +748,7 @@ output_sframe_internal (void) } out_one (fixed_ra_offset); - /* None of the AMD64, or AARCH64 ABIs need the auxiliary header. + /* None of the AMD64, AARCH64, or s390x ABIs need the auxiliary header. When the need does arise to use this field, the appropriate backend must provide this information. */ out_one (0); /* Auxiliary SFrame header length. */ @@ -1025,7 +1059,7 @@ sframe_xlate_do_def_cfa_register (struct sframe_xlate_ctx *xlate_ctx, } sframe_fre_set_cfa_base_reg (cur_fre, cfi_insn->u.r); if (last_fre) - sframe_fre_set_cfa_offset (cur_fre, last_fre->cfa_offset); + sframe_fre_set_cfa_offset (cur_fre, sframe_fre_get_cfa_offset (last_fre)); cur_fre->merge_candidate = false; @@ -1117,7 +1151,11 @@ sframe_xlate_do_val_offset (const struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_U if (cfi_insn->u.ri.reg == SFRAME_CFA_FP_REG || (sframe_ra_tracking_p () && cfi_insn->u.ri.reg == SFRAME_CFA_RA_REG) /* Ignore SP reg, if offset matches assumed default rule. */ - || (cfi_insn->u.ri.reg == SFRAME_CFA_SP_REG && cfi_insn->u.ri.offset != 0)) + || (cfi_insn->u.ri.reg == SFRAME_CFA_SP_REG + && ((sframe_get_abi_arch () != SFRAME_ABI_S390X_ENDIAN_BIG + && cfi_insn->u.ri.offset != 0) + || (sframe_get_abi_arch () == SFRAME_ABI_S390X_ENDIAN_BIG + && cfi_insn->u.ri.offset != SFRAME_S390X_SP_VAL_OFFSET)))) { as_warn (_("no SFrame FDE emitted; %s with %s reg %u"), cfi_esc_p ? ".cfi_escape DW_CFA_val_offset" : ".cfi_val_offset", @@ -1129,6 +1167,36 @@ sframe_xlate_do_val_offset (const struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_U return SFRAME_XLATE_OK; } +/* S390-specific translate DW_CFA_register into SFrame context. + Return SFRAME_XLATE_OK if success. */ + +static int +s390_sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx, + struct cfi_insn_data *cfi_insn) +{ + /* The scratchpad FRE currently being updated with each cfi_insn + being interpreted. This FRE eventually gets linked in into the + list of FREs for the specific function. */ + struct sframe_row_entry *cur_fre = xlate_ctx->cur_fre; + + gas_assert (cur_fre); + + /* Change the rule for the register indicated by the register number to + be the specified register. Encode the register number as offset by + shifting it to the left by one and setting the least-significant bit + (LSB). The LSB can be used to differentiate offsets from register + numbers, as offsets from CFA are always a multiple of -8 on s390x. */ + if (cfi_insn->u.rr.reg1 == SFRAME_CFA_FP_REG) + sframe_fre_set_bp_track (cur_fre, + SFRAME_V2_S390X_OFFSET_ENCODE_REGNUM (cfi_insn->u.rr.reg2)); + else if (sframe_ra_tracking_p () + && cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG) + sframe_fre_set_ra_track (cur_fre, + SFRAME_V2_S390X_OFFSET_ENCODE_REGNUM (cfi_insn->u.rr.reg2)); + + return SFRAME_XLATE_OK; +} + /* Translate DW_CFA_register into SFrame context. Return SFRAME_XLATE_OK if success. */ @@ -1136,6 +1204,10 @@ static int sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED, struct cfi_insn_data *cfi_insn) { + /* Conditionally invoke S390-specific implementation. */ + if (sframe_get_abi_arch () == SFRAME_ABI_S390X_ENDIAN_BIG) + return s390_sframe_xlate_do_register (xlate_ctx, cfi_insn); + /* Previous value of register1 is register2. However, if the specified register1 is not interesting (FP or RA reg), the current DW_CFA_register instruction can be safely skipped without sacrificing the asynchronicity of @@ -1766,7 +1838,9 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx, = get_dw_fde_end_addrS (xlate_ctx->dw_fde); } - if (sframe_ra_tracking_p ()) + /* ABI/arch except s390x cannot represent FP without RA saved. */ + if (sframe_ra_tracking_p () + && sframe_get_abi_arch () != SFRAME_ABI_S390X_ENDIAN_BIG) { struct sframe_row_entry *fre; diff --git a/gas/testsuite/gas/aarch64/armv8-ras-1.d b/gas/testsuite/gas/aarch64/armv8-ras-1.d index b10495f..21596c0 100644 --- a/gas/testsuite/gas/aarch64/armv8-ras-1.d +++ b/gas/testsuite/gas/aarch64/armv8-ras-1.d @@ -1,4 +1,4 @@ -#as: -march=armv8-a+ras +#as: -menable-sysreg-checking -march=armv8-a+ras #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.d b/gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.d index 2c00b65..a429d2d 100644 --- a/gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.d +++ b/gas/testsuite/gas/aarch64/armv8_4-a-registers-illegal.d @@ -1,3 +1,3 @@ -#as: -march=armv8.4-a+crypto+sm4+sha3 +#as: -menable-sysreg-checking -march=armv8.4-a+crypto+sm4+sha3 #source: armv8_4-a-registers-illegal.s #error_output: armv8_4-a-registers-illegal.l diff --git a/gas/testsuite/gas/aarch64/armv8_4-a-registers.d b/gas/testsuite/gas/aarch64/armv8_4-a-registers.d index f643c89..f8768c3 100644 --- a/gas/testsuite/gas/aarch64/armv8_4-a-registers.d +++ b/gas/testsuite/gas/aarch64/armv8_4-a-registers.d @@ -1,4 +1,4 @@ -#as: -march=armv8.4-a +#as: -menable-sysreg-checking -march=armv8.4-a #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/cmpbr.d b/gas/testsuite/gas/aarch64/cmpbr.d index 457fdd7..9096350 100644 --- a/gas/testsuite/gas/aarch64/cmpbr.d +++ b/gas/testsuite/gas/aarch64/cmpbr.d @@ -1,5 +1,6 @@ #name: Test for FEAT_CMPBR #as: -march=armv8-a+cmpbr +#as: -march=armv9.6-a #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/fprcvt.d b/gas/testsuite/gas/aarch64/fprcvt.d index 9129858..f44690b 100644 --- a/gas/testsuite/gas/aarch64/fprcvt.d +++ b/gas/testsuite/gas/aarch64/fprcvt.d @@ -1,5 +1,6 @@ #name: FPRCVT instructions #as: -march=armv8-a+fprcvt +#as: -march=armv9.6-a #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/gpc3.d b/gas/testsuite/gas/aarch64/gpc3.d index 2535aef..749a0ae 100644 --- a/gas/testsuite/gas/aarch64/gpc3.d +++ b/gas/testsuite/gas/aarch64/gpc3.d @@ -1,5 +1,5 @@ #name: RME_GPC3 System register -#as: -march=armv9.5-a +#as: -menable-sysreg-checking -march=armv9.5-a #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/illegal-ite1-1.d b/gas/testsuite/gas/aarch64/illegal-ite1-1.d index 99ef4d4..d655d2d 100644 --- a/gas/testsuite/gas/aarch64/illegal-ite1-1.d +++ b/gas/testsuite/gas/aarch64/illegal-ite1-1.d @@ -1,3 +1,3 @@ -#as: -march=armv8-a +#as: -menable-sysreg-checking -march=armv8-a #source: ite1.s -#error_output: illegal-ite1-1.l
\ No newline at end of file +#error_output: illegal-ite1-1.l diff --git a/gas/testsuite/gas/aarch64/illegal-predres2-1.d b/gas/testsuite/gas/aarch64/illegal-predres2-1.d index f858afd..ff73ac8 100644 --- a/gas/testsuite/gas/aarch64/illegal-predres2-1.d +++ b/gas/testsuite/gas/aarch64/illegal-predres2-1.d @@ -1,3 +1,3 @@ -#as: -march=armv8-a +#as: -menable-sysreg-checking -march=armv8-a #source: predres2.s -#error_output: illegal-predres2-1.l
\ No newline at end of file +#error_output: illegal-predres2-1.l diff --git a/gas/testsuite/gas/aarch64/illegal-sve-aes2.d b/gas/testsuite/gas/aarch64/illegal-sve-aes2.d new file mode 100644 index 0000000..23c391d --- /dev/null +++ b/gas/testsuite/gas/aarch64/illegal-sve-aes2.d @@ -0,0 +1,4 @@ +#name: Illegal SVE-AES2 +#as: -march=armv8-a+sve-aes2 +#source: illegal-sve-aes2.s +#error_output: illegal-sve-aes2.l diff --git a/gas/testsuite/gas/aarch64/illegal-sve-aes2.l b/gas/testsuite/gas/aarch64/illegal-sve-aes2.l new file mode 100644 index 0000000..3f0c1ed --- /dev/null +++ b/gas/testsuite/gas/aarch64/illegal-sve-aes2.l @@ -0,0 +1,103 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `aesdimc { ?z0\.b-z1\.b ?},{ ?z0\.b-z1\.b ?},z0\.q\[4\]' +[^ :]+:[0-9]+: Error: operand 2 must be the same register as operand 1 -- `aesdimc { ?z0\.b-z1\.b ?},{ ?z1\.b-z2\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Error: operand mismatch -- `aesdimc { ?z0\.q-z1\.q ?},{ ?z0\.b-z1\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesdimc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesdimc { ?z0\.q-z1\.q ?},{ ?z0\.q-z1\.q ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesdimc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesdimc { ?z0\.b-z1\.b ?},{ ?z0\.b-z1\.b ?},z0\.b\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesdimc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `aesdimc { ?z0\.b-z3\.b ?},{ ?z0\.b-z3\.b ?},z0\.q\[4\]' +[^ :]+:[0-9]+: Error: too many registers in vector register list at operand 2 -- `aesdimc { ?z0\.b-z3\.b ?},{ ?z3\.b-z2\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Error: operand mismatch -- `aesdimc { ?z0\.q-z3\.q ?},{ ?z0\.b-z3\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesdimc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesdimc { ?z0\.q-z3\.q ?},{ ?z0\.q-z3\.q ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesdimc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesdimc { ?z0\.b-z3\.b ?},{ ?z0\.b-z3\.b ?},z0\.b\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesdimc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `aesd { ?z0\.b-z1\.b ?},{ ?z0\.b-z1\.b ?},z0\.q\[4\]' +[^ :]+:[0-9]+: Error: operand 2 must be the same register as operand 1 -- `aesd { ?z0\.b-z1\.b ?},{ ?z1\.b-z2\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Error: operand mismatch -- `aesd { ?z0\.q-z1\.q ?},{ ?z0\.b-z1\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesd { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesd { ?z0\.q-z1\.q ?},{ ?z0\.q-z1\.q ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesd { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesd { ?z0\.b-z1\.b ?},{ ?z0\.b-z1\.b ?},z0\.b\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesd { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `aesd { ?z0\.b-z3\.b ?},{ ?z0\.b-z3\.b ?},z0\.q\[4\]' +[^ :]+:[0-9]+: Error: too many registers in vector register list at operand 2 -- `aesd { ?z0\.b-z3\.b ?},{ ?z3\.b-z2\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Error: operand mismatch -- `aesd { ?z0\.q-z3\.q ?},{ ?z0\.b-z3\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesd { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesd { ?z0\.q-z3\.q ?},{ ?z0\.q-z3\.q ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesd { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesd { ?z0\.b-z3\.b ?},{ ?z0\.b-z3\.b ?},z0\.b\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesd { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `aesemc { ?z0\.b-z1\.b ?},{ ?z0\.b-z1\.b ?},z0\.q\[4\]' +[^ :]+:[0-9]+: Error: operand 2 must be the same register as operand 1 -- `aesemc { ?z0\.b-z1\.b ?},{ ?z1\.b-z2\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Error: operand mismatch -- `aesemc { ?z0\.q-z1\.q ?},{ ?z0\.b-z1\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesemc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesemc { ?z0\.q-z1\.q ?},{ ?z0\.q-z1\.q ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesemc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesemc { ?z0\.b-z1\.b ?},{ ?z0\.b-z1\.b ?},z0\.b\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesemc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `aesemc { ?z0\.b-z3\.b ?},{ ?z0\.b-z3\.b ?},z0\.q\[4\]' +[^ :]+:[0-9]+: Error: too many registers in vector register list at operand 2 -- `aesemc { ?z0\.b-z3\.b ?},{ ?z3\.b-z2\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Error: operand mismatch -- `aesemc { ?z0\.q-z3\.q ?},{ ?z0\.b-z3\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesemc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesemc { ?z0\.q-z3\.q ?},{ ?z0\.q-z3\.q ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesemc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aesemc { ?z0\.b-z3\.b ?},{ ?z0\.b-z3\.b ?},z0\.b\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aesemc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `aese { ?z0\.b-z1\.b ?},{ ?z0\.b-z1\.b ?},z0\.q\[4\]' +[^ :]+:[0-9]+: Error: operand 2 must be the same register as operand 1 -- `aese { ?z0\.b-z1\.b ?},{ ?z1\.b-z2\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Error: operand mismatch -- `aese { ?z0\.q-z1\.q ?},{ ?z0\.b-z1\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aese { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aese { ?z0\.q-z1\.q ?},{ ?z0\.q-z1\.q ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aese { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aese { ?z0\.b-z1\.b ?},{ ?z0\.b-z1\.b ?},z0\.b\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aese { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `aese { ?z0\.b-z3\.b ?},{ ?z0\.b-z3\.b ?},z0\.q\[4\]' +[^ :]+:[0-9]+: Error: too many registers in vector register list at operand 2 -- `aese { ?z0\.b-z3\.b ?},{ ?z3\.b-z2\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Error: operand mismatch -- `aese { ?z0\.q-z3\.q ?},{ ?z0\.b-z3\.b ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aese { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aese { ?z0\.q-z3\.q ?},{ ?z0\.q-z3\.q ?},z0\.q\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aese { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `aese { ?z0\.b-z3\.b ?},{ ?z0\.b-z3\.b ?},z0\.b\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: aese { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `pmlal { ?z0\.b-z1\.b},z0\.d,z0\.d' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: pmlal { ?z0\.q-z1\.q}, z0\.d, z0\.d +[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `pmlal { ?z0\.q-z3\.q},z0\.d,z0\.d' +[^ :]+:[0-9]+: Error: missing braces at operand 1 -- `pmlal z0\.q,z0\.q,z0\.d' +[^ :]+:[0-9]+: Error: missing braces at operand 1 -- `pmlal z0\.q,{ ?z0\.q-z1\.q},z0\.d' +[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `pmlal { ?z0\.b-z1\.b},z0\.d,{ ?z1\.d-z2\.d}' +[^ :]+:[0-9]+: Error: operand mismatch -- `pmull { ?z0\.b-z1\.b},z0\.d,z0\.d' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: pmull { ?z0\.q-z1\.q}, z0\.d, z0\.d +[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 1 -- `pmull { ?z0\.q-z3\.q},z0\.d,z0\.d' +[^ :]+:[0-9]+: Error: missing braces at operand 1 -- `pmull z0\.q,z0\.q,z0\.d' +[^ :]+:[0-9]+: Error: missing braces at operand 1 -- `pmull z0\.q,{ ?z0\.q-z1\.q},z0\.d' +[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `pmull { ?z0\.b-z1\.b},z0\.d,{ ?z1\.d-z2\.d}' diff --git a/gas/testsuite/gas/aarch64/illegal-sve-aes2.s b/gas/testsuite/gas/aarch64/illegal-sve-aes2.s new file mode 100644 index 0000000..4eb7810 --- /dev/null +++ b/gas/testsuite/gas/aarch64/illegal-sve-aes2.s @@ -0,0 +1,59 @@ +aesdimc {z0.b-z1.b}, {z0.b-z1.b}, z0.q[4] +aesdimc {z0.b-z1.b}, {z1.b-z2.b}, z0.q[0] +aesdimc {z0.q-z1.q}, {z0.b-z1.b}, z0.q[0] +aesdimc {z0.q-z1.q}, {z0.q-z1.q}, z0.q[0] +aesdimc {z0.b-z1.b}, {z0.b-z1.b}, z0.b[0] + +aesdimc {z0.b-z3.b}, {z0.b-z3.b}, z0.q[4] +aesdimc {z0.b-z3.b}, {z3.b-z2.b}, z0.q[0] +aesdimc {z0.q-z3.q}, {z0.b-z3.b}, z0.q[0] +aesdimc {z0.q-z3.q}, {z0.q-z3.q}, z0.q[0] +aesdimc {z0.b-z3.b}, {z0.b-z3.b}, z0.b[0] + +aesd {z0.b-z1.b}, {z0.b-z1.b}, z0.q[4] +aesd {z0.b-z1.b}, {z1.b-z2.b}, z0.q[0] +aesd {z0.q-z1.q}, {z0.b-z1.b}, z0.q[0] +aesd {z0.q-z1.q}, {z0.q-z1.q}, z0.q[0] +aesd {z0.b-z1.b}, {z0.b-z1.b}, z0.b[0] + +aesd {z0.b-z3.b}, {z0.b-z3.b}, z0.q[4] +aesd {z0.b-z3.b}, {z3.b-z2.b}, z0.q[0] +aesd {z0.q-z3.q}, {z0.b-z3.b}, z0.q[0] +aesd {z0.q-z3.q}, {z0.q-z3.q}, z0.q[0] +aesd {z0.b-z3.b}, {z0.b-z3.b}, z0.b[0] + +aesemc {z0.b-z1.b}, {z0.b-z1.b}, z0.q[4] +aesemc {z0.b-z1.b}, {z1.b-z2.b}, z0.q[0] +aesemc {z0.q-z1.q}, {z0.b-z1.b}, z0.q[0] +aesemc {z0.q-z1.q}, {z0.q-z1.q}, z0.q[0] +aesemc {z0.b-z1.b}, {z0.b-z1.b}, z0.b[0] + +aesemc {z0.b-z3.b}, {z0.b-z3.b}, z0.q[4] +aesemc {z0.b-z3.b}, {z3.b-z2.b}, z0.q[0] +aesemc {z0.q-z3.q}, {z0.b-z3.b}, z0.q[0] +aesemc {z0.q-z3.q}, {z0.q-z3.q}, z0.q[0] +aesemc {z0.b-z3.b}, {z0.b-z3.b}, z0.b[0] + +aese {z0.b-z1.b}, {z0.b-z1.b}, z0.q[4] +aese {z0.b-z1.b}, {z1.b-z2.b}, z0.q[0] +aese {z0.q-z1.q}, {z0.b-z1.b}, z0.q[0] +aese {z0.q-z1.q}, {z0.q-z1.q}, z0.q[0] +aese {z0.b-z1.b}, {z0.b-z1.b}, z0.b[0] + +aese {z0.b-z3.b}, {z0.b-z3.b}, z0.q[4] +aese {z0.b-z3.b}, {z3.b-z2.b}, z0.q[0] +aese {z0.q-z3.q}, {z0.b-z3.b}, z0.q[0] +aese {z0.q-z3.q}, {z0.q-z3.q}, z0.q[0] +aese {z0.b-z3.b}, {z0.b-z3.b}, z0.b[0] + +pmlal {z0.b-z1.b}, z0.d, z0.d +pmlal {z0.q-z3.q}, z0.d, z0.d +pmlal z0.q, z0.q, z0.d +pmlal z0.q, {z0.q-z1.q}, z0.d +pmlal {z0.b-z1.b}, z0.d, {z1.d-z2.d} + +pmull {z0.b-z1.b}, z0.d, z0.d +pmull {z0.q-z3.q}, z0.d, z0.d +pmull z0.q, z0.q, z0.d +pmull z0.q, {z0.q-z1.q}, z0.d +pmull {z0.b-z1.b}, z0.d, {z1.d-z2.d} diff --git a/gas/testsuite/gas/aarch64/illegal-sve2.l b/gas/testsuite/gas/aarch64/illegal-sve2.l index ca13c44..4b97425 100644 --- a/gas/testsuite/gas/aarch64/illegal-sve2.l +++ b/gas/testsuite/gas/aarch64/illegal-sve2.l @@ -55,14 +55,14 @@ [^ :]+:[0-9]+: Error: operand mismatch -- `aesd z0\.b,z0\.s,z0\.b' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: aesd z0\.b, z0\.b, z0\.b -[^ :]+:[0-9]+: Error: expected a vector register at operand 1 -- `aesd z32\.b,z0\.b,z0\.b' +[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `aesd z32\.b,z0\.b,z0\.b' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `aesd z0\.b,z0\.b,z32\.b' [^ :]+:[0-9]+: Warning: SVE `movprfx' compatible instruction expected -- `aese z0\.b,z0\.b,z0\.b' [^ :]+:[0-9]+: Error: operand 2 must be the same register as operand 1 -- `aese z0\.b,z1\.b,z0\.b' [^ :]+:[0-9]+: Error: operand mismatch -- `aese z0\.b,z0\.s,z0\.b' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: aese z0\.b, z0\.b, z0\.b -[^ :]+:[0-9]+: Error: expected a vector register at operand 1 -- `aese z32\.b,z0\.b,z0\.b' +[^ :]+:[0-9]+: Error: expected a register or register list at operand 1 -- `aese z32\.b,z0\.b,z0\.b' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `aese z0\.b,z0\.b,z32\.b' [^ :]+:[0-9]+: Warning: SVE `movprfx' compatible instruction expected -- `aesimc z0\.b,z0\.b' [^ :]+:[0-9]+: Error: operand 2 must be the same register as operand 1 -- `aesimc z0\.b,z1\.b' diff --git a/gas/testsuite/gas/aarch64/illegal.d b/gas/testsuite/gas/aarch64/illegal.d index 33bbb0c..7367f9b 100644 --- a/gas/testsuite/gas/aarch64/illegal.d +++ b/gas/testsuite/gas/aarch64/illegal.d @@ -1,4 +1,4 @@ #name: Illegal Instructions -#as: -mno-verbose-error +#as: -menable-sysreg-checking -mno-verbose-error #source: illegal.s #error_output: illegal.l diff --git a/gas/testsuite/gas/aarch64/ite1.d b/gas/testsuite/gas/aarch64/ite1.d index 10ccbda..a0d2b62 100644 --- a/gas/testsuite/gas/aarch64/ite1.d +++ b/gas/testsuite/gas/aarch64/ite1.d @@ -1,4 +1,4 @@ -#as: -march=armv9.4-a+ite +#as: -menable-sysreg-checking -march=armv9.4-a+ite #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/lsui-bad.d b/gas/testsuite/gas/aarch64/lsui-bad.d new file mode 100644 index 0000000..6a50e21 --- /dev/null +++ b/gas/testsuite/gas/aarch64/lsui-bad.d @@ -0,0 +1,4 @@ +#name: Bad FEAT_LSUI instructions +#source: lsui-bad.s +#as:-march=armv9-a+lsui +#error_output: lsui-bad.l diff --git a/gas/testsuite/gas/aarch64/lsui-bad.l b/gas/testsuite/gas/aarch64/lsui-bad.l new file mode 100644 index 0000000..3bf7b08 --- /dev/null +++ b/gas/testsuite/gas/aarch64/lsui-bad.l @@ -0,0 +1,21 @@ +.*: Assembler messages: +.*: Warning: unpredictable: identical base and status registers --`sttxr w0,w1,\[x0\]' +.*: Warning: unpredictable: identical transfer and status registers --`sttxr w0,w0,\[x1\]' +.*: Warning: unpredictable: identical base and status registers --`sttxr w0,x1,\[x0\]' +.*: Warning: unpredictable: identical transfer and status registers --`sttxr w0,x0,\[x1\]' +.*: Warning: unpredictable: identical base and status registers --`stltxr w0,w1,\[x0\]' +.*: Warning: unpredictable: identical transfer and status registers --`stltxr w0,w0,\[x1\]' +.*: Warning: unpredictable: identical base and status registers --`stltxr w0,x1,\[x0\]' +.*: Warning: unpredictable: identical transfer and status registers --`stltxr w0,x0,\[x1\]' +.*: Error: reg pair must be contiguous at operand 2 -- `caspt x0,x0,x2,x3,\[x0\]' +.*: Error: reg pair must start from even reg at operand 3 -- `caspt x0,x1,x3,x4,\[x0\]' +.*: Error: operand 5 must be an address with base register \(no offset\) -- `caspt x0,x1,x2,x3,\[x0,#0x8\]' +.*: Warning: unpredictable load of register pair -- `ldtnp x0,x0,\[x0\]' +.*: Error: immediate offset out of range -512 to 504 at operand 3 -- `ldtnp x0,x1,\[x0,#508\]' +.*: Error: unexpected address writeback at operand 3 -- `ldtnp x0,x1,\[x0,#504\]!' +.*: Warning: unpredictable load of register pair -- `ldtp x0,x0,\[x1\]' +.*: Warning: unpredictable transfer with writeback -- `ldtp x0,x1,\[x0,#504\]!' +.*: Warning: unpredictable transfer with writeback -- `ldtp x0,x1,\[x0\],#504' +.*: Warning: unpredictable load of register pair -- `ldtp q0,q0,\[x1\]' +.*: Warning: unpredictable transfer with writeback -- `sttp x0,x1,\[x0,#504\]!' +.*: Warning: unpredictable transfer with writeback -- `sttp x0,x1,\[x0\],#504' diff --git a/gas/testsuite/gas/aarch64/lsui-bad.s b/gas/testsuite/gas/aarch64/lsui-bad.s new file mode 100644 index 0000000..aed14cd --- /dev/null +++ b/gas/testsuite/gas/aarch64/lsui-bad.s @@ -0,0 +1,32 @@ +sttxr: + sttxr w0, w1, [x0] + sttxr w0, w0, [x1] + sttxr w0, x1, [x0] + sttxr w0, x0, [x1] + +stltxr: + stltxr w0, w1, [x0] + stltxr w0, w0, [x1] + stltxr w0, x1, [x0] + stltxr w0, x0, [x1] + +caspt: + caspt x0, x0, x2, x3, [x0] + caspt x0, x1, x3, x4, [x0] + caspt x0, x1, x2, x3, [x0, #0x8] + +ldtnp: + ldtnp x0, x0, [x0] + ldtnp q0, q1, [x0] + ldtnp x0, x1, [x0, #508] + ldtnp x0, x1, [x0, #504]! + +ldtp: + ldtp x0, x0, [x1] + ldtp x0, x1, [x0, #504]! + ldtp x0, x1, [x0], #504 + ldtp q0, q0, [x1] + +sttp: + sttp x0, x1, [x0, #504]! + sttp x0, x1, [x0], #504 diff --git a/gas/testsuite/gas/aarch64/lsui.d b/gas/testsuite/gas/aarch64/lsui.d new file mode 100644 index 0000000..7a1d922 --- /dev/null +++ b/gas/testsuite/gas/aarch64/lsui.d @@ -0,0 +1,800 @@ +#name: FEAT_LSUI Test +#objdump: -dr +#as:-march=armv9-a+lsui+fp +#as:-march=armv9.6-a + +.*: file format .* + +Disassembly of section \.text: + +.* <ldtxr>: +.*: 895f7c00 ldtxr w0, \[x0\] +.*: 895f7fe0 ldtxr w0, \[sp\] +.*: 895f7c1f ldtxr wzr, \[x0\] +.*: c95f7c00 ldtxr x0, \[x0\] +.*: c95f7fe0 ldtxr x0, \[sp\] +.*: c95f7c1f ldtxr xzr, \[x0\] + +.* <ldatxr>: +.*: 895ffc00 ldatxr w0, \[x0\] +.*: 895fffe0 ldatxr w0, \[sp\] +.*: 895ffc1f ldatxr wzr, \[x0\] +.*: c95ffc00 ldatxr x0, \[x0\] +.*: c95fffe0 ldatxr x0, \[sp\] +.*: c95ffc1f ldatxr xzr, \[x0\] + +.* <sttxr>: +.*: 89007c44 sttxr w0, w4, \[x2\] +.*: 89007fe4 sttxr w0, w4, \[sp\] +.*: 89007c5f sttxr w0, wzr, \[x2\] +.*: 89007fff sttxr w0, wzr, \[sp\] +.*: 891d7c04 sttxr w29, w4, \[x0\] +.*: 891d7fe4 sttxr w29, w4, \[sp\] +.*: 891d7c1f sttxr w29, wzr, \[x0\] +.*: 891d7fff sttxr w29, wzr, \[sp\] +.*: c9007c44 sttxr w0, x4, \[x2\] +.*: c9007fe4 sttxr w0, x4, \[sp\] +.*: c9007c5f sttxr w0, xzr, \[x2\] +.*: c9007fff sttxr w0, xzr, \[sp\] +.*: c91d7c04 sttxr w29, x4, \[x0\] +.*: c91d7fe4 sttxr w29, x4, \[sp\] +.*: c91d7c1f sttxr w29, xzr, \[x0\] +.*: c91d7fff sttxr w29, xzr, \[sp\] + +.* <stltxr>: +.*: 8900fc44 stltxr w0, w4, \[x2\] +.*: 8900ffe4 stltxr w0, w4, \[sp\] +.*: 8900fc5f stltxr w0, wzr, \[x2\] +.*: 8900ffff stltxr w0, wzr, \[sp\] +.*: 891dfc04 stltxr w29, w4, \[x0\] +.*: 891dffe4 stltxr w29, w4, \[sp\] +.*: 891dfc1f stltxr w29, wzr, \[x0\] +.*: 891dffff stltxr w29, wzr, \[sp\] +.*: c900fc44 stltxr w0, x4, \[x2\] +.*: c900ffe4 stltxr w0, x4, \[sp\] +.*: c900fc5f stltxr w0, xzr, \[x2\] +.*: c900ffff stltxr w0, xzr, \[sp\] +.*: c91dfc04 stltxr w29, x4, \[x0\] +.*: c91dffe4 stltxr w29, x4, \[sp\] +.*: c91dfc1f stltxr w29, xzr, \[x0\] +.*: c91dffff stltxr w29, xzr, \[sp\] + +.* <cast>: +.*: c9807c00 cast x0, x0, \[x0\] +.*: c9807fe0 cast x0, x0, \[sp\] +.*: c9807c1f cast x0, xzr, \[x0\] +.*: c9807fff cast x0, xzr, \[sp\] +.*: c99f7c00 cast xzr, x0, \[x0\] +.*: c99f7fe0 cast xzr, x0, \[sp\] +.*: c99f7c1f cast xzr, xzr, \[x0\] +.*: c99f7fff cast xzr, xzr, \[sp\] + +.* <casat>: +.*: c9c07c00 casat x0, x0, \[x0\] +.*: c9c07fe0 casat x0, x0, \[sp\] +.*: c9c07c1f casat x0, xzr, \[x0\] +.*: c9c07fff casat x0, xzr, \[sp\] +.*: c9df7c00 casat xzr, x0, \[x0\] +.*: c9df7fe0 casat xzr, x0, \[sp\] +.*: c9df7c1f casat xzr, xzr, \[x0\] +.*: c9df7fff casat xzr, xzr, \[sp\] + +.* <casalt>: +.*: c9c0fc00 casalt x0, x0, \[x0\] +.*: c9c0ffe0 casalt x0, x0, \[sp\] +.*: c9c0fc1f casalt x0, xzr, \[x0\] +.*: c9c0ffff casalt x0, xzr, \[sp\] +.*: c9dffc00 casalt xzr, x0, \[x0\] +.*: c9dfffe0 casalt xzr, x0, \[sp\] +.*: c9dffc1f casalt xzr, xzr, \[x0\] +.*: c9dfffff casalt xzr, xzr, \[sp\] + +.* <caslt>: +.*: c980fc00 caslt x0, x0, \[x0\] +.*: c980ffe0 caslt x0, x0, \[sp\] +.*: c980fc1f caslt x0, xzr, \[x0\] +.*: c980ffff caslt x0, xzr, \[sp\] +.*: c99ffc00 caslt xzr, x0, \[x0\] +.*: c99fffe0 caslt xzr, x0, \[sp\] +.*: c99ffc1f caslt xzr, xzr, \[x0\] +.*: c99fffff caslt xzr, xzr, \[sp\] + +.* <caspt>: +.*: 49807c00 caspt x0, x1, x0, x1, \[x0\] +.*: 49807fe0 caspt x0, x1, x0, x1, \[sp\] +.*: 49807c1c caspt x0, x1, x28, x29, \[x0\] +.*: 49807ffc caspt x0, x1, x28, x29, \[sp\] +.*: 499c7c00 caspt x28, x29, x0, x1, \[x0\] +.*: 499c7fe0 caspt x28, x29, x0, x1, \[sp\] +.*: 499c7c1c caspt x28, x29, x28, x29, \[x0\] +.*: 499c7ffc caspt x28, x29, x28, x29, \[sp\] + +.* <caspat>: +.*: 49c07c00 caspat x0, x1, x0, x1, \[x0\] +.*: 49c07fe0 caspat x0, x1, x0, x1, \[sp\] +.*: 49c07c1c caspat x0, x1, x28, x29, \[x0\] +.*: 49c07ffc caspat x0, x1, x28, x29, \[sp\] +.*: 49dc7c00 caspat x28, x29, x0, x1, \[x0\] +.*: 49dc7fe0 caspat x28, x29, x0, x1, \[sp\] +.*: 49dc7c1c caspat x28, x29, x28, x29, \[x0\] +.*: 49dc7ffc caspat x28, x29, x28, x29, \[sp\] + +.* <caspalt>: +.*: 49c0fc00 caspalt x0, x1, x0, x1, \[x0\] +.*: 49c0ffe0 caspalt x0, x1, x0, x1, \[sp\] +.*: 49c0fc1c caspalt x0, x1, x28, x29, \[x0\] +.*: 49c0fffc caspalt x0, x1, x28, x29, \[sp\] +.*: 49dcfc00 caspalt x28, x29, x0, x1, \[x0\] +.*: 49dcffe0 caspalt x28, x29, x0, x1, \[sp\] +.*: 49dcfc1c caspalt x28, x29, x28, x29, \[x0\] +.*: 49dcfffc caspalt x28, x29, x28, x29, \[sp\] + +.* <casplt>: +.*: 4980fc00 casplt x0, x1, x0, x1, \[x0\] +.*: 4980ffe0 casplt x0, x1, x0, x1, \[sp\] +.*: 4980fc1c casplt x0, x1, x28, x29, \[x0\] +.*: 4980fffc casplt x0, x1, x28, x29, \[sp\] +.*: 499cfc00 casplt x28, x29, x0, x1, \[x0\] +.*: 499cffe0 casplt x28, x29, x0, x1, \[sp\] +.*: 499cfc1c casplt x28, x29, x28, x29, \[x0\] +.*: 499cfffc casplt x28, x29, x28, x29, \[sp\] + +.* <ldtp>: +.*: e9400800 ldtp x0, x2, \[x0\] +.*: e97f8800 ldtp x0, x2, \[x0, #-8\] +.*: e9400be0 ldtp x0, x2, \[sp\] +.*: e97f8be0 ldtp x0, x2, \[sp, #-8\] +.*: e9407c00 ldtp x0, xzr, \[x0\] +.*: e97ffc00 ldtp x0, xzr, \[x0, #-8\] +.*: e9407fe0 ldtp x0, xzr, \[sp\] +.*: e97fffe0 ldtp x0, xzr, \[sp, #-8\] +.*: e940081f ldtp xzr, x2, \[x0\] +.*: e97f881f ldtp xzr, x2, \[x0, #-8\] +.*: e9400bff ldtp xzr, x2, \[sp\] +.*: e97f8bff ldtp xzr, x2, \[sp, #-8\] +.*: e940741f ldtp xzr, x29, \[x0\] +.*: e97ff41f ldtp xzr, x29, \[x0, #-8\] +.*: e94077ff ldtp xzr, x29, \[sp\] +.*: e97ff7ff ldtp xzr, x29, \[sp, #-8\] +.*: e9c11040 ldtp x0, x4, \[x2, #16\]! +.*: e9ff9040 ldtp x0, x4, \[x2, #-8\]! +.*: e9c113e0 ldtp x0, x4, \[sp, #16\]! +.*: e9ff93e0 ldtp x0, x4, \[sp, #-8\]! +.*: e9c17c40 ldtp x0, xzr, \[x2, #16\]! +.*: e9fffc40 ldtp x0, xzr, \[x2, #-8\]! +.*: e9c17fe0 ldtp x0, xzr, \[sp, #16\]! +.*: e9ffffe0 ldtp x0, xzr, \[sp, #-8\]! +.*: e9c1005f ldtp xzr, x0, \[x2, #16\]! +.*: e9ff805f ldtp xzr, x0, \[x2, #-8\]! +.*: e9c103ff ldtp xzr, x0, \[sp, #16\]! +.*: e9ff83ff ldtp xzr, x0, \[sp, #-8\]! +.*: e9c1745f ldtp xzr, x29, \[x2, #16\]! +.*: e9fff45f ldtp xzr, x29, \[x2, #-8\]! +.*: e9c177ff ldtp xzr, x29, \[sp, #16\]! +.*: e9fff7ff ldtp xzr, x29, \[sp, #-8\]! +.*: e8c11040 ldtp x0, x4, \[x2\], #16 +.*: e8ff9040 ldtp x0, x4, \[x2\], #-8 +.*: e8c113e0 ldtp x0, x4, \[sp\], #16 +.*: e8ff93e0 ldtp x0, x4, \[sp\], #-8 +.*: e8c17c40 ldtp x0, xzr, \[x2\], #16 +.*: e8fffc40 ldtp x0, xzr, \[x2\], #-8 +.*: e8c17fe0 ldtp x0, xzr, \[sp\], #16 +.*: e8ffffe0 ldtp x0, xzr, \[sp\], #-8 +.*: e8c1005f ldtp xzr, x0, \[x2\], #16 +.*: e8ff805f ldtp xzr, x0, \[x2\], #-8 +.*: e8c103ff ldtp xzr, x0, \[sp\], #16 +.*: e8ff83ff ldtp xzr, x0, \[sp\], #-8 +.*: e8c1745f ldtp xzr, x29, \[x2\], #16 +.*: e8fff45f ldtp xzr, x29, \[x2\], #-8 +.*: e8c177ff ldtp xzr, x29, \[sp\], #16 +.*: e8fff7ff ldtp xzr, x29, \[sp\], #-8 +.*: ed400800 ldtp q0, q2, \[x0\] +.*: ed7f8800 ldtp q0, q2, \[x0, #-16\] +.*: ed400be0 ldtp q0, q2, \[sp\] +.*: ed7f8be0 ldtp q0, q2, \[sp, #-16\] +.*: ed407c00 ldtp q0, q31, \[x0\] +.*: ed7ffc00 ldtp q0, q31, \[x0, #-16\] +.*: ed407fe0 ldtp q0, q31, \[sp\] +.*: ed7fffe0 ldtp q0, q31, \[sp, #-16\] +.*: ed40001f ldtp q31, q0, \[x0\] +.*: ed7f801f ldtp q31, q0, \[x0, #-16\] +.*: ed4003ff ldtp q31, q0, \[sp\] +.*: ed7f83ff ldtp q31, q0, \[sp, #-16\] +.*: ed40741f ldtp q31, q29, \[x0\] +.*: ed7ff41f ldtp q31, q29, \[x0, #-16\] +.*: ed4077ff ldtp q31, q29, \[sp\] +.*: ed7ff7ff ldtp q31, q29, \[sp, #-16\] +.*: edc10800 ldtp q0, q2, \[x0, #32\]! +.*: edff8800 ldtp q0, q2, \[x0, #-16\]! +.*: edc10be0 ldtp q0, q2, \[sp, #32\]! +.*: edff8be0 ldtp q0, q2, \[sp, #-16\]! +.*: edc17c00 ldtp q0, q31, \[x0, #32\]! +.*: edfffc00 ldtp q0, q31, \[x0, #-16\]! +.*: edc17fe0 ldtp q0, q31, \[sp, #32\]! +.*: edffffe0 ldtp q0, q31, \[sp, #-16\]! +.*: edc1081f ldtp q31, q2, \[x0, #32\]! +.*: edff881f ldtp q31, q2, \[x0, #-16\]! +.*: edc10bff ldtp q31, q2, \[sp, #32\]! +.*: edff8bff ldtp q31, q2, \[sp, #-16\]! +.*: edc1741f ldtp q31, q29, \[x0, #32\]! +.*: edfff41f ldtp q31, q29, \[x0, #-16\]! +.*: edc177ff ldtp q31, q29, \[sp, #32\]! +.*: edfff7ff ldtp q31, q29, \[sp, #-16\]! +.*: ecc10800 ldtp q0, q2, \[x0\], #32 +.*: ecff8800 ldtp q0, q2, \[x0\], #-16 +.*: ecc10be0 ldtp q0, q2, \[sp\], #32 +.*: ecff8be0 ldtp q0, q2, \[sp\], #-16 +.*: ecc17c00 ldtp q0, q31, \[x0\], #32 +.*: ecfffc00 ldtp q0, q31, \[x0\], #-16 +.*: ecc17fe0 ldtp q0, q31, \[sp\], #32 +.*: ecffffe0 ldtp q0, q31, \[sp\], #-16 +.*: ecc1081f ldtp q31, q2, \[x0\], #32 +.*: ecff881f ldtp q31, q2, \[x0\], #-16 +.*: ecc10bff ldtp q31, q2, \[sp\], #32 +.*: ecff8bff ldtp q31, q2, \[sp\], #-16 +.*: ecc1741f ldtp q31, q29, \[x0\], #32 +.*: ecfff41f ldtp q31, q29, \[x0\], #-16 +.*: ecc177ff ldtp q31, q29, \[sp\], #32 +.*: ecfff7ff ldtp q31, q29, \[sp\], #-16 + +.* <sttp>: +.*: e9000800 sttp x0, x2, \[x0\] +.*: e93f8800 sttp x0, x2, \[x0, #-8\] +.*: e9000be0 sttp x0, x2, \[sp\] +.*: e93f8be0 sttp x0, x2, \[sp, #-8\] +.*: e9007c00 sttp x0, xzr, \[x0\] +.*: e93ffc00 sttp x0, xzr, \[x0, #-8\] +.*: e9007fe0 sttp x0, xzr, \[sp\] +.*: e93fffe0 sttp x0, xzr, \[sp, #-8\] +.*: e900081f sttp xzr, x2, \[x0\] +.*: e93f881f sttp xzr, x2, \[x0, #-8\] +.*: e9000bff sttp xzr, x2, \[sp\] +.*: e93f8bff sttp xzr, x2, \[sp, #-8\] +.*: e900741f sttp xzr, x29, \[x0\] +.*: e93ff41f sttp xzr, x29, \[x0, #-8\] +.*: e90077ff sttp xzr, x29, \[sp\] +.*: e93ff7ff sttp xzr, x29, \[sp, #-8\] +.*: e9811040 sttp x0, x4, \[x2, #16\]! +.*: e9bf9040 sttp x0, x4, \[x2, #-8\]! +.*: e98113e0 sttp x0, x4, \[sp, #16\]! +.*: e9bf93e0 sttp x0, x4, \[sp, #-8\]! +.*: e9817c40 sttp x0, xzr, \[x2, #16\]! +.*: e9bffc40 sttp x0, xzr, \[x2, #-8\]! +.*: e9817fe0 sttp x0, xzr, \[sp, #16\]! +.*: e9bfffe0 sttp x0, xzr, \[sp, #-8\]! +.*: e981005f sttp xzr, x0, \[x2, #16\]! +.*: e9bf805f sttp xzr, x0, \[x2, #-8\]! +.*: e98103ff sttp xzr, x0, \[sp, #16\]! +.*: e9bf83ff sttp xzr, x0, \[sp, #-8\]! +.*: e981745f sttp xzr, x29, \[x2, #16\]! +.*: e9bff45f sttp xzr, x29, \[x2, #-8\]! +.*: e98177ff sttp xzr, x29, \[sp, #16\]! +.*: e9bff7ff sttp xzr, x29, \[sp, #-8\]! +.*: e8811040 sttp x0, x4, \[x2\], #16 +.*: e8bf9040 sttp x0, x4, \[x2\], #-8 +.*: e88113e0 sttp x0, x4, \[sp\], #16 +.*: e8bf93e0 sttp x0, x4, \[sp\], #-8 +.*: e8817c40 sttp x0, xzr, \[x2\], #16 +.*: e8bffc40 sttp x0, xzr, \[x2\], #-8 +.*: e8817fe0 sttp x0, xzr, \[sp\], #16 +.*: e8bfffe0 sttp x0, xzr, \[sp\], #-8 +.*: e881005f sttp xzr, x0, \[x2\], #16 +.*: e8bf805f sttp xzr, x0, \[x2\], #-8 +.*: e88103ff sttp xzr, x0, \[sp\], #16 +.*: e8bf83ff sttp xzr, x0, \[sp\], #-8 +.*: e881745f sttp xzr, x29, \[x2\], #16 +.*: e8bff45f sttp xzr, x29, \[x2\], #-8 +.*: e88177ff sttp xzr, x29, \[sp\], #16 +.*: e8bff7ff sttp xzr, x29, \[sp\], #-8 +.*: ed000800 sttp q0, q2, \[x0\] +.*: ed3f8800 sttp q0, q2, \[x0, #-16\] +.*: ed000be0 sttp q0, q2, \[sp\] +.*: ed3f8be0 sttp q0, q2, \[sp, #-16\] +.*: ed007c00 sttp q0, q31, \[x0\] +.*: ed3ffc00 sttp q0, q31, \[x0, #-16\] +.*: ed007fe0 sttp q0, q31, \[sp\] +.*: ed3fffe0 sttp q0, q31, \[sp, #-16\] +.*: ed00001f sttp q31, q0, \[x0\] +.*: ed3f801f sttp q31, q0, \[x0, #-16\] +.*: ed0003ff sttp q31, q0, \[sp\] +.*: ed3f83ff sttp q31, q0, \[sp, #-16\] +.*: ed00741f sttp q31, q29, \[x0\] +.*: ed3ff41f sttp q31, q29, \[x0, #-16\] +.*: ed0077ff sttp q31, q29, \[sp\] +.*: ed3ff7ff sttp q31, q29, \[sp, #-16\] +.*: ed810800 sttp q0, q2, \[x0, #32\]! +.*: edbf8800 sttp q0, q2, \[x0, #-16\]! +.*: ed810be0 sttp q0, q2, \[sp, #32\]! +.*: edbf8be0 sttp q0, q2, \[sp, #-16\]! +.*: ed817c00 sttp q0, q31, \[x0, #32\]! +.*: edbffc00 sttp q0, q31, \[x0, #-16\]! +.*: ed817fe0 sttp q0, q31, \[sp, #32\]! +.*: edbfffe0 sttp q0, q31, \[sp, #-16\]! +.*: ed81081f sttp q31, q2, \[x0, #32\]! +.*: edbf881f sttp q31, q2, \[x0, #-16\]! +.*: ed810bff sttp q31, q2, \[sp, #32\]! +.*: edbf8bff sttp q31, q2, \[sp, #-16\]! +.*: ed81741f sttp q31, q29, \[x0, #32\]! +.*: edbff41f sttp q31, q29, \[x0, #-16\]! +.*: ed8177ff sttp q31, q29, \[sp, #32\]! +.*: edbff7ff sttp q31, q29, \[sp, #-16\]! +.*: ec810800 sttp q0, q2, \[x0\], #32 +.*: ecbf8800 sttp q0, q2, \[x0\], #-16 +.*: ec810be0 sttp q0, q2, \[sp\], #32 +.*: ecbf8be0 sttp q0, q2, \[sp\], #-16 +.*: ec817c00 sttp q0, q31, \[x0\], #32 +.*: ecbffc00 sttp q0, q31, \[x0\], #-16 +.*: ec817fe0 sttp q0, q31, \[sp\], #32 +.*: ecbfffe0 sttp q0, q31, \[sp\], #-16 +.*: ec81081f sttp q31, q2, \[x0\], #32 +.*: ecbf881f sttp q31, q2, \[x0\], #-16 +.*: ec810bff sttp q31, q2, \[sp\], #32 +.*: ecbf8bff sttp q31, q2, \[sp\], #-16 +.*: ec81741f sttp q31, q29, \[x0\], #32 +.*: ecbff41f sttp q31, q29, \[x0\], #-16 +.*: ec8177ff sttp q31, q29, \[sp\], #32 +.*: ecbff7ff sttp q31, q29, \[sp\], #-16 + +.* <swpt>: +.*: 19208400 swpt w0, w0, \[x0\] +.*: 192087e0 swpt w0, w0, \[sp\] +.*: 1920841f swpt w0, wzr, \[x0\] +.*: 192087ff swpt w0, wzr, \[sp\] +.*: 193f8400 swpt wzr, w0, \[x0\] +.*: 193f87e0 swpt wzr, w0, \[sp\] +.*: 193f841f swpt wzr, wzr, \[x0\] +.*: 193f87ff swpt wzr, wzr, \[sp\] +.*: 59208400 swpt x0, x0, \[x0\] +.*: 592087e0 swpt x0, x0, \[sp\] +.*: 5920841f swpt x0, xzr, \[x0\] +.*: 592087ff swpt x0, xzr, \[sp\] +.*: 593f8400 swpt xzr, x0, \[x0\] +.*: 593f87e0 swpt xzr, x0, \[sp\] +.*: 593f841f swpt xzr, xzr, \[x0\] +.*: 593f87ff swpt xzr, xzr, \[sp\] + +.* <swpta>: +.*: 19a08400 swpta w0, w0, \[x0\] +.*: 19a087e0 swpta w0, w0, \[sp\] +.*: 19a0841f swpta w0, wzr, \[x0\] +.*: 19a087ff swpta w0, wzr, \[sp\] +.*: 19bf8400 swpta wzr, w0, \[x0\] +.*: 19bf87e0 swpta wzr, w0, \[sp\] +.*: 19bf841f swpta wzr, wzr, \[x0\] +.*: 19bf87ff swpta wzr, wzr, \[sp\] +.*: 59a08400 swpta x0, x0, \[x0\] +.*: 59a087e0 swpta x0, x0, \[sp\] +.*: 59a0841f swpta x0, xzr, \[x0\] +.*: 59a087ff swpta x0, xzr, \[sp\] +.*: 59bf8400 swpta xzr, x0, \[x0\] +.*: 59bf87e0 swpta xzr, x0, \[sp\] +.*: 59bf841f swpta xzr, xzr, \[x0\] +.*: 59bf87ff swpta xzr, xzr, \[sp\] + +.* <swptal>: +.*: 19e08400 swptal w0, w0, \[x0\] +.*: 19e087e0 swptal w0, w0, \[sp\] +.*: 19e0841f swptal w0, wzr, \[x0\] +.*: 19e087ff swptal w0, wzr, \[sp\] +.*: 19ff8400 swptal wzr, w0, \[x0\] +.*: 19ff87e0 swptal wzr, w0, \[sp\] +.*: 19ff841f swptal wzr, wzr, \[x0\] +.*: 19ff87ff swptal wzr, wzr, \[sp\] +.*: 59e08400 swptal x0, x0, \[x0\] +.*: 59e087e0 swptal x0, x0, \[sp\] +.*: 59e0841f swptal x0, xzr, \[x0\] +.*: 59e087ff swptal x0, xzr, \[sp\] +.*: 59ff8400 swptal xzr, x0, \[x0\] +.*: 59ff87e0 swptal xzr, x0, \[sp\] +.*: 59ff841f swptal xzr, xzr, \[x0\] +.*: 59ff87ff swptal xzr, xzr, \[sp\] + +.* <swptl>: +.*: 19608400 swptl w0, w0, \[x0\] +.*: 196087e0 swptl w0, w0, \[sp\] +.*: 1960841f swptl w0, wzr, \[x0\] +.*: 196087ff swptl w0, wzr, \[sp\] +.*: 197f8400 swptl wzr, w0, \[x0\] +.*: 197f87e0 swptl wzr, w0, \[sp\] +.*: 197f841f swptl wzr, wzr, \[x0\] +.*: 197f87ff swptl wzr, wzr, \[sp\] +.*: 59608400 swptl x0, x0, \[x0\] +.*: 596087e0 swptl x0, x0, \[sp\] +.*: 5960841f swptl x0, xzr, \[x0\] +.*: 596087ff swptl x0, xzr, \[sp\] +.*: 597f8400 swptl xzr, x0, \[x0\] +.*: 597f87e0 swptl xzr, x0, \[sp\] +.*: 597f841f swptl xzr, xzr, \[x0\] +.*: 597f87ff swptl xzr, xzr, \[sp\] + +.* <ldtadd>: +.*: 19200400 ldtadd w0, w0, \[x0\] +.*: 192007e0 ldtadd w0, w0, \[sp\] +.*: 1920041f sttadd w0, \[x0\] +.*: 192007ff sttadd w0, \[sp\] +.*: 193f0400 ldtadd wzr, w0, \[x0\] +.*: 193f07e0 ldtadd wzr, w0, \[sp\] +.*: 193f041f sttadd wzr, \[x0\] +.*: 193f07ff sttadd wzr, \[sp\] +.*: 1920041d ldtadd w0, w29, \[x0\] +.*: 192007fd ldtadd w0, w29, \[sp\] +.*: 193f041d ldtadd wzr, w29, \[x0\] +.*: 193f07fd ldtadd wzr, w29, \[sp\] +.*: 59200400 ldtadd x0, x0, \[x0\] +.*: 592007e0 ldtadd x0, x0, \[sp\] +.*: 5920041f sttadd x0, \[x0\] +.*: 592007ff sttadd x0, \[sp\] +.*: 593f0400 ldtadd xzr, x0, \[x0\] +.*: 593f07e0 ldtadd xzr, x0, \[sp\] +.*: 593f041f sttadd xzr, \[x0\] +.*: 593f07ff sttadd xzr, \[sp\] +.*: 5920041d ldtadd x0, x29, \[x0\] +.*: 592007fd ldtadd x0, x29, \[sp\] +.*: 593f041d ldtadd xzr, x29, \[x0\] +.*: 593f07fd ldtadd xzr, x29, \[sp\] + +.* <sttadd>: +.*: 1920041f sttadd w0, \[x0\] +.*: 192007ff sttadd w0, \[sp\] +.*: 193f041f sttadd wzr, \[x0\] +.*: 193f07ff sttadd wzr, \[sp\] +.*: 5920041f sttadd x0, \[x0\] +.*: 592007ff sttadd x0, \[sp\] +.*: 593f041f sttadd xzr, \[x0\] +.*: 593f07ff sttadd xzr, \[sp\] + +.* <ldtadda>: +.*: 19a00400 ldtadda w0, w0, \[x0\] +.*: 19a007e0 ldtadda w0, w0, \[sp\] +.*: 19a0041f ldtadda w0, wzr, \[x0\] +.*: 19a007ff ldtadda w0, wzr, \[sp\] +.*: 19bf0400 ldtadda wzr, w0, \[x0\] +.*: 19bf07e0 ldtadda wzr, w0, \[sp\] +.*: 19bf041f ldtadda wzr, wzr, \[x0\] +.*: 19bf07ff ldtadda wzr, wzr, \[sp\] +.*: 59a00400 ldtadda x0, x0, \[x0\] +.*: 59a007e0 ldtadda x0, x0, \[sp\] +.*: 59a0041f ldtadda x0, xzr, \[x0\] +.*: 59a007ff ldtadda x0, xzr, \[sp\] +.*: 59bf0400 ldtadda xzr, x0, \[x0\] +.*: 59bf07e0 ldtadda xzr, x0, \[sp\] +.*: 59bf041f ldtadda xzr, xzr, \[x0\] +.*: 59bf07ff ldtadda xzr, xzr, \[sp\] + +.* <ldtaddal>: +.*: 19e00400 ldtaddal w0, w0, \[x0\] +.*: 19e007e0 ldtaddal w0, w0, \[sp\] +.*: 19e0041f ldtaddal w0, wzr, \[x0\] +.*: 19e007ff ldtaddal w0, wzr, \[sp\] +.*: 19ff0400 ldtaddal wzr, w0, \[x0\] +.*: 19ff07e0 ldtaddal wzr, w0, \[sp\] +.*: 19ff041f ldtaddal wzr, wzr, \[x0\] +.*: 19ff07ff ldtaddal wzr, wzr, \[sp\] +.*: 59e00400 ldtaddal x0, x0, \[x0\] +.*: 59e007e0 ldtaddal x0, x0, \[sp\] +.*: 59e0041f ldtaddal x0, xzr, \[x0\] +.*: 59e007ff ldtaddal x0, xzr, \[sp\] +.*: 59ff0400 ldtaddal xzr, x0, \[x0\] +.*: 59ff07e0 ldtaddal xzr, x0, \[sp\] +.*: 59ff041f ldtaddal xzr, xzr, \[x0\] +.*: 59ff07ff ldtaddal xzr, xzr, \[sp\] + +.* <ldtaddl>: +.*: 19600400 ldtaddl w0, w0, \[x0\] +.*: 196007e0 ldtaddl w0, w0, \[sp\] +.*: 1960041f sttaddl w0, \[x0\] +.*: 196007ff sttaddl w0, \[sp\] +.*: 197f0400 ldtaddl wzr, w0, \[x0\] +.*: 197f07e0 ldtaddl wzr, w0, \[sp\] +.*: 197f041f sttaddl wzr, \[x0\] +.*: 197f07ff sttaddl wzr, \[sp\] +.*: 1960041d ldtaddl w0, w29, \[x0\] +.*: 196007fd ldtaddl w0, w29, \[sp\] +.*: 197f041d ldtaddl wzr, w29, \[x0\] +.*: 197f07fd ldtaddl wzr, w29, \[sp\] +.*: 59600400 ldtaddl x0, x0, \[x0\] +.*: 596007e0 ldtaddl x0, x0, \[sp\] +.*: 5960041f sttaddl x0, \[x0\] +.*: 596007ff sttaddl x0, \[sp\] +.*: 597f0400 ldtaddl xzr, x0, \[x0\] +.*: 597f07e0 ldtaddl xzr, x0, \[sp\] +.*: 597f041f sttaddl xzr, \[x0\] +.*: 597f07ff sttaddl xzr, \[sp\] +.*: 5960041d ldtaddl x0, x29, \[x0\] +.*: 596007fd ldtaddl x0, x29, \[sp\] +.*: 597f041d ldtaddl xzr, x29, \[x0\] +.*: 597f07fd ldtaddl xzr, x29, \[sp\] + +.* <sttaddl>: +.*: 1960041f sttaddl w0, \[x0\] +.*: 196007ff sttaddl w0, \[sp\] +.*: 197f041f sttaddl wzr, \[x0\] +.*: 197f07ff sttaddl wzr, \[sp\] +.*: 5960041f sttaddl x0, \[x0\] +.*: 596007ff sttaddl x0, \[sp\] +.*: 597f041f sttaddl xzr, \[x0\] +.*: 597f07ff sttaddl xzr, \[sp\] + +.* <ldtclr>: +.*: 19201400 ldtclr w0, w0, \[x0\] +.*: 192017e0 ldtclr w0, w0, \[sp\] +.*: 1920141f sttclr w0, \[x0\] +.*: 192017ff sttclr w0, \[sp\] +.*: 193f1400 ldtclr wzr, w0, \[x0\] +.*: 193f17e0 ldtclr wzr, w0, \[sp\] +.*: 193f141f sttclr wzr, \[x0\] +.*: 193f17ff sttclr wzr, \[sp\] +.*: 1920141d ldtclr w0, w29, \[x0\] +.*: 192017fd ldtclr w0, w29, \[sp\] +.*: 193f141d ldtclr wzr, w29, \[x0\] +.*: 193f17fd ldtclr wzr, w29, \[sp\] +.*: 59201400 ldtclr x0, x0, \[x0\] +.*: 592017e0 ldtclr x0, x0, \[sp\] +.*: 5920141f sttclr x0, \[x0\] +.*: 592017ff sttclr x0, \[sp\] +.*: 593f1400 ldtclr xzr, x0, \[x0\] +.*: 593f17e0 ldtclr xzr, x0, \[sp\] +.*: 593f141f sttclr xzr, \[x0\] +.*: 593f17ff sttclr xzr, \[sp\] +.*: 5920141d ldtclr x0, x29, \[x0\] +.*: 592017fd ldtclr x0, x29, \[sp\] +.*: 593f141d ldtclr xzr, x29, \[x0\] +.*: 593f17fd ldtclr xzr, x29, \[sp\] + +.* <sttclr>: +.*: 1920141f sttclr w0, \[x0\] +.*: 192017ff sttclr w0, \[sp\] +.*: 193f141f sttclr wzr, \[x0\] +.*: 193f17ff sttclr wzr, \[sp\] +.*: 5920141f sttclr x0, \[x0\] +.*: 592017ff sttclr x0, \[sp\] +.*: 593f141f sttclr xzr, \[x0\] +.*: 593f17ff sttclr xzr, \[sp\] + +.* <ldtclra>: +.*: 19a01400 ldtclra w0, w0, \[x0\] +.*: 19a017e0 ldtclra w0, w0, \[sp\] +.*: 19a0141f ldtclra w0, wzr, \[x0\] +.*: 19a017ff ldtclra w0, wzr, \[sp\] +.*: 19bf1400 ldtclra wzr, w0, \[x0\] +.*: 19bf17e0 ldtclra wzr, w0, \[sp\] +.*: 19bf141f ldtclra wzr, wzr, \[x0\] +.*: 19bf17ff ldtclra wzr, wzr, \[sp\] +.*: 59a01400 ldtclra x0, x0, \[x0\] +.*: 59a017e0 ldtclra x0, x0, \[sp\] +.*: 59a0141f ldtclra x0, xzr, \[x0\] +.*: 59a017ff ldtclra x0, xzr, \[sp\] +.*: 59bf1400 ldtclra xzr, x0, \[x0\] +.*: 59bf17e0 ldtclra xzr, x0, \[sp\] +.*: 59bf141f ldtclra xzr, xzr, \[x0\] +.*: 59bf17ff ldtclra xzr, xzr, \[sp\] + +.* <ldtclral>: +.*: 19e01400 ldtclral w0, w0, \[x0\] +.*: 19e017e0 ldtclral w0, w0, \[sp\] +.*: 19e0141f ldtclral w0, wzr, \[x0\] +.*: 19e017ff ldtclral w0, wzr, \[sp\] +.*: 19ff1400 ldtclral wzr, w0, \[x0\] +.*: 19ff17e0 ldtclral wzr, w0, \[sp\] +.*: 19ff141f ldtclral wzr, wzr, \[x0\] +.*: 19ff17ff ldtclral wzr, wzr, \[sp\] +.*: 59e01400 ldtclral x0, x0, \[x0\] +.*: 59e017e0 ldtclral x0, x0, \[sp\] +.*: 59e0141f ldtclral x0, xzr, \[x0\] +.*: 59e017ff ldtclral x0, xzr, \[sp\] +.*: 59ff1400 ldtclral xzr, x0, \[x0\] +.*: 59ff17e0 ldtclral xzr, x0, \[sp\] +.*: 59ff141f ldtclral xzr, xzr, \[x0\] +.*: 59ff17ff ldtclral xzr, xzr, \[sp\] + +.* <ldtclrl>: +.*: 19601400 ldtclrl w0, w0, \[x0\] +.*: 196017e0 ldtclrl w0, w0, \[sp\] +.*: 1960141f sttclrl w0, \[x0\] +.*: 196017ff sttclrl w0, \[sp\] +.*: 197f1400 ldtclrl wzr, w0, \[x0\] +.*: 197f17e0 ldtclrl wzr, w0, \[sp\] +.*: 197f141f sttclrl wzr, \[x0\] +.*: 197f17ff sttclrl wzr, \[sp\] +.*: 1960141d ldtclrl w0, w29, \[x0\] +.*: 196017fd ldtclrl w0, w29, \[sp\] +.*: 197f141d ldtclrl wzr, w29, \[x0\] +.*: 197f17fd ldtclrl wzr, w29, \[sp\] +.*: 59601400 ldtclrl x0, x0, \[x0\] +.*: 596017e0 ldtclrl x0, x0, \[sp\] +.*: 5960141f sttclrl x0, \[x0\] +.*: 596017ff sttclrl x0, \[sp\] +.*: 597f1400 ldtclrl xzr, x0, \[x0\] +.*: 597f17e0 ldtclrl xzr, x0, \[sp\] +.*: 597f141f sttclrl xzr, \[x0\] +.*: 597f17ff sttclrl xzr, \[sp\] +.*: 5960141d ldtclrl x0, x29, \[x0\] +.*: 596017fd ldtclrl x0, x29, \[sp\] +.*: 597f141d ldtclrl xzr, x29, \[x0\] +.*: 597f17fd ldtclrl xzr, x29, \[sp\] + +.* <sttclrl>: +.*: 1960141f sttclrl w0, \[x0\] +.*: 196017ff sttclrl w0, \[sp\] +.*: 197f141f sttclrl wzr, \[x0\] +.*: 197f17ff sttclrl wzr, \[sp\] +.*: 5960141f sttclrl x0, \[x0\] +.*: 596017ff sttclrl x0, \[sp\] +.*: 597f141f sttclrl xzr, \[x0\] +.*: 597f17ff sttclrl xzr, \[sp\] + +.* <ldtset>: +.*: 19203400 ldtset w0, w0, \[x0\] +.*: 192037e0 ldtset w0, w0, \[sp\] +.*: 1920341f sttset w0, \[x0\] +.*: 192037ff sttset w0, \[sp\] +.*: 193f3400 ldtset wzr, w0, \[x0\] +.*: 193f37e0 ldtset wzr, w0, \[sp\] +.*: 193f341f sttset wzr, \[x0\] +.*: 193f37ff sttset wzr, \[sp\] +.*: 1920341d ldtset w0, w29, \[x0\] +.*: 192037fd ldtset w0, w29, \[sp\] +.*: 193f341d ldtset wzr, w29, \[x0\] +.*: 193f37fd ldtset wzr, w29, \[sp\] +.*: 59203400 ldtset x0, x0, \[x0\] +.*: 592037e0 ldtset x0, x0, \[sp\] +.*: 5920341f sttset x0, \[x0\] +.*: 592037ff sttset x0, \[sp\] +.*: 593f3400 ldtset xzr, x0, \[x0\] +.*: 593f37e0 ldtset xzr, x0, \[sp\] +.*: 593f341f sttset xzr, \[x0\] +.*: 593f37ff sttset xzr, \[sp\] +.*: 5920341d ldtset x0, x29, \[x0\] +.*: 592037fd ldtset x0, x29, \[sp\] +.*: 593f341d ldtset xzr, x29, \[x0\] +.*: 593f37fd ldtset xzr, x29, \[sp\] + +.* <sttset>: +.*: 1920341f sttset w0, \[x0\] +.*: 192037ff sttset w0, \[sp\] +.*: 193f341f sttset wzr, \[x0\] +.*: 193f37ff sttset wzr, \[sp\] +.*: 5920341f sttset x0, \[x0\] +.*: 592037ff sttset x0, \[sp\] +.*: 593f341f sttset xzr, \[x0\] +.*: 593f37ff sttset xzr, \[sp\] + +.* <ldtseta>: +.*: 19a03400 ldtseta w0, w0, \[x0\] +.*: 19a037e0 ldtseta w0, w0, \[sp\] +.*: 19a0341f ldtseta w0, wzr, \[x0\] +.*: 19a037ff ldtseta w0, wzr, \[sp\] +.*: 19bf3400 ldtseta wzr, w0, \[x0\] +.*: 19bf37e0 ldtseta wzr, w0, \[sp\] +.*: 19bf341f ldtseta wzr, wzr, \[x0\] +.*: 19bf37ff ldtseta wzr, wzr, \[sp\] +.*: 59a03400 ldtseta x0, x0, \[x0\] +.*: 59a037e0 ldtseta x0, x0, \[sp\] +.*: 59a0341f ldtseta x0, xzr, \[x0\] +.*: 59a037ff ldtseta x0, xzr, \[sp\] +.*: 59bf3400 ldtseta xzr, x0, \[x0\] +.*: 59bf37e0 ldtseta xzr, x0, \[sp\] +.*: 59bf341f ldtseta xzr, xzr, \[x0\] +.*: 59bf37ff ldtseta xzr, xzr, \[sp\] + +.* <ldtsetal>: +.*: 19e03400 ldtsetal w0, w0, \[x0\] +.*: 19e037e0 ldtsetal w0, w0, \[sp\] +.*: 19e0341f ldtsetal w0, wzr, \[x0\] +.*: 19e037ff ldtsetal w0, wzr, \[sp\] +.*: 19ff3400 ldtsetal wzr, w0, \[x0\] +.*: 19ff37e0 ldtsetal wzr, w0, \[sp\] +.*: 19ff341f ldtsetal wzr, wzr, \[x0\] +.*: 19ff37ff ldtsetal wzr, wzr, \[sp\] +.*: 59e03400 ldtsetal x0, x0, \[x0\] +.*: 59e037e0 ldtsetal x0, x0, \[sp\] +.*: 59e0341f ldtsetal x0, xzr, \[x0\] +.*: 59e037ff ldtsetal x0, xzr, \[sp\] +.*: 59ff3400 ldtsetal xzr, x0, \[x0\] +.*: 59ff37e0 ldtsetal xzr, x0, \[sp\] +.*: 59ff341f ldtsetal xzr, xzr, \[x0\] +.*: 59ff37ff ldtsetal xzr, xzr, \[sp\] + +.* <ldtsetl>: +.*: 19603400 ldtsetl w0, w0, \[x0\] +.*: 196037e0 ldtsetl w0, w0, \[sp\] +.*: 1960341f sttsetl w0, \[x0\] +.*: 196037ff sttsetl w0, \[sp\] +.*: 197f3400 ldtsetl wzr, w0, \[x0\] +.*: 197f37e0 ldtsetl wzr, w0, \[sp\] +.*: 197f341f sttsetl wzr, \[x0\] +.*: 197f37ff sttsetl wzr, \[sp\] +.*: 1960341d ldtsetl w0, w29, \[x0\] +.*: 196037fd ldtsetl w0, w29, \[sp\] +.*: 197f341d ldtsetl wzr, w29, \[x0\] +.*: 197f37fd ldtsetl wzr, w29, \[sp\] +.*: 59603400 ldtsetl x0, x0, \[x0\] +.*: 596037e0 ldtsetl x0, x0, \[sp\] +.*: 5960341f sttsetl x0, \[x0\] +.*: 596037ff sttsetl x0, \[sp\] +.*: 597f3400 ldtsetl xzr, x0, \[x0\] +.*: 597f37e0 ldtsetl xzr, x0, \[sp\] +.*: 597f341f sttsetl xzr, \[x0\] +.*: 597f37ff sttsetl xzr, \[sp\] +.*: 5960341d ldtsetl x0, x29, \[x0\] +.*: 596037fd ldtsetl x0, x29, \[sp\] +.*: 597f341d ldtsetl xzr, x29, \[x0\] +.*: 597f37fd ldtsetl xzr, x29, \[sp\] + +.* <sttsetl>: +.*: 1960341f sttsetl w0, \[x0\] +.*: 196037ff sttsetl w0, \[sp\] +.*: 197f341f sttsetl wzr, \[x0\] +.*: 197f37ff sttsetl wzr, \[sp\] +.*: 5960341f sttsetl x0, \[x0\] +.*: 596037ff sttsetl x0, \[sp\] +.*: 597f341f sttsetl xzr, \[x0\] +.*: 597f37ff sttsetl xzr, \[sp\] + +.* <ldtnp>: +.*: e8400800 ldtnp x0, x2, \[x0\] +.*: e87f8800 ldtnp x0, x2, \[x0, #-8\] +.*: e8400be0 ldtnp x0, x2, \[sp\] +.*: e87f8be0 ldtnp x0, x2, \[sp, #-8\] +.*: e8407c00 ldtnp x0, xzr, \[x0\] +.*: e87ffc00 ldtnp x0, xzr, \[x0, #-8\] +.*: e8407fe0 ldtnp x0, xzr, \[sp\] +.*: e87fffe0 ldtnp x0, xzr, \[sp, #-8\] +.*: e840081f ldtnp xzr, x2, \[x0\] +.*: e87f881f ldtnp xzr, x2, \[x0, #-8\] +.*: e8400bff ldtnp xzr, x2, \[sp\] +.*: e87f8bff ldtnp xzr, x2, \[sp, #-8\] +.*: e840741f ldtnp xzr, x29, \[x0\] +.*: e87ff41f ldtnp xzr, x29, \[x0, #-8\] +.*: e84077ff ldtnp xzr, x29, \[sp\] +.*: e87ff7ff ldtnp xzr, x29, \[sp, #-8\] +.*: ec400800 ldtnp q0, q2, \[x0\] +.*: ec7f8800 ldtnp q0, q2, \[x0, #-16\] +.*: ec400be0 ldtnp q0, q2, \[sp\] +.*: ec7f8be0 ldtnp q0, q2, \[sp, #-16\] +.*: ec407c00 ldtnp q0, q31, \[x0\] +.*: ec7ffc00 ldtnp q0, q31, \[x0, #-16\] +.*: ec407fe0 ldtnp q0, q31, \[sp\] +.*: ec7fffe0 ldtnp q0, q31, \[sp, #-16\] +.*: ec40001f ldtnp q31, q0, \[x0\] +.*: ec7f801f ldtnp q31, q0, \[x0, #-16\] +.*: ec4003ff ldtnp q31, q0, \[sp\] +.*: ec7f83ff ldtnp q31, q0, \[sp, #-16\] +.*: ec40741f ldtnp q31, q29, \[x0\] +.*: ec7ff41f ldtnp q31, q29, \[x0, #-16\] +.*: ec4077ff ldtnp q31, q29, \[sp\] +.*: ec7ff7ff ldtnp q31, q29, \[sp, #-16\] + +.* <sttnp>: +.*: e8000800 sttnp x0, x2, \[x0\] +.*: e83f8800 sttnp x0, x2, \[x0, #-8\] +.*: e8000be0 sttnp x0, x2, \[sp\] +.*: e83f8be0 sttnp x0, x2, \[sp, #-8\] +.*: e8007c00 sttnp x0, xzr, \[x0\] +.*: e83ffc00 sttnp x0, xzr, \[x0, #-8\] +.*: e8007fe0 sttnp x0, xzr, \[sp\] +.*: e83fffe0 sttnp x0, xzr, \[sp, #-8\] +.*: e800081f sttnp xzr, x2, \[x0\] +.*: e83f881f sttnp xzr, x2, \[x0, #-8\] +.*: e8000bff sttnp xzr, x2, \[sp\] +.*: e83f8bff sttnp xzr, x2, \[sp, #-8\] +.*: e800741f sttnp xzr, x29, \[x0\] +.*: e83ff41f sttnp xzr, x29, \[x0, #-8\] +.*: e80077ff sttnp xzr, x29, \[sp\] +.*: e83ff7ff sttnp xzr, x29, \[sp, #-8\] +.*: ec000800 sttnp q0, q2, \[x0\] +.*: ec3f8800 sttnp q0, q2, \[x0, #-16\] +.*: ec000be0 sttnp q0, q2, \[sp\] +.*: ec3f8be0 sttnp q0, q2, \[sp, #-16\] +.*: ec007c00 sttnp q0, q31, \[x0\] +.*: ec3ffc00 sttnp q0, q31, \[x0, #-16\] +.*: ec007fe0 sttnp q0, q31, \[sp\] +.*: ec3fffe0 sttnp q0, q31, \[sp, #-16\] +.*: ec00001f sttnp q31, q0, \[x0\] +.*: ec3f801f sttnp q31, q0, \[x0, #-16\] +.*: ec0003ff sttnp q31, q0, \[sp\] +.*: ec3f83ff sttnp q31, q0, \[sp, #-16\] +.*: ec00741f sttnp q31, q29, \[x0\] +.*: ec3ff41f sttnp q31, q29, \[x0, #-16\] +.*: ec0077ff sttnp q31, q29, \[sp\] +.*: ec3ff7ff sttnp q31, q29, \[sp, #-16\] diff --git a/gas/testsuite/gas/aarch64/lsui.s b/gas/testsuite/gas/aarch64/lsui.s new file mode 100644 index 0000000..90063c6 --- /dev/null +++ b/gas/testsuite/gas/aarch64/lsui.s @@ -0,0 +1,803 @@ +ldtxr: + ldtxr w0, [x0] + ldtxr w0, [sp] + ldtxr wzr, [x0] + ldtxr x0, [x0] + ldtxr x0, [sp] + ldtxr xzr, [x0] + +ldatxr: + ldatxr w0, [x0] + ldatxr w0, [sp] + ldatxr wzr, [x0] + ldatxr x0, [x0] + ldatxr x0, [sp] + ldatxr xzr, [x0] + +sttxr: + sttxr w0, w4, [x2] + sttxr w0, w4, [sp] + sttxr w0, wzr, [x2] + sttxr w0, wzr, [sp] + sttxr w29, w4, [x0] + sttxr w29, w4, [sp] + sttxr w29, wzr, [x0] + sttxr w29, wzr, [sp] + sttxr w0, x4, [x2] + sttxr w0, x4, [sp] + sttxr w0, xzr, [x2] + sttxr w0, xzr, [sp] + sttxr w29, x4, [x0] + sttxr w29, x4, [sp] + sttxr w29, xzr, [x0] + sttxr w29, xzr, [sp] + +stltxr: + stltxr w0, w4, [x2] + stltxr w0, w4, [sp] + stltxr w0, wzr, [x2] + stltxr w0, wzr, [sp] + stltxr w29, w4, [x0] + stltxr w29, w4, [sp] + stltxr w29, wzr, [x0] + stltxr w29, wzr, [sp] + stltxr w0, x4, [x2] + stltxr w0, x4, [sp] + stltxr w0, xzr, [x2] + stltxr w0, xzr, [sp] + stltxr w29, x4, [x0] + stltxr w29, x4, [sp] + stltxr w29, xzr, [x0] + stltxr w29, xzr, [sp] + +cast: + cast x0, x0, [x0] + cast x0, x0, [sp] + cast x0, xzr, [x0] + cast x0, xzr, [sp] + cast xzr, x0, [x0] + cast xzr, x0, [sp] + cast xzr, xzr, [x0] + cast xzr, xzr, [sp] + +casat: + casat x0, x0, [x0] + casat x0, x0, [sp] + casat x0, xzr, [x0] + casat x0, xzr, [sp] + casat xzr, x0, [x0] + casat xzr, x0, [sp] + casat xzr, xzr, [x0] + casat xzr, xzr, [sp] + +casalt: + casalt x0, x0, [x0] + casalt x0, x0, [sp] + casalt x0, xzr, [x0] + casalt x0, xzr, [sp] + casalt xzr, x0, [x0] + casalt xzr, x0, [sp] + casalt xzr, xzr, [x0] + casalt xzr, xzr, [sp] + +caslt: + caslt x0, x0, [x0] + caslt x0, x0, [sp] + caslt x0, xzr, [x0] + caslt x0, xzr, [sp] + caslt xzr, x0, [x0] + caslt xzr, x0, [sp] + caslt xzr, xzr, [x0] + caslt xzr, xzr, [sp] + +caspt: + caspt x0, x1, x0, x1, [x0] + caspt x0, x1, x0, x1, [sp] + caspt x0, x1, x28, x29, [x0] + caspt x0, x1, x28, x29, [sp] + caspt x28, x29, x0, x1, [x0] + caspt x28, x29, x0, x1, [sp] + caspt x28, x29, x28, x29, [x0] + caspt x28, x29, x28, x29, [sp] + +caspat: + caspat x0, x1, x0, x1, [x0] + caspat x0, x1, x0, x1, [sp] + caspat x0, x1, x28, x29, [x0] + caspat x0, x1, x28, x29, [sp] + caspat x28, x29, x0, x1, [x0] + caspat x28, x29, x0, x1, [sp] + caspat x28, x29, x28, x29, [x0] + caspat x28, x29, x28, x29, [sp] + +caspalt: + caspalt x0, x1, x0, x1, [x0] + caspalt x0, x1, x0, x1, [sp] + caspalt x0, x1, x28, x29, [x0] + caspalt x0, x1, x28, x29, [sp] + caspalt x28, x29, x0, x1, [x0] + caspalt x28, x29, x0, x1, [sp] + caspalt x28, x29, x28, x29, [x0] + caspalt x28, x29, x28, x29, [sp] + +casplt: + casplt x0, x1, x0, x1, [x0] + casplt x0, x1, x0, x1, [sp] + casplt x0, x1, x28, x29, [x0] + casplt x0, x1, x28, x29, [sp] + casplt x28, x29, x0, x1, [x0] + casplt x28, x29, x0, x1, [sp] + casplt x28, x29, x28, x29, [x0] + casplt x28, x29, x28, x29, [sp] + +ldtp: + ldtp x0, x2, [x0] + ldtp x0, x2, [x0, #-8] + ldtp x0, x2, [sp] + ldtp x0, x2, [sp, #-8] + ldtp x0, xzr, [x0] + ldtp x0, xzr, [x0, #-8] + ldtp x0, xzr, [sp] + ldtp x0, xzr, [sp, #-8] + ldtp xzr, x2, [x0] + ldtp xzr, x2, [x0, #-8] + ldtp xzr, x2, [sp] + ldtp xzr, x2, [sp, #-8] + ldtp xzr, x29, [x0] + ldtp xzr, x29, [x0, #-8] + ldtp xzr, x29, [sp] + ldtp xzr, x29, [sp, #-8] + + ldtp x0, x4, [x2, #16]! + ldtp x0, x4, [x2, #-8]! + ldtp x0, x4, [sp, #16]! + ldtp x0, x4, [sp, #-8]! + ldtp x0, xzr, [x2, #16]! + ldtp x0, xzr, [x2, #-8]! + ldtp x0, xzr, [sp, #16]! + ldtp x0, xzr, [sp, #-8]! + ldtp xzr, x0, [x2, #16]! + ldtp xzr, x0, [x2, #-8]! + ldtp xzr, x0, [sp, #16]! + ldtp xzr, x0, [sp, #-8]! + ldtp xzr, x29, [x2, #16]! + ldtp xzr, x29, [x2, #-8]! + ldtp xzr, x29, [sp, #16]! + ldtp xzr, x29, [sp, #-8]! + + ldtp x0, x4, [x2], #16 + ldtp x0, x4, [x2], #-8 + ldtp x0, x4, [sp], #16 + ldtp x0, x4, [sp], #-8 + ldtp x0, xzr, [x2], #16 + ldtp x0, xzr, [x2], #-8 + ldtp x0, xzr, [sp], #16 + ldtp x0, xzr, [sp], #-8 + ldtp xzr, x0, [x2], #16 + ldtp xzr, x0, [x2], #-8 + ldtp xzr, x0, [sp], #16 + ldtp xzr, x0, [sp], #-8 + ldtp xzr, x29, [x2], #16 + ldtp xzr, x29, [x2], #-8 + ldtp xzr, x29, [sp], #16 + ldtp xzr, x29, [sp], #-8 + + ldtp q0, q2, [x0] + ldtp q0, q2, [x0, #-16] + ldtp q0, q2, [sp] + ldtp q0, q2, [sp, #-16] + ldtp q0, q31, [x0] + ldtp q0, q31, [x0, #-16] + ldtp q0, q31, [sp] + ldtp q0, q31, [sp, #-16] + ldtp q31, q0, [x0] + ldtp q31, q0, [x0, #-16] + ldtp q31, q0, [sp] + ldtp q31, q0, [sp, #-16] + ldtp q31, q29, [x0] + ldtp q31, q29, [x0, #-16] + ldtp q31, q29, [sp] + ldtp q31, q29, [sp, #-16] + + ldtp q0, q2, [x0, #32]! + ldtp q0, q2, [x0, #-16]! + ldtp q0, q2, [sp, #32]! + ldtp q0, q2, [sp, #-16]! + ldtp q0, q31, [x0, #32]! + ldtp q0, q31, [x0, #-16]! + ldtp q0, q31, [sp, #32]! + ldtp q0, q31, [sp, #-16]! + ldtp q31, q2, [x0, #32]! + ldtp q31, q2, [x0, #-16]! + ldtp q31, q2, [sp, #32]! + ldtp q31, q2, [sp, #-16]! + ldtp q31, q29, [x0, #32]! + ldtp q31, q29, [x0, #-16]! + ldtp q31, q29, [sp, #32]! + ldtp q31, q29, [sp, #-16]! + + ldtp q0, q2, [x0], #32 + ldtp q0, q2, [x0], #-16 + ldtp q0, q2, [sp], #32 + ldtp q0, q2, [sp], #-16 + ldtp q0, q31, [x0], #32 + ldtp q0, q31, [x0], #-16 + ldtp q0, q31, [sp], #32 + ldtp q0, q31, [sp], #-16 + ldtp q31, q2, [x0], #32 + ldtp q31, q2, [x0], #-16 + ldtp q31, q2, [sp], #32 + ldtp q31, q2, [sp], #-16 + ldtp q31, q29, [x0], #32 + ldtp q31, q29, [x0], #-16 + ldtp q31, q29, [sp], #32 + ldtp q31, q29, [sp], #-16 + +sttp: + sttp x0, x2, [x0] + sttp x0, x2, [x0, #-8] + sttp x0, x2, [sp] + sttp x0, x2, [sp, #-8] + sttp x0, xzr, [x0] + sttp x0, xzr, [x0, #-8] + sttp x0, xzr, [sp] + sttp x0, xzr, [sp, #-8] + sttp xzr, x2, [x0] + sttp xzr, x2, [x0, #-8] + sttp xzr, x2, [sp] + sttp xzr, x2, [sp, #-8] + sttp xzr, x29, [x0] + sttp xzr, x29, [x0, #-8] + sttp xzr, x29, [sp] + sttp xzr, x29, [sp, #-8] + + sttp x0, x4, [x2, #16]! + sttp x0, x4, [x2, #-8]! + sttp x0, x4, [sp, #16]! + sttp x0, x4, [sp, #-8]! + sttp x0, xzr, [x2, #16]! + sttp x0, xzr, [x2, #-8]! + sttp x0, xzr, [sp, #16]! + sttp x0, xzr, [sp, #-8]! + sttp xzr, x0, [x2, #16]! + sttp xzr, x0, [x2, #-8]! + sttp xzr, x0, [sp, #16]! + sttp xzr, x0, [sp, #-8]! + sttp xzr, x29, [x2, #16]! + sttp xzr, x29, [x2, #-8]! + sttp xzr, x29, [sp, #16]! + sttp xzr, x29, [sp, #-8]! + + sttp x0, x4, [x2], #16 + sttp x0, x4, [x2], #-8 + sttp x0, x4, [sp], #16 + sttp x0, x4, [sp], #-8 + sttp x0, xzr, [x2], #16 + sttp x0, xzr, [x2], #-8 + sttp x0, xzr, [sp], #16 + sttp x0, xzr, [sp], #-8 + sttp xzr, x0, [x2], #16 + sttp xzr, x0, [x2], #-8 + sttp xzr, x0, [sp], #16 + sttp xzr, x0, [sp], #-8 + sttp xzr, x29, [x2], #16 + sttp xzr, x29, [x2], #-8 + sttp xzr, x29, [sp], #16 + sttp xzr, x29, [sp], #-8 + + sttp q0, q2, [x0] + sttp q0, q2, [x0, #-16] + sttp q0, q2, [sp] + sttp q0, q2, [sp, #-16] + sttp q0, q31, [x0] + sttp q0, q31, [x0, #-16] + sttp q0, q31, [sp] + sttp q0, q31, [sp, #-16] + sttp q31, q0, [x0] + sttp q31, q0, [x0, #-16] + sttp q31, q0, [sp] + sttp q31, q0, [sp, #-16] + sttp q31, q29, [x0] + sttp q31, q29, [x0, #-16] + sttp q31, q29, [sp] + sttp q31, q29, [sp, #-16] + + sttp q0, q2, [x0, #32]! + sttp q0, q2, [x0, #-16]! + sttp q0, q2, [sp, #32]! + sttp q0, q2, [sp, #-16]! + sttp q0, q31, [x0, #32]! + sttp q0, q31, [x0, #-16]! + sttp q0, q31, [sp, #32]! + sttp q0, q31, [sp, #-16]! + sttp q31, q2, [x0, #32]! + sttp q31, q2, [x0, #-16]! + sttp q31, q2, [sp, #32]! + sttp q31, q2, [sp, #-16]! + sttp q31, q29, [x0, #32]! + sttp q31, q29, [x0, #-16]! + sttp q31, q29, [sp, #32]! + sttp q31, q29, [sp, #-16]! + + sttp q0, q2, [x0], #32 + sttp q0, q2, [x0], #-16 + sttp q0, q2, [sp], #32 + sttp q0, q2, [sp], #-16 + sttp q0, q31, [x0], #32 + sttp q0, q31, [x0], #-16 + sttp q0, q31, [sp], #32 + sttp q0, q31, [sp], #-16 + sttp q31, q2, [x0], #32 + sttp q31, q2, [x0], #-16 + sttp q31, q2, [sp], #32 + sttp q31, q2, [sp], #-16 + sttp q31, q29, [x0], #32 + sttp q31, q29, [x0], #-16 + sttp q31, q29, [sp], #32 + sttp q31, q29, [sp], #-16 + +swpt: + swpt w0, w0, [x0] + swpt w0, w0, [sp] + swpt w0, wzr, [x0] + swpt w0, wzr, [sp] + swpt wzr, w0, [x0] + swpt wzr, w0, [sp] + swpt wzr, wzr, [x0] + swpt wzr, wzr, [sp] + swpt x0, x0, [x0] + swpt x0, x0, [sp] + swpt x0, xzr, [x0] + swpt x0, xzr, [sp] + swpt xzr, x0, [x0] + swpt xzr, x0, [sp] + swpt xzr, xzr, [x0] + swpt xzr, xzr, [sp] + +swpta: + swpta w0, w0, [x0] + swpta w0, w0, [sp] + swpta w0, wzr, [x0] + swpta w0, wzr, [sp] + swpta wzr, w0, [x0] + swpta wzr, w0, [sp] + swpta wzr, wzr, [x0] + swpta wzr, wzr, [sp] + swpta x0, x0, [x0] + swpta x0, x0, [sp] + swpta x0, xzr, [x0] + swpta x0, xzr, [sp] + swpta xzr, x0, [x0] + swpta xzr, x0, [sp] + swpta xzr, xzr, [x0] + swpta xzr, xzr, [sp] + +swptal: + swptal w0, w0, [x0] + swptal w0, w0, [sp] + swptal w0, wzr, [x0] + swptal w0, wzr, [sp] + swptal wzr, w0, [x0] + swptal wzr, w0, [sp] + swptal wzr, wzr, [x0] + swptal wzr, wzr, [sp] + swptal x0, x0, [x0] + swptal x0, x0, [sp] + swptal x0, xzr, [x0] + swptal x0, xzr, [sp] + swptal xzr, x0, [x0] + swptal xzr, x0, [sp] + swptal xzr, xzr, [x0] + swptal xzr, xzr, [sp] + +swptl: + swptl w0, w0, [x0] + swptl w0, w0, [sp] + swptl w0, wzr, [x0] + swptl w0, wzr, [sp] + swptl wzr, w0, [x0] + swptl wzr, w0, [sp] + swptl wzr, wzr, [x0] + swptl wzr, wzr, [sp] + swptl x0, x0, [x0] + swptl x0, x0, [sp] + swptl x0, xzr, [x0] + swptl x0, xzr, [sp] + swptl xzr, x0, [x0] + swptl xzr, x0, [sp] + swptl xzr, xzr, [x0] + swptl xzr, xzr, [sp] + +ldtadd: + ldtadd w0, w0, [x0] + ldtadd w0, w0, [sp] + ldtadd w0, wzr, [x0] + ldtadd w0, wzr, [sp] + ldtadd wzr, w0, [x0] + ldtadd wzr, w0, [sp] + ldtadd wzr, wzr, [x0] + ldtadd wzr, wzr, [sp] + ldtadd w0, w29, [x0] + ldtadd w0, w29, [sp] + ldtadd wzr, w29, [x0] + ldtadd wzr, w29, [sp] + ldtadd x0, x0, [x0] + ldtadd x0, x0, [sp] + ldtadd x0, xzr, [x0] + ldtadd x0, xzr, [sp] + ldtadd xzr, x0, [x0] + ldtadd xzr, x0, [sp] + ldtadd xzr, xzr, [x0] + ldtadd xzr, xzr, [sp] + ldtadd x0, x29, [x0] + ldtadd x0, x29, [sp] + ldtadd xzr, x29, [x0] + ldtadd xzr, x29, [sp] + +sttadd: + sttadd w0, [x0] + sttadd w0, [sp] + sttadd wzr, [x0] + sttadd wzr, [sp] + sttadd x0, [x0] + sttadd x0, [sp] + sttadd xzr, [x0] + sttadd xzr, [sp] + +ldtadda: + ldtadda w0, w0, [x0] + ldtadda w0, w0, [sp] + ldtadda w0, wzr, [x0] + ldtadda w0, wzr, [sp] + ldtadda wzr, w0, [x0] + ldtadda wzr, w0, [sp] + ldtadda wzr, wzr, [x0] + ldtadda wzr, wzr, [sp] + ldtadda x0, x0, [x0] + ldtadda x0, x0, [sp] + ldtadda x0, xzr, [x0] + ldtadda x0, xzr, [sp] + ldtadda xzr, x0, [x0] + ldtadda xzr, x0, [sp] + ldtadda xzr, xzr, [x0] + ldtadda xzr, xzr, [sp] + +ldtaddal: + ldtaddal w0, w0, [x0] + ldtaddal w0, w0, [sp] + ldtaddal w0, wzr, [x0] + ldtaddal w0, wzr, [sp] + ldtaddal wzr, w0, [x0] + ldtaddal wzr, w0, [sp] + ldtaddal wzr, wzr, [x0] + ldtaddal wzr, wzr, [sp] + ldtaddal x0, x0, [x0] + ldtaddal x0, x0, [sp] + ldtaddal x0, xzr, [x0] + ldtaddal x0, xzr, [sp] + ldtaddal xzr, x0, [x0] + ldtaddal xzr, x0, [sp] + ldtaddal xzr, xzr, [x0] + ldtaddal xzr, xzr, [sp] + +ldtaddl: + ldtaddl w0, w0, [x0] + ldtaddl w0, w0, [sp] + ldtaddl w0, wzr, [x0] + ldtaddl w0, wzr, [sp] + ldtaddl wzr, w0, [x0] + ldtaddl wzr, w0, [sp] + ldtaddl wzr, wzr, [x0] + ldtaddl wzr, wzr, [sp] + ldtaddl w0, w29, [x0] + ldtaddl w0, w29, [sp] + ldtaddl wzr, w29, [x0] + ldtaddl wzr, w29, [sp] + ldtaddl x0, x0, [x0] + ldtaddl x0, x0, [sp] + ldtaddl x0, xzr, [x0] + ldtaddl x0, xzr, [sp] + ldtaddl xzr, x0, [x0] + ldtaddl xzr, x0, [sp] + ldtaddl xzr, xzr, [x0] + ldtaddl xzr, xzr, [sp] + ldtaddl x0, x29, [x0] + ldtaddl x0, x29, [sp] + ldtaddl xzr, x29, [x0] + ldtaddl xzr, x29, [sp] + +sttaddl: + sttaddl w0, [x0] + sttaddl w0, [sp] + sttaddl wzr, [x0] + sttaddl wzr, [sp] + sttaddl x0, [x0] + sttaddl x0, [sp] + sttaddl xzr, [x0] + sttaddl xzr, [sp] + +ldtclr: + ldtclr w0, w0, [x0] + ldtclr w0, w0, [sp] + ldtclr w0, wzr, [x0] + ldtclr w0, wzr, [sp] + ldtclr wzr, w0, [x0] + ldtclr wzr, w0, [sp] + ldtclr wzr, wzr, [x0] + ldtclr wzr, wzr, [sp] + ldtclr w0, w29, [x0] + ldtclr w0, w29, [sp] + ldtclr wzr, w29, [x0] + ldtclr wzr, w29, [sp] + ldtclr x0, x0, [x0] + ldtclr x0, x0, [sp] + ldtclr x0, xzr, [x0] + ldtclr x0, xzr, [sp] + ldtclr xzr, x0, [x0] + ldtclr xzr, x0, [sp] + ldtclr xzr, xzr, [x0] + ldtclr xzr, xzr, [sp] + ldtclr x0, x29, [x0] + ldtclr x0, x29, [sp] + ldtclr xzr, x29, [x0] + ldtclr xzr, x29, [sp] + +sttclr: + sttclr w0, [x0] + sttclr w0, [sp] + sttclr wzr, [x0] + sttclr wzr, [sp] + sttclr x0, [x0] + sttclr x0, [sp] + sttclr xzr, [x0] + sttclr xzr, [sp] + +ldtclra: + ldtclra w0, w0, [x0] + ldtclra w0, w0, [sp] + ldtclra w0, wzr, [x0] + ldtclra w0, wzr, [sp] + ldtclra wzr, w0, [x0] + ldtclra wzr, w0, [sp] + ldtclra wzr, wzr, [x0] + ldtclra wzr, wzr, [sp] + ldtclra x0, x0, [x0] + ldtclra x0, x0, [sp] + ldtclra x0, xzr, [x0] + ldtclra x0, xzr, [sp] + ldtclra xzr, x0, [x0] + ldtclra xzr, x0, [sp] + ldtclra xzr, xzr, [x0] + ldtclra xzr, xzr, [sp] + +ldtclral: + ldtclral w0, w0, [x0] + ldtclral w0, w0, [sp] + ldtclral w0, wzr, [x0] + ldtclral w0, wzr, [sp] + ldtclral wzr, w0, [x0] + ldtclral wzr, w0, [sp] + ldtclral wzr, wzr, [x0] + ldtclral wzr, wzr, [sp] + ldtclral x0, x0, [x0] + ldtclral x0, x0, [sp] + ldtclral x0, xzr, [x0] + ldtclral x0, xzr, [sp] + ldtclral xzr, x0, [x0] + ldtclral xzr, x0, [sp] + ldtclral xzr, xzr, [x0] + ldtclral xzr, xzr, [sp] + +ldtclrl: + ldtclrl w0, w0, [x0] + ldtclrl w0, w0, [sp] + ldtclrl w0, wzr, [x0] + ldtclrl w0, wzr, [sp] + ldtclrl wzr, w0, [x0] + ldtclrl wzr, w0, [sp] + ldtclrl wzr, wzr, [x0] + ldtclrl wzr, wzr, [sp] + ldtclrl w0, w29, [x0] + ldtclrl w0, w29, [sp] + ldtclrl wzr, w29, [x0] + ldtclrl wzr, w29, [sp] + ldtclrl x0, x0, [x0] + ldtclrl x0, x0, [sp] + ldtclrl x0, xzr, [x0] + ldtclrl x0, xzr, [sp] + ldtclrl xzr, x0, [x0] + ldtclrl xzr, x0, [sp] + ldtclrl xzr, xzr, [x0] + ldtclrl xzr, xzr, [sp] + ldtclrl x0, x29, [x0] + ldtclrl x0, x29, [sp] + ldtclrl xzr, x29, [x0] + ldtclrl xzr, x29, [sp] + +sttclrl: + sttclrl w0, [x0] + sttclrl w0, [sp] + sttclrl wzr, [x0] + sttclrl wzr, [sp] + sttclrl x0, [x0] + sttclrl x0, [sp] + sttclrl xzr, [x0] + sttclrl xzr, [sp] + +ldtset: + ldtset w0, w0, [x0] + ldtset w0, w0, [sp] + ldtset w0, wzr, [x0] + ldtset w0, wzr, [sp] + ldtset wzr, w0, [x0] + ldtset wzr, w0, [sp] + ldtset wzr, wzr, [x0] + ldtset wzr, wzr, [sp] + ldtset w0, w29, [x0] + ldtset w0, w29, [sp] + ldtset wzr, w29, [x0] + ldtset wzr, w29, [sp] + ldtset x0, x0, [x0] + ldtset x0, x0, [sp] + ldtset x0, xzr, [x0] + ldtset x0, xzr, [sp] + ldtset xzr, x0, [x0] + ldtset xzr, x0, [sp] + ldtset xzr, xzr, [x0] + ldtset xzr, xzr, [sp] + ldtset x0, x29, [x0] + ldtset x0, x29, [sp] + ldtset xzr, x29, [x0] + ldtset xzr, x29, [sp] + +sttset: + sttset w0, [x0] + sttset w0, [sp] + sttset wzr, [x0] + sttset wzr, [sp] + sttset x0, [x0] + sttset x0, [sp] + sttset xzr, [x0] + sttset xzr, [sp] + +ldtseta: + ldtseta w0, w0, [x0] + ldtseta w0, w0, [sp] + ldtseta w0, wzr, [x0] + ldtseta w0, wzr, [sp] + ldtseta wzr, w0, [x0] + ldtseta wzr, w0, [sp] + ldtseta wzr, wzr, [x0] + ldtseta wzr, wzr, [sp] + ldtseta x0, x0, [x0] + ldtseta x0, x0, [sp] + ldtseta x0, xzr, [x0] + ldtseta x0, xzr, [sp] + ldtseta xzr, x0, [x0] + ldtseta xzr, x0, [sp] + ldtseta xzr, xzr, [x0] + ldtseta xzr, xzr, [sp] + +ldtsetal: + ldtsetal w0, w0, [x0] + ldtsetal w0, w0, [sp] + ldtsetal w0, wzr, [x0] + ldtsetal w0, wzr, [sp] + ldtsetal wzr, w0, [x0] + ldtsetal wzr, w0, [sp] + ldtsetal wzr, wzr, [x0] + ldtsetal wzr, wzr, [sp] + ldtsetal x0, x0, [x0] + ldtsetal x0, x0, [sp] + ldtsetal x0, xzr, [x0] + ldtsetal x0, xzr, [sp] + ldtsetal xzr, x0, [x0] + ldtsetal xzr, x0, [sp] + ldtsetal xzr, xzr, [x0] + ldtsetal xzr, xzr, [sp] + +ldtsetl: + ldtsetl w0, w0, [x0] + ldtsetl w0, w0, [sp] + ldtsetl w0, wzr, [x0] + ldtsetl w0, wzr, [sp] + ldtsetl wzr, w0, [x0] + ldtsetl wzr, w0, [sp] + ldtsetl wzr, wzr, [x0] + ldtsetl wzr, wzr, [sp] + ldtsetl w0, w29, [x0] + ldtsetl w0, w29, [sp] + ldtsetl wzr, w29, [x0] + ldtsetl wzr, w29, [sp] + ldtsetl x0, x0, [x0] + ldtsetl x0, x0, [sp] + ldtsetl x0, xzr, [x0] + ldtsetl x0, xzr, [sp] + ldtsetl xzr, x0, [x0] + ldtsetl xzr, x0, [sp] + ldtsetl xzr, xzr, [x0] + ldtsetl xzr, xzr, [sp] + ldtsetl x0, x29, [x0] + ldtsetl x0, x29, [sp] + ldtsetl xzr, x29, [x0] + ldtsetl xzr, x29, [sp] + +sttsetl: + sttsetl w0, [x0] + sttsetl w0, [sp] + sttsetl wzr, [x0] + sttsetl wzr, [sp] + sttsetl x0, [x0] + sttsetl x0, [sp] + sttsetl xzr, [x0] + sttsetl xzr, [sp] + +ldtnp: + ldtnp x0, x2, [x0] + ldtnp x0, x2, [x0, #-8] + ldtnp x0, x2, [sp] + ldtnp x0, x2, [sp, #-8] + ldtnp x0, xzr, [x0] + ldtnp x0, xzr, [x0, #-8] + ldtnp x0, xzr, [sp] + ldtnp x0, xzr, [sp, #-8] + ldtnp xzr, x2, [x0] + ldtnp xzr, x2, [x0, #-8] + ldtnp xzr, x2, [sp] + ldtnp xzr, x2, [sp, #-8] + ldtnp xzr, x29, [x0] + ldtnp xzr, x29, [x0, #-8] + ldtnp xzr, x29, [sp] + ldtnp xzr, x29, [sp, #-8] + + ldtnp q0, q2, [x0] + ldtnp q0, q2, [x0, #-16] + ldtnp q0, q2, [sp] + ldtnp q0, q2, [sp, #-16] + ldtnp q0, q31, [x0] + ldtnp q0, q31, [x0, #-16] + ldtnp q0, q31, [sp] + ldtnp q0, q31, [sp, #-16] + ldtnp q31, q0, [x0] + ldtnp q31, q0, [x0, #-16] + ldtnp q31, q0, [sp] + ldtnp q31, q0, [sp, #-16] + ldtnp q31, q29, [x0] + ldtnp q31, q29, [x0, #-16] + ldtnp q31, q29, [sp] + ldtnp q31, q29, [sp, #-16] + +sttnp: + sttnp x0, x2, [x0] + sttnp x0, x2, [x0, #-8] + sttnp x0, x2, [sp] + sttnp x0, x2, [sp, #-8] + sttnp x0, xzr, [x0] + sttnp x0, xzr, [x0, #-8] + sttnp x0, xzr, [sp] + sttnp x0, xzr, [sp, #-8] + sttnp xzr, x2, [x0] + sttnp xzr, x2, [x0, #-8] + sttnp xzr, x2, [sp] + sttnp xzr, x2, [sp, #-8] + sttnp xzr, x29, [x0] + sttnp xzr, x29, [x0, #-8] + sttnp xzr, x29, [sp] + sttnp xzr, x29, [sp, #-8] + + sttnp q0, q2, [x0] + sttnp q0, q2, [x0, #-16] + sttnp q0, q2, [sp] + sttnp q0, q2, [sp, #-16] + sttnp q0, q31, [x0] + sttnp q0, q31, [x0, #-16] + sttnp q0, q31, [sp] + sttnp q0, q31, [sp, #-16] + sttnp q31, q0, [x0] + sttnp q31, q0, [x0, #-16] + sttnp q31, q0, [sp] + sttnp q31, q0, [sp, #-16] + sttnp q31, q29, [x0] + sttnp q31, q29, [x0, #-16] + sttnp q31, q29, [sp] + sttnp q31, q29, [sp, #-16] diff --git a/gas/testsuite/gas/aarch64/mec-arch-bad.d b/gas/testsuite/gas/aarch64/mec-arch-bad.d index d2e6416..8538b7d 100644 --- a/gas/testsuite/gas/aarch64/mec-arch-bad.d +++ b/gas/testsuite/gas/aarch64/mec-arch-bad.d @@ -1,4 +1,4 @@ #name: MEC unavailable for architecture below armv9.2-a -#as: -march=armv9.1-a +#as: -menable-sysreg-checking -march=armv9.1-a #source: mec.s #error_output: mec-arch-bad.l diff --git a/gas/testsuite/gas/aarch64/mec.d b/gas/testsuite/gas/aarch64/mec.d index 070f831..7a16791 100644 --- a/gas/testsuite/gas/aarch64/mec.d +++ b/gas/testsuite/gas/aarch64/mec.d @@ -1,5 +1,5 @@ #name: MEC System registers -#as: -march=armv9.2-a +#as: -menable-sysreg-checking -march=armv9.2-a #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/msr.d b/gas/testsuite/gas/aarch64/msr.d index fedf2ee..815c778 100644 --- a/gas/testsuite/gas/aarch64/msr.d +++ b/gas/testsuite/gas/aarch64/msr.d @@ -1,4 +1,4 @@ -#as: -march=armv8.2-a+profile +#as: -menable-sysreg-checking -march=armv8.2-a+profile #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/mte_tagged_stack.d b/gas/testsuite/gas/aarch64/mte_tagged_stack.d new file mode 100644 index 0000000..5e8afb8 --- /dev/null +++ b/gas/testsuite/gas/aarch64/mte_tagged_stack.d @@ -0,0 +1,47 @@ +#objdump: --dwarf=frames +# This test is only valid on ELF based ports. +#notarget: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd +# Test assembling a file with functions using MTE tagged stack or not +# It must interpret .cfi_mte_tagged_frame properly and emit a +# 'G' character into the correct CIE's augmentation string. + +.+: file .+ + +Contents of the .eh_frame section: + +0+ 0+14 0+ CIE + Version: 1 + Augmentation: "zRG" + Code alignment factor: 4 + Data alignment factor: -8 + Return address column: 30 + Augmentation data: 1b + DW_CFA_def_cfa: r31 \(sp\) ofs 0 + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + +0+18 0+14 0+1c FDE cie=0+ pc=0+\.\.0+4 + DW_CFA_advance_loc: 4 to 0+4 + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r29 \(x29\) at cfa-16 + DW_CFA_offset: r30 \(x30\) at cfa-8 + +0+30 0+10 0+0 CIE + Version: 1 + Augmentation: "zR" + Code alignment factor: 4 + Data alignment factor: -8 + Return address column: 30 + Augmentation data: 1b + DW_CFA_def_cfa: r31 \(sp\) ofs 0 + +0+44 0+1(4|8) 0+18 FDE cie=0+30 pc=0+4\.\.0+8 + DW_CFA_advance_loc: 4 to 0+8 + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r29 \(x29\) at cfa-16 + DW_CFA_offset: r30 \(x30\) at cfa-8 +#? DW_CFA_nop +#? DW_CFA_nop +#? DW_CFA_nop +#? DW_CFA_nop diff --git a/gas/testsuite/gas/aarch64/mte_tagged_stack.s b/gas/testsuite/gas/aarch64/mte_tagged_stack.s new file mode 100644 index 0000000..64a92b4 --- /dev/null +++ b/gas/testsuite/gas/aarch64/mte_tagged_stack.s @@ -0,0 +1,24 @@ + .arch armv8-a+memtag + .text + .align 2 + .global foo + .type foo, %function +foo: + .cfi_startproc + .cfi_mte_tagged_frame + stp x29, x30, [sp, -16]! + .cfi_def_cfa_offset 16 + .cfi_offset 29, -16 + .cfi_offset 30, -8 + .cfi_endproc + .size foo, .-foo + .align 2 + .global bar + .type bar, %function +bar: + .cfi_startproc + stp x29, x30, [sp, -16]! + .cfi_def_cfa_offset 16 + .cfi_offset 29, -16 + .cfi_offset 30, -8 + .cfi_endproc diff --git a/gas/testsuite/gas/aarch64/occmo-memtag.d b/gas/testsuite/gas/aarch64/occmo-memtag.d index 0dbbab0..5a20fd4 100644 --- a/gas/testsuite/gas/aarch64/occmo-memtag.d +++ b/gas/testsuite/gas/aarch64/occmo-memtag.d @@ -1,5 +1,6 @@ #name: FEAT_OCCMO + MEMTAG Test #as: -march=armv8-a+occmo+memtag +#as: -march=armv9.6-a+memtag #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/occmo.d b/gas/testsuite/gas/aarch64/occmo.d index 0ec68e8..4267413 100644 --- a/gas/testsuite/gas/aarch64/occmo.d +++ b/gas/testsuite/gas/aarch64/occmo.d @@ -1,5 +1,6 @@ #name: FEAT_OCCMO Test #as: -march=armv8-a+occmo +#as: -march=armv9.6-a #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/pan-directive.d b/gas/testsuite/gas/aarch64/pan-directive.d index b7e4378..51fac24 100644 --- a/gas/testsuite/gas/aarch64/pan-directive.d +++ b/gas/testsuite/gas/aarch64/pan-directive.d @@ -1,5 +1,5 @@ #objdump: -dr -#as: --defsym DIRECTIVE=1 +#as: -menable-sysreg-checking --defsym DIRECTIVE=1 #source: pan.s .*: file format .* diff --git a/gas/testsuite/gas/aarch64/pan.d b/gas/testsuite/gas/aarch64/pan.d index 46c3631..e79602b 100644 --- a/gas/testsuite/gas/aarch64/pan.d +++ b/gas/testsuite/gas/aarch64/pan.d @@ -1,5 +1,5 @@ #objdump: -dr -#as: -march=armv8-a+pan +#as: -menable-sysreg-checking -march=armv8-a+pan .*: file format .* diff --git a/gas/testsuite/gas/aarch64/pcdphint-bad.d b/gas/testsuite/gas/aarch64/pcdphint-bad.d new file mode 100644 index 0000000..33373b4 --- /dev/null +++ b/gas/testsuite/gas/aarch64/pcdphint-bad.d @@ -0,0 +1,4 @@ +#name: Negative test of PCPHINT instructions. +#as: -march=armv8-a +#source: pcdphint-bad.s +#error_output: pcdphint-bad.l diff --git a/gas/testsuite/gas/aarch64/pcdphint-bad.l b/gas/testsuite/gas/aarch64/pcdphint-bad.l new file mode 100644 index 0000000..e57774e --- /dev/null +++ b/gas/testsuite/gas/aarch64/pcdphint-bad.l @@ -0,0 +1,9 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: operand 1 must be an STSHH policy \(keep/strm\) -- `stshh kee' +[^ :]+:[0-9]+: Error: operand 1 must be an STSHH policy \(keep/strm\) -- `stshh strmm' +[^ :]+:[0-9]+: Error: operand 1 must be an STSHH policy \(keep/strm\) -- `stshh' +[^ :]+:[0-9]+: Error: constant expression required at operand 1 -- `prfm ir1234' +[^ :]+:[0-9]+: Error: invalid addressing mode at operand 2 -- `prfm ir,\[sp,x0,lsl#0\]' +[^ :]+:[0-9]+: Error: invalid addressing mode at operand 2 -- `prfm ir,a' +[^ :]+:[0-9]+: Error: invalid prefetch operation \(IR is not valid for this instruction variant\) at operand 1 -- `prfum ir,\[x0\]' +[^ :]+:[0-9]+: Error: immediate offset out of range diff --git a/gas/testsuite/gas/aarch64/pcdphint-bad.s b/gas/testsuite/gas/aarch64/pcdphint-bad.s new file mode 100644 index 0000000..f496522 --- /dev/null +++ b/gas/testsuite/gas/aarch64/pcdphint-bad.s @@ -0,0 +1,9 @@ +a: + stshh kee + stshh strmm + stshh + prfm ir1234 + prfm ir, [sp, x0, lsl #0] + prfm ir, a + prfum ir, [x0] + prfm ir, [x0, #15] diff --git a/gas/testsuite/gas/aarch64/sme-8.d b/gas/testsuite/gas/aarch64/sme-8.d index c956baa..e550d0a 100644 --- a/gas/testsuite/gas/aarch64/sme-8.d +++ b/gas/testsuite/gas/aarch64/sme-8.d @@ -1,5 +1,5 @@ #name: SME mode selection and state access instructions -#as: -march=armv8-a+sme +#as: -menable-sysreg-checking -march=armv8-a+sme #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/ssbs-illegal2.d b/gas/testsuite/gas/aarch64/ssbs-illegal2.d index d35757c..aeef026 100644 --- a/gas/testsuite/gas/aarch64/ssbs-illegal2.d +++ b/gas/testsuite/gas/aarch64/ssbs-illegal2.d @@ -1,3 +1,3 @@ -#as: -march=armv8-a --defsym ERROR2=1 +#as: -menable-sysreg-checking -march=armv8-a --defsym ERROR2=1 #source: ssbs.s #error_output: ssbs-illegal2.l diff --git a/gas/testsuite/gas/aarch64/ssbs1.d b/gas/testsuite/gas/aarch64/ssbs1.d index daeda76..6dfa178 100644 --- a/gas/testsuite/gas/aarch64/ssbs1.d +++ b/gas/testsuite/gas/aarch64/ssbs1.d @@ -1,6 +1,6 @@ #source: ssbs.s #objdump: -dr -#as: -march=armv8-a+ssbs --defsym SUCCESS=1 +#as: -menable-sysreg-checking -march=armv8-a+ssbs --defsym SUCCESS=1 .*: file format .* diff --git a/gas/testsuite/gas/aarch64/ssbs2.d b/gas/testsuite/gas/aarch64/ssbs2.d index 0027026..68eef6b 100644 --- a/gas/testsuite/gas/aarch64/ssbs2.d +++ b/gas/testsuite/gas/aarch64/ssbs2.d @@ -1,6 +1,6 @@ #source: ssbs.s #objdump: -dr -#as: -march=armv8.5-a --defsym SUCCESS=1 +#as: -menable-sysreg-checking -march=armv8.5-a --defsym SUCCESS=1 .*: file format .* diff --git a/gas/testsuite/gas/aarch64/stshh.d b/gas/testsuite/gas/aarch64/stshh.d new file mode 100644 index 0000000..095048d --- /dev/null +++ b/gas/testsuite/gas/aarch64/stshh.d @@ -0,0 +1,10 @@ +#as: -march=armv8-a +#objdump: -dr + +.*: file format .* + +Disassembly of section \.text: + +0+ <.*>: +.*: d503261f stshh keep +.*: d503263f stshh strm diff --git a/gas/testsuite/gas/aarch64/stshh.s b/gas/testsuite/gas/aarch64/stshh.s new file mode 100644 index 0000000..1e306cd --- /dev/null +++ b/gas/testsuite/gas/aarch64/stshh.s @@ -0,0 +1,3 @@ +a: + stshh keep + stshh strm diff --git a/gas/testsuite/gas/aarch64/sve-aes2-sve2-ssve-aes.d b/gas/testsuite/gas/aarch64/sve-aes2-sve2-ssve-aes.d new file mode 100644 index 0000000..33ca9c4 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve-aes2-sve2-ssve-aes.d @@ -0,0 +1,109 @@ +#name: Test of SVE-AES2 instructions. +#as: -march=armv9-a+sve-aes2+ssve-aes +#as: -march=armv9-a+sve-aes2+sve2 +#source: sve-aes2.s +#objdump: -dr + +[^:]+: file format .* + +.*: + +.*: +.*: 4523ec00 aesdimc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +.*: 453bec00 aesdimc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[3\] +.*: 4523efe0 aesdimc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z31\.q\[0\] +.*: 453befe0 aesdimc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z31\.q\[3\] +.*: 4523ec1e aesdimc { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z0\.q\[0\] +.*: 453bec1e aesdimc { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z0\.q\[3\] +.*: 4523effe aesdimc { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z31\.q\[0\] +.*: 453beffe aesdimc { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z31\.q\[3\] + +.*: +.*: 4527ec00 aesdimc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +.*: 453fec00 aesdimc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[3\] +.*: 4527efe0 aesdimc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z31\.q\[0\] +.*: 453fefe0 aesdimc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z31\.q\[3\] +.*: 4527ec1c aesdimc { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z0\.q\[0\] +.*: 453fec1c aesdimc { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z0\.q\[3\] +.*: 4527effc aesdimc { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z31\.q\[0\] +.*: 453feffc aesdimc { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z31\.q\[3\] + +.*: +.*: 4522ec00 aesd { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +.*: 453aec00 aesd { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[3\] +.*: 4522efe0 aesd { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z31\.q\[0\] +.*: 453aefe0 aesd { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z31\.q\[3\] +.*: 4522ec1e aesd { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z0\.q\[0\] +.*: 453aec1e aesd { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z0\.q\[3\] +.*: 4522effe aesd { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z31\.q\[0\] +.*: 453aeffe aesd { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z31\.q\[3\] + +.*: +.*: 4526ec00 aesd { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +.*: 453eec00 aesd { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[3\] +.*: 4526efe0 aesd { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z31\.q\[0\] +.*: 453eefe0 aesd { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z31\.q\[3\] +.*: 4526ec1c aesd { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z0\.q\[0\] +.*: 453eec1c aesd { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z0\.q\[3\] +.*: 4526effc aesd { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z31\.q\[0\] +.*: 453eeffc aesd { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z31\.q\[3\] + +.*: +.*: 4523e800 aesemc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +.*: 453be800 aesemc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[3\] +.*: 4523ebe0 aesemc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z31\.q\[0\] +.*: 453bebe0 aesemc { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z31\.q\[3\] +.*: 4523e81e aesemc { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z0\.q\[0\] +.*: 453be81e aesemc { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z0\.q\[3\] +.*: 4523ebfe aesemc { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z31\.q\[0\] +.*: 453bebfe aesemc { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z31\.q\[3\] + +.*: +.*: 4527e800 aesemc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +.*: 453fe800 aesemc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[3\] +.*: 4527ebe0 aesemc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z31\.q\[0\] +.*: 453febe0 aesemc { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z31\.q\[3\] +.*: 4527e81c aesemc { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z0\.q\[0\] +.*: 453fe81c aesemc { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z0\.q\[3\] +.*: 4527ebfc aesemc { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z31\.q\[0\] +.*: 453febfc aesemc { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z31\.q\[3\] + +.*: +.*: 4522e800 aese { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[0\] +.*: 453ae800 aese { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z0\.q\[3\] +.*: 4522ebe0 aese { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z31\.q\[0\] +.*: 453aebe0 aese { ?z0\.b-z1\.b ?}, { ?z0\.b-z1\.b ?}, z31\.q\[3\] +.*: 4522e81e aese { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z0\.q\[0\] +.*: 453ae81e aese { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z0\.q\[3\] +.*: 4522ebfe aese { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z31\.q\[0\] +.*: 453aebfe aese { ?z30\.b-z31\.b ?}, { ?z30\.b-z31\.b ?}, z31\.q\[3\] + +.*: +.*: 4526e800 aese { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[0\] +.*: 453ee800 aese { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z0\.q\[3\] +.*: 4526ebe0 aese { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z31\.q\[0\] +.*: 453eebe0 aese { ?z0\.b-z3\.b ?}, { ?z0\.b-z3\.b ?}, z31\.q\[3\] +.*: 4526e81c aese { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z0\.q\[0\] +.*: 453ee81c aese { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z0\.q\[3\] +.*: 4526ebfc aese { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z31\.q\[0\] +.*: 453eebfc aese { ?z28\.b-z31\.b ?}, { ?z28\.b-z31\.b ?}, z31\.q\[3\] + +.*: +.*: 4520fc00 pmlal { ?z0\.q-z1\.q ?}, z0\.d, z0\.d +.*: 453ffc00 pmlal { ?z0\.q-z1\.q ?}, z0\.d, z31\.d +.*: 4520ffe0 pmlal { ?z0\.q-z1\.q ?}, z31\.d, z0\.d +.*: 453fffe0 pmlal { ?z0\.q-z1\.q ?}, z31\.d, z31\.d +.*: 4520fc1e pmlal { ?z30\.q-z31\.q ?}, z0\.d, z0\.d +.*: 453ffc1e pmlal { ?z30\.q-z31\.q ?}, z0\.d, z31\.d +.*: 4520fffe pmlal { ?z30\.q-z31\.q ?}, z31\.d, z0\.d +.*: 453ffffe pmlal { ?z30\.q-z31\.q ?}, z31\.d, z31\.d + +.*: +.*: 4520f800 pmull { ?z0\.q-z1\.q ?}, z0\.d, z0\.d +.*: 453ff800 pmull { ?z0\.q-z1\.q ?}, z0\.d, z31\.d +.*: 4520fbe0 pmull { ?z0\.q-z1\.q ?}, z31\.d, z0\.d +.*: 453ffbe0 pmull { ?z0\.q-z1\.q ?}, z31\.d, z31\.d +.*: 4520f81e pmull { ?z30\.q-z31\.q ?}, z0\.d, z0\.d +.*: 453ff81e pmull { ?z30\.q-z31\.q ?}, z0\.d, z31\.d +.*: 4520fbfe pmull { ?z30\.q-z31\.q ?}, z31\.d, z0\.d +.*: 453ffbfe pmull { ?z30\.q-z31\.q ?}, z31\.d, z31\.d diff --git a/gas/testsuite/gas/aarch64/sve-aes2.s b/gas/testsuite/gas/aarch64/sve-aes2.s new file mode 100644 index 0000000..d4f2091 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve-aes2.s @@ -0,0 +1,99 @@ +a: + aesdimc {z0.b-z1.b}, {z0.b-z1.b}, z0.q[0] + aesdimc {z0.b-z1.b}, {z0.b-z1.b}, z0.q[3] + aesdimc {z0.b-z1.b}, {z0.b-z1.b}, z31.q[0] + aesdimc {z0.b-z1.b}, {z0.b-z1.b}, z31.q[3] + aesdimc {z30.b-z31.b}, {z30.b-z31.b}, z0.q[0] + aesdimc {z30.b-z31.b}, {z30.b-z31.b}, z0.q[3] + aesdimc {z30.b-z31.b}, {z30.b-z31.b}, z31.q[0] + aesdimc {z30.b-z31.b}, {z30.b-z31.b}, z31.q[3] + +b: + aesdimc {z0.b-z3.b}, {z0.b-z3.b}, z0.q[0] + aesdimc {z0.b-z3.b}, {z0.b-z3.b}, z0.q[3] + aesdimc {z0.b-z3.b}, {z0.b-z3.b}, z31.q[0] + aesdimc {z0.b-z3.b}, {z0.b-z3.b}, z31.q[3] + aesdimc {z28.b-z31.b}, {z28.b-z31.b}, z0.q[0] + aesdimc {z28.b-z31.b}, {z28.b-z31.b}, z0.q[3] + aesdimc {z28.b-z31.b}, {z28.b-z31.b}, z31.q[0] + aesdimc {z28.b-z31.b}, {z28.b-z31.b}, z31.q[3] + +c: + aesd {z0.b-z1.b}, {z0.b-z1.b}, z0.q[0] + aesd {z0.b-z1.b}, {z0.b-z1.b}, z0.q[3] + aesd {z0.b-z1.b}, {z0.b-z1.b}, z31.q[0] + aesd {z0.b-z1.b}, {z0.b-z1.b}, z31.q[3] + aesd {z30.b-z31.b}, {z30.b-z31.b}, z0.q[0] + aesd {z30.b-z31.b}, {z30.b-z31.b}, z0.q[3] + aesd {z30.b-z31.b}, {z30.b-z31.b}, z31.q[0] + aesd {z30.b-z31.b}, {z30.b-z31.b}, z31.q[3] + +d: + aesd {z0.b-z3.b}, {z0.b-z3.b}, z0.q[0] + aesd {z0.b-z3.b}, {z0.b-z3.b}, z0.q[3] + aesd {z0.b-z3.b}, {z0.b-z3.b}, z31.q[0] + aesd {z0.b-z3.b}, {z0.b-z3.b}, z31.q[3] + aesd {z28.b-z31.b}, {z28.b-z31.b}, z0.q[0] + aesd {z28.b-z31.b}, {z28.b-z31.b}, z0.q[3] + aesd {z28.b-z31.b}, {z28.b-z31.b}, z31.q[0] + aesd {z28.b-z31.b}, {z28.b-z31.b}, z31.q[3] + +e: + aesemc {z0.b-z1.b}, {z0.b-z1.b}, z0.q[0] + aesemc {z0.b-z1.b}, {z0.b-z1.b}, z0.q[3] + aesemc {z0.b-z1.b}, {z0.b-z1.b}, z31.q[0] + aesemc {z0.b-z1.b}, {z0.b-z1.b}, z31.q[3] + aesemc {z30.b-z31.b}, {z30.b-z31.b}, z0.q[0] + aesemc {z30.b-z31.b}, {z30.b-z31.b}, z0.q[3] + aesemc {z30.b-z31.b}, {z30.b-z31.b}, z31.q[0] + aesemc {z30.b-z31.b}, {z30.b-z31.b}, z31.q[3] + +f: + aesemc {z0.b-z3.b}, {z0.b-z3.b}, z0.q[0] + aesemc {z0.b-z3.b}, {z0.b-z3.b}, z0.q[3] + aesemc {z0.b-z3.b}, {z0.b-z3.b}, z31.q[0] + aesemc {z0.b-z3.b}, {z0.b-z3.b}, z31.q[3] + aesemc {z28.b-z31.b}, {z28.b-z31.b}, z0.q[0] + aesemc {z28.b-z31.b}, {z28.b-z31.b}, z0.q[3] + aesemc {z28.b-z31.b}, {z28.b-z31.b}, z31.q[0] + aesemc {z28.b-z31.b}, {z28.b-z31.b}, z31.q[3] + +g: + aese {z0.b-z1.b}, {z0.b-z1.b}, z0.q[0] + aese {z0.b-z1.b}, {z0.b-z1.b}, z0.q[3] + aese {z0.b-z1.b}, {z0.b-z1.b}, z31.q[0] + aese {z0.b-z1.b}, {z0.b-z1.b}, z31.q[3] + aese {z30.b-z31.b}, {z30.b-z31.b}, z0.q[0] + aese {z30.b-z31.b}, {z30.b-z31.b}, z0.q[3] + aese {z30.b-z31.b}, {z30.b-z31.b}, z31.q[0] + aese {z30.b-z31.b}, {z30.b-z31.b}, z31.q[3] + +h: + aese {z0.b-z3.b}, {z0.b-z3.b}, z0.q[0] + aese {z0.b-z3.b}, {z0.b-z3.b}, z0.q[3] + aese {z0.b-z3.b}, {z0.b-z3.b}, z31.q[0] + aese {z0.b-z3.b}, {z0.b-z3.b}, z31.q[3] + aese {z28.b-z31.b}, {z28.b-z31.b}, z0.q[0] + aese {z28.b-z31.b}, {z28.b-z31.b}, z0.q[3] + aese {z28.b-z31.b}, {z28.b-z31.b}, z31.q[0] + aese {z28.b-z31.b}, {z28.b-z31.b}, z31.q[3] + +i: + pmlal {z0.q-z1.q}, z0.d, z0.d + pmlal {z0.q-z1.q}, z0.d, z31.d + pmlal {z0.q-z1.q}, z31.d, z0.d + pmlal {z0.q-z1.q}, z31.d, z31.d + pmlal {z30.q-z31.q}, z0.d, z0.d + pmlal {z30.q-z31.q}, z0.d, z31.d + pmlal {z30.q-z31.q}, z31.d, z0.d + pmlal {z30.q-z31.q}, z31.d, z31.d + +j: + pmull {z0.q-z1.q}, z0.d, z0.d + pmull {z0.q-z1.q}, z0.d, z31.d + pmull {z0.q-z1.q}, z31.d, z0.d + pmull {z0.q-z1.q}, z31.d, z31.d + pmull {z30.q-z31.q}, z0.d, z0.d + pmull {z30.q-z31.q}, z0.d, z31.d + pmull {z30.q-z31.q}, z31.d, z0.d + pmull {z30.q-z31.q}, z31.d, z31.d diff --git a/gas/testsuite/gas/aarch64/sve-missing-qualifiers.d b/gas/testsuite/gas/aarch64/sve-missing-qualifiers.d new file mode 100644 index 0000000..5f00db8 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve-missing-qualifiers.d @@ -0,0 +1,2 @@ +#as: -march=armv8-a+sve2+sme2p1+sve-f16f32mm+f8f32mm+f8f16mm+sve-bfscale+i8mm+f64mm+f32mm+lut+sme-lutv2 +#error_output: sve-missing-qualifiers.l diff --git a/gas/testsuite/gas/aarch64/sve-missing-qualifiers.l b/gas/testsuite/gas/aarch64/sve-missing-qualifiers.l new file mode 100644 index 0000000..a258ef5 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve-missing-qualifiers.l @@ -0,0 +1,36 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: operand mismatch -- `fmmla z0\.s,z0\.h,z0' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: fmmla z0\.s, z0\.h, z0\.h +[^ :]+:[0-9]+: Error: operand mismatch -- `fmmla z0\.s,z0\.b,z0' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: fmmla z0\.s, z0\.b, z0\.b +[^ :]+:[0-9]+: Error: operand mismatch -- `fmmla z0\.h,z0\.b,z0' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: fmmla z0\.h, z0\.b, z0\.b +[^ :]+:[0-9]+: Error: operand mismatch -- `fmmla z0,z0,z0' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: fmmla z0\.d, z0\.d, z0\.d +[^ :]+:[0-9]+: Error: operand mismatch -- `bfscale z0\.h,p0/m,z0,z0\.h' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: bfscale z0\.h, p0/m, z0\.h, z0\.h +[^ :]+:[0-9]+: Error: operand mismatch -- `bfmul {z0\.h-z3\.h},{z0\.h-z3\.h},z0' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: bfmul {z0\.h-z3\.h}, {z0\.h-z3\.h}, z0\.h +[^ :]+:[0-9]+: Error: operand mismatch -- `smmla z0\.s,z0\.b,z0' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: smmla z0\.s, z0\.b, z0\.b +[^ :]+:[0-9]+: Error: operand mismatch -- `ld1rob {z0\.b},p0,\[x0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: ld1rob {z0\.b}, p0/z, \[x0\] +[^ :]+:[0-9]+: Error: operand mismatch -- `fmmla z0\.d,z0\.d,z0' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: fmmla z0\.d, z0\.d, z0\.d +[^ :]+:[0-9]+: Error: operand mismatch -- `fmmla z0\.s,z0,z0\.s' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: fmmla z0\.s, z0\.s, z0\.s +[^ :]+:[0-9]+: Error: operand mismatch -- `luti2 z0,{z0\.b},z0\[0\]' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: luti2 z0\.b, {z0\.b}, z0\[0\] +[^ :]+:[0-9]+: Error: missing type suffix at operand 1 -- `luti4 {z0-z3},zt0,{z0-z1}' +[^ :]+:[0-9]+: Error: missing type suffix at operand 1 -- `luti4 {z0,z4,z8,z12},zt0,{z0-z1}' diff --git a/gas/testsuite/gas/aarch64/sve-missing-qualifiers.s b/gas/testsuite/gas/aarch64/sve-missing-qualifiers.s new file mode 100644 index 0000000..64ee8db --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve-missing-qualifiers.s @@ -0,0 +1,13 @@ + fmmla z0.s, z0.h, z0 + fmmla z0.s, z0.b, z0 + fmmla z0.h, z0.b, z0 + fmmla z0, z0, z0 + bfscale z0.h, p0/m, z0, z0.h + bfmul {z0.h-z3.h}, {z0.h-z3.h}, z0 + smmla z0.s, z0.b, z0 + ld1rob {z0.b}, p0, [x0] + fmmla z0.d, z0.d, z0 + fmmla z0.s, z0, z0.s + luti2 z0, {z0.b}, z0[0] + luti4 {z0-z3}, zt0, {z0-z1} + luti4 {z0, z4, z8, z12}, zt0, {z0-z1} diff --git a/gas/testsuite/gas/aarch64/sve2p2.d b/gas/testsuite/gas/aarch64/sve2p2.d index f401cb4..128e350 100644 --- a/gas/testsuite/gas/aarch64/sve2p2.d +++ b/gas/testsuite/gas/aarch64/sve2p2.d @@ -1,5 +1,6 @@ #as: -march=armv8-a+sve2p2 #as: -march=armv8-a+sme2p2 +#as: -march=armv9.6-a #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_8-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv8_8-a-sysregs.d index 294fed2..8b66bcf 100644 --- a/gas/testsuite/gas/aarch64/sysreg/armv8_8-a-sysregs.d +++ b/gas/testsuite/gas/aarch64/sysreg/armv8_8-a-sysregs.d @@ -1,4 +1,4 @@ -#as: -march=armv8.8-a +#as: -menable-sysreg-checking -march=armv8.8-a #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d index a2cb5fe..862d474 100644 --- a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d +++ b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d @@ -1,3 +1,3 @@ #source: armv8_9-a-sysregs.s -#as: -march=armv8.8-a -I$srcdir/$subdir --no-info +#as: -menable-sysreg-checking -march=armv8.8-a -I$srcdir/$subdir --no-info #error_output: armv8_9-a-sysregs-bad.l diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d index ca675c4..91e77bc 100644 --- a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d +++ b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d @@ -1,5 +1,5 @@ #source: armv8_9-a-sysregs.s -#as: -march=armv8.9-a -I$srcdir/$subdir +#as: -menable-sysreg-checking -march=armv8.9-a -I$srcdir/$subdir #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d index 8ad01bc..61054ae 100644 --- a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d +++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d @@ -1,3 +1,3 @@ #source: armv9_5-a-sysregs.s -#as: -march=armv9.4-a -I$srcdir/$subdir +#as: -menable-sysreg-checking -march=armv9.4-a -I$srcdir/$subdir #error_output: armv9_5-a-sysregs-archv9_4-unsupported.l diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d index c52142d..55a534e 100644 --- a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d +++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d @@ -1,5 +1,5 @@ #source: armv9_5-a-sysregs.s -#as: -march=armv9.5-a -I$srcdir/$subdir +#as: -menable-sysreg-checking -march=armv9.5-a -I$srcdir/$subdir #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d b/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d index edef376..b6a4706 100644 --- a/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d +++ b/gas/testsuite/gas/aarch64/sysreg/fp8-feature-enables-fpmr.d @@ -1,6 +1,6 @@ #name: Test that fpmr register is gated and available via the fp8 feature #source: fpmr.s -#as: -march=armv9.2-a+fp8 +#as: -menable-sysreg-checking -march=armv9.2-a+fp8 #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d b/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d index c0b30c2..5f116e6 100644 --- a/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d +++ b/gas/testsuite/gas/aarch64/sysreg/fpmr-unsupported-by-default.d @@ -1,4 +1,4 @@ #name: Test that fpmr register is not supported by default #source: fpmr.s -#as: -march=armv9.2-a +#as: -menable-sysreg-checking -march=armv9.2-a #error_output: fpmr-unsupported-by-default.l diff --git a/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs-bad.d b/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs-bad.d index 439c1bd..3201a84 100644 --- a/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs-bad.d +++ b/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs-bad.d @@ -1,3 +1,3 @@ -#as: -march=armv8-a +#as: -menable-sysreg-checking -march=armv8-a #source: gcs-sysregs.s #error_output: gcs-sysregs-bad.l diff --git a/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs.d index f75c270..9d8082d 100644 --- a/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs.d +++ b/gas/testsuite/gas/aarch64/sysreg/gcs-sysregs.d @@ -1,5 +1,5 @@ #name: Test of Guarded Control Stack system registers -#as: -march=armv8.8-a+gcs +#as: -menable-sysreg-checking -march=armv8.8-a+gcs #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-3.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-3.d index 1c5c9d9..b07919d 100644 --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-3.d +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-3.d @@ -1,3 +1,3 @@ #source: sysreg-3.s -#as: -march=armv8-a -I$srcdir/$subdir --no-info +#as: -menable-sysreg-checking -march=armv8-a -I$srcdir/$subdir --no-info #error_output: illegal-sysreg-3.l diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.d index 34dd4e4..5a11d2e 100644 --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.d +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.d @@ -1,3 +1,3 @@ #source: sysreg-4.s -#as: -march=armv8-a +#as: -menable-sysreg-checking -march=armv8-a #error_output: illegal-sysreg-4.l diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4b.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4b.d index 1504f5f..d32c1a2 100644 --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4b.d +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4b.d @@ -1,2 +1,2 @@ -#as: -march=armv8-a +#as: -menable-sysreg-checking -march=armv8-a #error_output: illegal-sysreg-4b.l diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-5.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-5.d index d108d0f..4815663 100644 --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-5.d +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-5.d @@ -1,3 +1,3 @@ -#as: -march=armv8.3-a +#as: -menable-sysreg-checking -march=armv8.3-a #source: sysreg-5.s #error_output: illegal-sysreg-5.l diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-7.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-7.d index 98bc9a0..72311a7 100644 --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-7.d +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-7.d @@ -1,2 +1,3 @@ +#as: -menable-sysreg-checking #source: illegal-sysreg-7.s #error_output: illegal-sysreg-7.l diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.d index 1e91d49..5b88d3e 100644 --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.d +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.d @@ -1,2 +1,2 @@ -#as: --no-info +#as: -menable-sysreg-checking --no-info #error_output: illegal-sysreg-8.l diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8b.d b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8b.d index aed5b17..9d3f32b 100644 --- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8b.d +++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8b.d @@ -1,2 +1,2 @@ -#as: --no-info +#as: -menable-sysreg-checking --no-info #warning_output: illegal-sysreg-8b.l diff --git a/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d b/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d index c3ec372..7d9938e 100644 --- a/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d +++ b/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d @@ -1,3 +1,3 @@ -#as: -march=armv9.3-a +#as: -march=armv9.3-a -menable-sysreg-checking #source: mpam-bad.s #error_output: mpam-bad.l diff --git a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d index 61a6b21..58d05bf 100644 --- a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d +++ b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs-bad.d @@ -1,3 +1,3 @@ #source: pops-sysregs-bad.s -#as: -I$srcdir/$subdir +#as: -menable-sysreg-checking -I$srcdir/$subdir #error_output: pops-sysregs-bad.l diff --git a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d index db04ab8..83729b4 100644 --- a/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d +++ b/gas/testsuite/gas/aarch64/sysreg/pops-sysregs.d @@ -1,5 +1,5 @@ #source: pops-sysregs.s -#as: -I$srcdir/$subdir +#as: -menable-sysreg-checking -I$srcdir/$subdir #objdump: -dr [^:]+: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sme-sysreg-illegal.d b/gas/testsuite/gas/aarch64/sysreg/sme-sysreg-illegal.d index ff0e855..6eae656 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sme-sysreg-illegal.d +++ b/gas/testsuite/gas/aarch64/sysreg/sme-sysreg-illegal.d @@ -1,3 +1,3 @@ -#as: -march=armv8-a+sme +#as: -menable-sysreg-checking -march=armv8-a+sme #source: sme-sysreg-illegal.s #warning_output: sme-sysreg-illegal.l diff --git a/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d b/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d index 8eaf73c..f51c56e 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d +++ b/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d @@ -1,5 +1,5 @@ #name: SME extension (system registers) -#as: -march=armv8-a+sme +#as: -menable-sysreg-checking -march=armv8-a+sme #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.d b/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.d index bfe2d27..03a72b7 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.d +++ b/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.d @@ -1,3 +1,3 @@ -#as: -march=armv8-a+nosve +#as: -menable-sysreg-checking -march=armv8-a+nosve #source: sve-sysreg.s #error_output: sve-sysreg-invalid.l diff --git a/gas/testsuite/gas/aarch64/sysreg/sve-sysreg.d b/gas/testsuite/gas/aarch64/sysreg/sve-sysreg.d index 22d9e5ac..2b3a24b 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sve-sysreg.d +++ b/gas/testsuite/gas/aarch64/sysreg/sve-sysreg.d @@ -1,4 +1,4 @@ -#as: -march=armv8-a+sve +#as: -menable-sysreg-checking -march=armv8-a+sve #objdump: -dr diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d index cecb1ad..d770133 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d @@ -1,5 +1,5 @@ #source: sysreg-1.s -#as: -I$srcdir/$subdir +#as: -menable-sysreg-checking -I$srcdir/$subdir #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d index 628de52..b47e92c 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d @@ -1,3 +1,3 @@ #source: sysreg-10.s -#as: -march=armv8.7-a -I$srcdir/$subdir +#as: -menable-sysreg-checking -march=armv8.7-a -I$srcdir/$subdir #error_output: sysreg-10-bad.l diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d index f07df91..55ab50e 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d @@ -1,5 +1,5 @@ #source: sysreg-10.s -#as: -march=armv8.8-a -I$srcdir/$subdir +#as: -menable-sysreg-checking -march=armv8.8-a -I$srcdir/$subdir #objdump: -dr [^:]+: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-2.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-2.d index 1845902..140d462 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-2.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-2.d @@ -1,5 +1,5 @@ #source: sysreg-2.s -#as: -march=armv8.2-a+profile -I$srcdir/$subdir +#as: -menable-sysreg-checking -march=armv8.2-a+profile -I$srcdir/$subdir #objdump: -dr .*: file .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-3.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-3.d index 0135762..7f2ece1 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-3.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-3.d @@ -1,5 +1,5 @@ #source: sysreg-3.s -#as: -march=armv8.3-a -I$srcdir/$subdir +#as: -menable-sysreg-checking -march=armv8.3-a -I$srcdir/$subdir #objdump: -dr .*: file .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-4.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-4.d index f0fffbe..dd832c2 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-4.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-4.d @@ -1,5 +1,5 @@ #source: sysreg-4.s -#as: -march=armv8.5-a+rng+memtag +#as: -menable-sysreg-checking -march=armv8.5-a+rng+memtag #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-6.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-6.d index cb9c46e..ef8560f 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-6.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-6.d @@ -1,5 +1,5 @@ #source: sysreg-6.s -#as: -I$srcdir/$subdir +#as: -menable-sysreg-checking -I$srcdir/$subdir #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-7.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-7.d index 846ab8b..df65924 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-7.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-7.d @@ -1,5 +1,5 @@ #source: sysreg-7.s -#as: -I$srcdir/$subdir +#as: -menable-sysreg-checking -I$srcdir/$subdir #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-8.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-8.d index 4ee851f..8a1b07f 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-8.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-8.d @@ -1,5 +1,5 @@ #source: sysreg-8.s -#as: -I$srcdir/$subdir +#as: -menable-sysreg-checking -I$srcdir/$subdir #objdump: -dr .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d index a1ebac6..72d188e 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d @@ -1,3 +1,3 @@ #source: sysreg-9-bad.s -#as: -I$srcdir/$subdir +#as: -menable-sysreg-checking -I$srcdir/$subdir #error_output: sysreg-9-bad.l diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d index 61b63ce..a7fa07e 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d @@ -1,5 +1,5 @@ #source: sysreg-9.s -#as: -I$srcdir/$subdir +#as: -menable-sysreg-checking -I$srcdir/$subdir #objdump: -dr diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d index 55cdf09..35267f5 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d @@ -1,5 +1,5 @@ #objdump: -dr -M notes -#as: -march=armv8-a +#as: -menable-sysreg-checking -march=armv8-a #warning_output: sysreg-diagnostic.l .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg.d b/gas/testsuite/gas/aarch64/sysreg/sysreg.d index 9aba548..d17c77f 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg.d @@ -1,5 +1,5 @@ #source: sysreg.s -#as: -I$srcdir/$subdir +#as: -menable-sysreg-checking -I$srcdir/$subdir #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg128.d b/gas/testsuite/gas/aarch64/sysreg/sysreg128.d index 22df5e2..ffd7517 100644 --- a/gas/testsuite/gas/aarch64/sysreg/sysreg128.d +++ b/gas/testsuite/gas/aarch64/sysreg/sysreg128.d @@ -1,5 +1,5 @@ #source: sysreg128.s -#as: -I$srcdir/$subdir +#as: -menable-sysreg-checking -I$srcdir/$subdir #objdump: -dr .* diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.d b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.d new file mode 100644 index 0000000..95ddd32 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.d @@ -0,0 +1,3 @@ +#source: sysregs_with_no_restrictions.s +#as: -menable-sysreg-checking -I$srcdir/$subdir +#error_output: sysregs_with_no_restrictions-bad.l diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l new file mode 100644 index 0000000..f70dba9 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l @@ -0,0 +1,173 @@ +.*: Assembler messages: +.*: Error: selected processor does not support system register name 'mpuir_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'afsr0_el12' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'afsr0_el12' +.*: Info: macro invoked from here +.*: Error: selected processor does not support PSTATE field name 'uao' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'uao' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'uao' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'apdakeyhi_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'apdakeyhi_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'amcfgr_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'vsttbr_el2' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'vsttbr_el2' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'scxtnum_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'scxtnum_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'id_pfr2_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'amcg1idr_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'hcrx_el2' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'hcrx_el2' +.*: Info: macro invoked from here +.*: Error: selected processor does not support PSTATE field name 'allint' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'allint' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'allint' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pfar_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pfar_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pir_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pir_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmecr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmecr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'hdfgrtr2_el2' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'hdfgrtr2_el2' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'mdselr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'mdselr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmicfiltr_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmicfiltr_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmsdsfr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmsdsfr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmuacr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmuacr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'por_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'por_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 's2pir_el2' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 's2pir_el2' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 's2por_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 's2por_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'sctlr2_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'sctlr2_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'spmaccessr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'spmaccessr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'tcr2_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'tcr2_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'amair2_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'amair2_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmccntsvr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'vdisr_el3' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'vdisr_el3' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'spmzr_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'spmzr_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'mdstepop_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'mdstepop_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'gpcbw_el3' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'gpcbw_el3' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmbmar_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmbmar_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'erxgsr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'fpmr' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'fpmr' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'id_aa64zfr0_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'lorc_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'lorc_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pmbidr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'gcspr_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'gcspr_el0' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'id_aa64smfr0_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'trcitecr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'trcitecr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'gcr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'gcr_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'rndr' +.*: Info: macro invoked from here +.*: Error: selected processor does not support PSTATE field name 'pan' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pan' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'pan' +.*: Info: macro invoked from here +.*: Error: selected processor does not support PSTATE field name 'ssbs' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'ssbs' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'ssbs' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'rcwmask_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'rcwmask_el1' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'ttbr1_el2' +.*: Info: macro invoked from here +.*: Error: selected processor does not support system register name 'ttbr1_el2' +.*: Info: macro invoked from here diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d new file mode 100644 index 0000000..f311c23 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d @@ -0,0 +1,95 @@ +#as: -I$srcdir/$subdir +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +.*: d5380080 mrs x0, mpuir_el1 +.*: d51d5100 msr afsr0_el12, x0 +.*: d53d5100 mrs x0, afsr0_el12 +.*: d5184280 msr uao, x0 +.*: d5384280 mrs x0, uao +.*: d5182220 msr apdakeyhi_el1, x0 +.*: d5382220 mrs x0, apdakeyhi_el1 +.*: d53bd220 mrs x0, amcfgr_el0 +.*: d51c2600 msr vsttbr_el2, x0 +.*: d53c2600 mrs x0, vsttbr_el2 +.*: d51bd0e0 msr scxtnum_el0, x0 +.*: d53bd0e0 mrs x0, scxtnum_el0 +.*: d5380380 mrs x0, id_pfr2_el1 +.*: d53bd2c0 mrs x0, amcg1idr_el0 +.*: d51c1240 msr hcrx_el2, x0 +.*: d53c1240 mrs x0, hcrx_el2 +.*: d5184300 msr allint, x0 +.*: d5384300 mrs x0, allint +.*: d51860a0 msr pfar_el1, x0 +.*: d53860a0 mrs x0, pfar_el1 +.*: d518a260 msr pir_el1, x0 +.*: d538a260 mrs x0, pir_el1 +.*: d5189ea0 msr pmecr_el1, x0 +.*: d5389ea0 mrs x0, pmecr_el1 +.*: d51c3100 msr hdfgrtr2_el2, x0 +.*: d53c3100 mrs x0, hdfgrtr2_el2 +.*: d5100440 msr mdselr_el1, x0 +.*: d5300440 mrs x0, mdselr_el1 +.*: d51b9600 msr pmicfiltr_el0, x0 +.*: d53b9600 mrs x0, pmicfiltr_el0 +.*: d5189a80 msr pmsdsfr_el1, x0 +.*: d5389a80 mrs x0, pmsdsfr_el1 +.*: d5189e80 msr pmuacr_el1, x0 +.*: d5389e80 mrs x0, pmuacr_el1 +.*: d51ba280 msr por_el0, x0 +.*: d53ba280 mrs x0, por_el0 +.*: d51ca2a0 msr s2pir_el2, x0 +.*: d53ca2a0 mrs x0, s2pir_el2 +.*: d518a2a0 msr s2por_el1, x0 +.*: d538a2a0 mrs x0, s2por_el1 +.*: d5181060 msr sctlr2_el1, x0 +.*: d5381060 mrs x0, sctlr2_el1 +.*: d5109d60 msr spmaccessr_el1, x0 +.*: d5309d60 mrs x0, spmaccessr_el1 +.*: d5182060 msr tcr2_el1, x0 +.*: d5382060 mrs x0, tcr2_el1 +.*: d518a320 msr amair2_el1, x0 +.*: d538a320 mrs x0, amair2_el1 +.*: d530ebe0 mrs x0, pmccntsvr_el1 +.*: d51ec120 msr vdisr_el3, x0 +.*: d53ec120 mrs x0, vdisr_el3 +.*: d5139c80 msr spmzr_el0, x0 +.*: d5339c80 mrs x0, spmzr_el0 +.*: d5100540 msr mdstepop_el1, x0 +.*: d5300540 mrs x0, mdstepop_el1 +.*: d51e21a0 msr gpcbw_el3, x0 +.*: d53e21a0 mrs x0, gpcbw_el3 +.*: d5189aa0 msr pmbmar_el1, x0 +.*: d5389aa0 mrs x0, pmbmar_el1 +.*: d5385340 mrs x0, erxgsr_el1 +.*: d51b4440 msr fpmr, x0 +.*: d53b4440 mrs x0, fpmr +.*: d5380480 mrs x0, id_aa64zfr0_el1 +.*: d518a460 msr lorc_el1, x0 +.*: d538a460 mrs x0, lorc_el1 +.*: d5389ae0 mrs x0, pmbidr_el1 +.*: d51b2520 msr gcspr_el0, x0 +.*: d53b2520 mrs x0, gcspr_el0 +.*: d53804a0 mrs x0, id_aa64smfr0_el1 +.*: d5181260 msr trcitecr_el1, x0 +.*: d5381260 mrs x0, trcitecr_el1 +.*: d51810c0 msr gcr_el1, x0 +.*: d53810c0 mrs x0, gcr_el1 +.*: d53b2400 mrs x0, rndr +.*: d518c120 msr disr_el1, x0 +.*: d538c120 mrs x0, disr_el1 +.*: d5184260 msr pan, x0 +.*: d5384260 mrs x0, pan +.*: d51b42c0 msr ssbs, x0 +.*: d53b42c0 mrs x0, ssbs +.*: d558d0c2 msrr rcwmask_el1, x2, x3 +.*: d578d0c2 mrrs x2, x3, rcwmask_el1 +.*: d55c2002 msrr ttbr0_el2, x2, x3 +.*: d57c2002 mrrs x2, x3, ttbr0_el2 +.*: d55c2022 msrr ttbr1_el2, x2, x3 +.*: d57c2022 mrrs x2, x3, ttbr1_el2 diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s new file mode 100644 index 0000000..f5c1138 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s @@ -0,0 +1,56 @@ + .include "sysreg-test-utils.inc" +.text + rw_sys_reg mpuir_el1 w=0 // V8R + rw_sys_reg afsr0_el12 // V8_1A + rw_sys_reg uao // V8_2A + rw_sys_reg apdakeyhi_el1 // V8_3A + rw_sys_reg amcfgr_el0 w=0 // V8_4A + rw_sys_reg vsttbr_el2 // V8A && V8_4A + rw_sys_reg scxtnum_el0 // SCXTNUM + rw_sys_reg id_pfr2_el1 w=0 // ID_PFR2 + rw_sys_reg amcg1idr_el0 w=0 // V8_6A + rw_sys_reg hcrx_el2 // V8_7A + rw_sys_reg allint // V8_8A + + rw_sys_reg pfar_el1 // PFAR + rw_sys_reg pir_el1 // S1PIE + rw_sys_reg pmecr_el1 // SEBEP + rw_sys_reg hdfgrtr2_el2 // FGT2 + rw_sys_reg mdselr_el1 // DEBUGv8p9 + rw_sys_reg pmicfiltr_el0 // PMUv3_ICNTR + rw_sys_reg pmsdsfr_el1 // SPE_FDS + rw_sys_reg pmuacr_el1 // PMUv3p9 + rw_sys_reg por_el0 // S1POE + rw_sys_reg s2pir_el2 // S2PIE + rw_sys_reg s2por_el1 // S2POE + rw_sys_reg sctlr2_el1 // SCTLR2 + rw_sys_reg spmaccessr_el1 // SPMU + rw_sys_reg tcr2_el1 // TCR2 + rw_sys_reg amair2_el1 // AIE + rw_sys_reg pmccntsvr_el1 w=0 // PMUv3_SS + + rw_sys_reg vdisr_el3 // E3DES + rw_sys_reg spmzr_el0 // SPMU2 + rw_sys_reg mdstepop_el1 // STEP2 + rw_sys_reg gpcbw_el3 // V9_5A + + rw_sys_reg pmbmar_el1 // PROFILE && V9_5A + + rw_sys_reg erxgsr_el1 w=0 // RASv2 + rw_sys_reg fpmr // FP8 + rw_sys_reg id_aa64zfr0_el1 w=0 // SVE + rw_sys_reg lorc_el1 // LOR + rw_sys_reg pmbidr_el1 w=0 // PROFILE + rw_sys_reg gcspr_el0 // GCS + rw_sys_reg id_aa64smfr0_el1 w=0 // SME + rw_sys_reg trcitecr_el1 // ITE + rw_sys_reg gcr_el1 // MEMTAG + rw_sys_reg rndr w=0 // RNG + rw_sys_reg disr_el1 // RAS + rw_sys_reg pan // PAN + rw_sys_reg ssbs // SSBS + + .arch_extension d128 // For the msrr and mrrs instructions. + rw_sys_reg_128 rcwmask_el1 xreg1=x2 xreg2=x3 // THE + rw_sys_reg_128 ttbr0_el2 xreg1=x2 xreg2=x3 // V8A + rw_sys_reg_128 ttbr1_el2 xreg1=x2 xreg2=x3 // V8A && V8_1A diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d new file mode 100644 index 0000000..bca119d --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d @@ -0,0 +1,95 @@ +#as: -menable-sysreg-checking -I$srcdir/$subdir +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +.*: d5380080 mrs x0, mpuir_el1 +.*: d51d5100 msr afsr0_el12, x0 +.*: d53d5100 mrs x0, afsr0_el12 +.*: d5184280 msr uao, x0 +.*: d5384280 mrs x0, uao +.*: d5182220 msr apdakeyhi_el1, x0 +.*: d5382220 mrs x0, apdakeyhi_el1 +.*: d53bd220 mrs x0, amcfgr_el0 +.*: d51c2600 msr vsttbr_el2, x0 +.*: d53c2600 mrs x0, vsttbr_el2 +.*: d51bd0e0 msr scxtnum_el0, x0 +.*: d53bd0e0 mrs x0, scxtnum_el0 +.*: d5380380 mrs x0, id_pfr2_el1 +.*: d53bd2c0 mrs x0, amcg1idr_el0 +.*: d51c1240 msr hcrx_el2, x0 +.*: d53c1240 mrs x0, hcrx_el2 +.*: d5184300 msr allint, x0 +.*: d5384300 mrs x0, allint +.*: d51860a0 msr pfar_el1, x0 +.*: d53860a0 mrs x0, pfar_el1 +.*: d518a260 msr pir_el1, x0 +.*: d538a260 mrs x0, pir_el1 +.*: d5189ea0 msr pmecr_el1, x0 +.*: d5389ea0 mrs x0, pmecr_el1 +.*: d51c3100 msr hdfgrtr2_el2, x0 +.*: d53c3100 mrs x0, hdfgrtr2_el2 +.*: d5100440 msr mdselr_el1, x0 +.*: d5300440 mrs x0, mdselr_el1 +.*: d51b9600 msr pmicfiltr_el0, x0 +.*: d53b9600 mrs x0, pmicfiltr_el0 +.*: d5189a80 msr pmsdsfr_el1, x0 +.*: d5389a80 mrs x0, pmsdsfr_el1 +.*: d5189e80 msr pmuacr_el1, x0 +.*: d5389e80 mrs x0, pmuacr_el1 +.*: d51ba280 msr por_el0, x0 +.*: d53ba280 mrs x0, por_el0 +.*: d51ca2a0 msr s2pir_el2, x0 +.*: d53ca2a0 mrs x0, s2pir_el2 +.*: d518a2a0 msr s2por_el1, x0 +.*: d538a2a0 mrs x0, s2por_el1 +.*: d5181060 msr sctlr2_el1, x0 +.*: d5381060 mrs x0, sctlr2_el1 +.*: d5109d60 msr spmaccessr_el1, x0 +.*: d5309d60 mrs x0, spmaccessr_el1 +.*: d5182060 msr tcr2_el1, x0 +.*: d5382060 mrs x0, tcr2_el1 +.*: d518a320 msr amair2_el1, x0 +.*: d538a320 mrs x0, amair2_el1 +.*: d530ebe0 mrs x0, pmccntsvr_el1 +.*: d51ec120 msr vdisr_el3, x0 +.*: d53ec120 mrs x0, vdisr_el3 +.*: d5139c80 msr spmzr_el0, x0 +.*: d5339c80 mrs x0, spmzr_el0 +.*: d5100540 msr mdstepop_el1, x0 +.*: d5300540 mrs x0, mdstepop_el1 +.*: d51e21a0 msr gpcbw_el3, x0 +.*: d53e21a0 mrs x0, gpcbw_el3 +.*: d5189aa0 msr pmbmar_el1, x0 +.*: d5389aa0 mrs x0, pmbmar_el1 +.*: d5385340 mrs x0, erxgsr_el1 +.*: d51b4440 msr fpmr, x0 +.*: d53b4440 mrs x0, fpmr +.*: d5380480 mrs x0, id_aa64zfr0_el1 +.*: d518a460 msr lorc_el1, x0 +.*: d538a460 mrs x0, lorc_el1 +.*: d5389ae0 mrs x0, pmbidr_el1 +.*: d51b2520 msr gcspr_el0, x0 +.*: d53b2520 mrs x0, gcspr_el0 +.*: d53804a0 mrs x0, id_aa64smfr0_el1 +.*: d5181260 msr trcitecr_el1, x0 +.*: d5381260 mrs x0, trcitecr_el1 +.*: d51810c0 msr gcr_el1, x0 +.*: d53810c0 mrs x0, gcr_el1 +.*: d53b2400 mrs x0, rndr +.*: d518c120 msr disr_el1, x0 +.*: d538c120 mrs x0, disr_el1 +.*: d5184260 msr pan, x0 +.*: d5384260 mrs x0, pan +.*: d51b42c0 msr ssbs, x0 +.*: d53b42c0 mrs x0, ssbs +.*: d558d0c2 msrr rcwmask_el1, x2, x3 +.*: d578d0c2 mrrs x2, x3, rcwmask_el1 +.*: d55c2002 msrr ttbr0_el2, x2, x3 +.*: d57c2002 mrrs x2, x3, ttbr0_el2 +.*: d55c2022 msrr ttbr1_el2, x2, x3 +.*: d57c2022 mrrs x2, x3, ttbr1_el2 diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s new file mode 100644 index 0000000..0cdb822 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s @@ -0,0 +1,93 @@ + .include "sysreg-test-utils.inc" +.text + .arch armv8-r + rw_sys_reg mpuir_el1 w=0 // V8R + + .arch armv8.1-a + rw_sys_reg afsr0_el12 // V8_1A + + .arch armv8.2-a + rw_sys_reg uao // V8_2A + + .arch armv8.3-a + rw_sys_reg apdakeyhi_el1 // V8_3A + + .arch armv8.4-a + rw_sys_reg amcfgr_el0 w=0 // V8_4A + rw_sys_reg vsttbr_el2 // V8A && V8_4A + + .arch armv8.5-a + rw_sys_reg scxtnum_el0 // SCXTNUM + rw_sys_reg id_pfr2_el1 w=0 // ID_PFR2 + + .arch armv8.6-a + rw_sys_reg amcg1idr_el0 w=0 // V8_6A + + .arch armv8.7-a + rw_sys_reg hcrx_el2 // V8_7A + + .arch armv8.8-a + rw_sys_reg allint // V8_8A + + .arch armv8.9-a + rw_sys_reg pfar_el1 // PFAR + rw_sys_reg pir_el1 // S1PIE + rw_sys_reg pmecr_el1 // SEBEP + rw_sys_reg hdfgrtr2_el2 // FGT2 + rw_sys_reg mdselr_el1 // DEBUGv8p9 + rw_sys_reg pmicfiltr_el0 // PMUv3_ICNTR + rw_sys_reg pmsdsfr_el1 // SPE_FDS + rw_sys_reg pmuacr_el1 // PMUv3p9 + rw_sys_reg por_el0 // S1POE + rw_sys_reg s2pir_el2 // S2PIE + rw_sys_reg s2por_el1 // S2POE + rw_sys_reg sctlr2_el1 // SCTLR2 + rw_sys_reg spmaccessr_el1 // SPMU + rw_sys_reg tcr2_el1 // TCR2 + rw_sys_reg amair2_el1 // AIE + rw_sys_reg pmccntsvr_el1 w=0 // PMUv3_SS + + .arch armv9.5-a + rw_sys_reg vdisr_el3 // E3DES + rw_sys_reg spmzr_el0 // SPMU2 + rw_sys_reg mdstepop_el1 // STEP2 + rw_sys_reg gpcbw_el3 // V9_5A + + .arch armv9.5-a+profile + rw_sys_reg pmbmar_el1 // PROFILE && V9_5A + + .arch_extension rasv2 + rw_sys_reg erxgsr_el1 w=0 // RASv2 + .arch_extension fp8 + rw_sys_reg fpmr // FP8 + .arch_extension sve + rw_sys_reg id_aa64zfr0_el1 w=0 // SVE + .arch_extension lor + rw_sys_reg lorc_el1 // LOR + .arch_extension profile + rw_sys_reg pmbidr_el1 w=0 // PROFILE + .arch_extension gcs + rw_sys_reg gcspr_el0 // GCS + .arch_extension sme + rw_sys_reg id_aa64smfr0_el1 w=0 // SME + .arch_extension ite + rw_sys_reg trcitecr_el1 // ITE + .arch_extension memtag + rw_sys_reg gcr_el1 // MEMTAG + .arch_extension rng + rw_sys_reg rndr w=0 // RNG + .arch_extension ras + rw_sys_reg disr_el1 // RAS + .arch_extension pan + rw_sys_reg pan // PAN + .arch_extension ssbs + rw_sys_reg ssbs // SSBS + + .arch_extension d128 // For the msrr and mrrs instructions. + .arch_extension the + rw_sys_reg_128 rcwmask_el1 xreg1=x2 xreg2=x3 // THE + + .arch armv8-a+d128 + rw_sys_reg_128 ttbr0_el2 xreg1=x2 xreg2=x3 // V8A + .arch armv8.1-a+d128 + rw_sys_reg_128 ttbr1_el2 xreg1=x2 xreg2=x3 // V8A && V8_1A diff --git a/gas/testsuite/gas/aarch64/sysreg/v8-r-bad-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/v8-r-bad-sysregs.d index 6677f3b..a228b59 100644 --- a/gas/testsuite/gas/aarch64/sysreg/v8-r-bad-sysregs.d +++ b/gas/testsuite/gas/aarch64/sysreg/v8-r-bad-sysregs.d @@ -1,3 +1,4 @@ #name: invalid system registers for Armv8-R AArch64 +#as: -menable-sysreg-checking #source: v8-r-bad-sysregs.s #error_output: v8-r-bad-sysregs.l diff --git a/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs-need-arch.d b/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs-need-arch.d index af83196..98756de 100644 --- a/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs-need-arch.d +++ b/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs-need-arch.d @@ -1,3 +1,4 @@ #name: check that Armv8-R system registers are rejected without -march=armv8-r +#as: -menable-sysreg-checking #source: v8-r-sysregs.s #error_output: v8-r-sysregs-need-arch.l diff --git a/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs.d index aa8321e..03e7fab 100644 --- a/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs.d +++ b/gas/testsuite/gas/aarch64/sysreg/v8-r-sysregs.d @@ -1,5 +1,5 @@ #name: Exhaustive test of Armv8-R system registers -#as: -march=armv8-r +#as: -menable-sysreg-checking -march=armv8-r #objdump: -dr -m aarch64:armv8-r .*: file format .* diff --git a/gas/testsuite/gas/aarch64/system.d b/gas/testsuite/gas/aarch64/system.d index 8c1a113..ee84793 100644 --- a/gas/testsuite/gas/aarch64/system.d +++ b/gas/testsuite/gas/aarch64/system.d @@ -66,8 +66,8 @@ Disassembly of section \.text: .*: d50325bf hint #0x2d .*: d50325df hint #0x2e .*: d50325ff hint #0x2f -.*: d503261f hint #0x30 -.*: d503263f hint #0x31 +.*: d503261f (hint #0x30|stshh keep) +.*: d503263f (hint #0x31|stshh strm) .*: d503265f hint #0x32 .*: d503267f hint #0x33 .*: d503269f hint #0x34 @@ -335,7 +335,7 @@ Disassembly of section \.text: .*: f9800c77 prfm pstslcstrm, \[x3, #24\] .*: d8000018 prfm #0x18, 0 <LABEL1> .*: R_AARCH64_(P32_|)LD_PREL_LO19 LABEL1 -.*: f9800c78 prfm #0x18, \[x3, #24\] +.*: f9800c78 prfm ir, \[x3, #24\] .*: d8000019 prfm #0x19, 0 <LABEL1> .*: R_AARCH64_(P32_|)LD_PREL_LO19 LABEL1 .*: f9800c79 prfm #0x19, \[x3, #24\] diff --git a/gas/testsuite/gas/aarch64/uao-directive.d b/gas/testsuite/gas/aarch64/uao-directive.d index 1dbe847..617d73f 100644 --- a/gas/testsuite/gas/aarch64/uao-directive.d +++ b/gas/testsuite/gas/aarch64/uao-directive.d @@ -1,5 +1,5 @@ #objdump: -dr -#as: --defsym DIRECTIVE=1 +#as: -menable-sysreg-checking --defsym DIRECTIVE=1 #source: uao.s .*: file format .* diff --git a/gas/testsuite/gas/aarch64/uao.d b/gas/testsuite/gas/aarch64/uao.d index 2fb67b1..387654c 100644 --- a/gas/testsuite/gas/aarch64/uao.d +++ b/gas/testsuite/gas/aarch64/uao.d @@ -1,5 +1,5 @@ #objdump: -dr -#as: -march=armv8.2-a +#as: -menable-sysreg-checking -march=armv8.2-a .*: file format .* diff --git a/gas/testsuite/gas/aarch64/virthostext-directive.d b/gas/testsuite/gas/aarch64/virthostext-directive.d index 22e8d54..5e23cad 100644 --- a/gas/testsuite/gas/aarch64/virthostext-directive.d +++ b/gas/testsuite/gas/aarch64/virthostext-directive.d @@ -1,5 +1,5 @@ #objdump: -dr -#as: --defsym DIRECTIVE=1 +#as: -menable-sysreg-checking --defsym DIRECTIVE=1 #source: virthostext.s diff --git a/gas/testsuite/gas/aarch64/virthostext.d b/gas/testsuite/gas/aarch64/virthostext.d index 8e63efa..2181906 100644 --- a/gas/testsuite/gas/aarch64/virthostext.d +++ b/gas/testsuite/gas/aarch64/virthostext.d @@ -1,5 +1,5 @@ #objdump: -dr -#as: -march=armv8.1-a +#as: -menable-sysreg-checking -march=armv8.1-a #source: virthostext.s diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1b.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1b.d new file mode 100644 index 0000000..c6ddfba --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1b.d @@ -0,0 +1,6 @@ +#as: --gsframe +#readelf: -S +#name: SFrame section header in readelf output +#... +[ ]*\[.*\][ ]+\.sframe[ ]+GNU_SFRAME.* +#... diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1b.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1b.s new file mode 100644 index 0000000..ac9c6ca --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1b.s @@ -0,0 +1,3 @@ + .cfi_sections .sframe + .cfi_startproc + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-1.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-1.d new file mode 100644 index 0000000..df315df --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-1.d @@ -0,0 +1,23 @@ +#name: SFrame generation on s390x - .cfi_offset and .cfi_def_cfa_{offset,register} +#objdump: --sframe=.sframe +#... +Contents of the SFrame section .sframe: + + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 1 + Num FREs: 6 + + Function Index : + + func idx \[0\]: pc = 0x0, size = 40 bytes + STARTPC +CFA +FP +RA + + 0+0000 +sp\+160 +u +u + + 0+0006 +sp\+160 +c\-72 +c\-48 + + 0+000c +sp\+320 +c\-72 +c\-48 + + 0+0010 +fp\+320 +c\-72 +c\-48 + + 0+001c +sp\+160 +u +u + + 0+001e +fp\+320 +c\-72 +c\-48 + +#pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-1.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-1.s new file mode 100644 index 0000000..7d132a4 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-1.s @@ -0,0 +1,37 @@ + .cfi_sections .sframe + .cfi_startproc + stmg %r6,%r15,48(%r15) + .cfi_offset 6, -112 + .cfi_offset 7, -104 + .cfi_offset 8, -96 + .cfi_offset 9, -88 + .cfi_offset 10, -80 + .cfi_offset 11, -72 + .cfi_offset 12, -64 + .cfi_offset 13, -56 + .cfi_offset 14, -48 + .cfi_offset 15, -40 + lay %r15,-160(%r15) + .cfi_def_cfa_offset 320 + lgr %r11,%r15 + .cfi_def_cfa_register 11 + lay %r15,-128(%r15) +.Lreturn: + lmg %r6,%r15,160+48(%r11) + .cfi_remember_state + .cfi_restore 15 + .cfi_restore 14 + .cfi_restore 13 + .cfi_restore 12 + .cfi_restore 11 + .cfi_restore 10 + .cfi_restore 9 + .cfi_restore 8 + .cfi_restore 7 + .cfi_restore 6 + .cfi_def_cfa 15, 160 + br %r14 + .cfi_restore_state + lay %r15,-128(%r15) + j .Lreturn + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-2.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-2.d new file mode 100644 index 0000000..a772c2b --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-2.d @@ -0,0 +1,23 @@ +#name: SFrame generation on s390x - .cfi_rel_offset and .cfi_def_cfa_{offset,register} +#objdump: --sframe=.sframe +#... +Contents of the SFrame section .sframe: + + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 1 + Num FREs: 6 + + Function Index : + + func idx \[0\]: pc = 0x0, size = 40 bytes + STARTPC +CFA +FP +RA + + 0+0000 +sp\+160 +u +u + + 0+0006 +sp\+160 +c\-72 +c\-48 + + 0+000c +sp\+320 +c\-72 +c\-48 + + 0+0010 +fp\+320 +c\-72 +c\-48 + + 0+001c +sp\+160 +u +u + + 0+001e +fp\+320 +c\-72 +c\-48 + +#pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-2.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-2.s new file mode 100644 index 0000000..6d52037 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-2.s @@ -0,0 +1,37 @@ + .cfi_sections .sframe + .cfi_startproc + stmg %r6,%r15,48(%r15) + .cfi_rel_offset 6, 48 + .cfi_rel_offset 7, 56 + .cfi_rel_offset 8, 64 + .cfi_rel_offset 9, 72 + .cfi_rel_offset 10, 80 + .cfi_rel_offset 11, 88 + .cfi_rel_offset 12, 96 + .cfi_rel_offset 13, 104 + .cfi_rel_offset 14, 112 + .cfi_rel_offset 15, 120 + lay %r15,-160(%r15) + .cfi_def_cfa_offset 320 + lgr %r11,%r15 + .cfi_def_cfa_register 11 + lay %r15,-128(%r15) +.Lreturn: + lmg %r6,%r15,160+48(%r11) + .cfi_remember_state + .cfi_restore 15 + .cfi_restore 14 + .cfi_restore 13 + .cfi_restore 12 + .cfi_restore 11 + .cfi_restore 10 + .cfi_restore 9 + .cfi_restore 8 + .cfi_restore 7 + .cfi_restore 6 + .cfi_def_cfa 15, 160 + br %r14 + .cfi_restore_state + lay %r15,-128(%r15) + j .Lreturn + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-3.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-3.d new file mode 100644 index 0000000..f775fe5 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-3.d @@ -0,0 +1,19 @@ +#name: SFrame generation on s390x - .cfi_def_cfa_register with no previous offset +#as: --gsframe +#objdump: --sframe=.sframe +#... +Contents of the SFrame section .sframe: + + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 1 + Num FREs: 1 + + Function Index : + + func idx \[0\]: pc = 0x0, size = 0 bytes + STARTPC +CFA +FP +RA + + 0+0000 +fp\+160 +u +u + +#pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-3.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-3.s new file mode 100644 index 0000000..ea8c9e1 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-3.s @@ -0,0 +1,4 @@ +# Although not a useful construct by itself, ensure graceful handling. + .cfi_startproc + .cfi_def_cfa_register 11 + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-1.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-1.d new file mode 100644 index 0000000..14f2382 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-1.d @@ -0,0 +1,15 @@ +#name: SFrame generation on s390x - .cfi_def_cfa_register with non-SP/FP register +#as: --gsframe +#warning: non-SP/FP register 10 in \.cfi_def_cfa_register +#objdump: --sframe=.sframe +#... +Contents of the SFrame section .sframe: + + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 0 + Num FREs: 0 + +#pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-1.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-1.s new file mode 100644 index 0000000..8b724df --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-1.s @@ -0,0 +1,37 @@ + .cfi_sections .sframe + .cfi_startproc + stmg %r6,%r15,48(%r15) + .cfi_offset 6, -112 + .cfi_offset 7, -104 + .cfi_offset 8, -96 + .cfi_offset 9, -88 + .cfi_offset 10, -80 + .cfi_offset 11, -72 + .cfi_offset 12, -64 + .cfi_offset 13, -56 + .cfi_offset 14, -48 + .cfi_offset 15, -40 + lay %r15,-160(%r15) + .cfi_def_cfa_offset 320 + lgr %r10,%r15 + .cfi_def_cfa_register 10 # non-default frame pointer register + lay %r15,-128(%r15) +.Lreturn: + lmg %r6,%r15,160+48(%r10) + .cfi_remember_state + .cfi_restore 15 + .cfi_restore 14 + .cfi_restore 13 + .cfi_restore 12 + .cfi_restore 11 + .cfi_restore 10 + .cfi_restore 9 + .cfi_restore 8 + .cfi_restore 7 + .cfi_restore 6 + .cfi_def_cfa 15, 160 + br %r14 + .cfi_restore_state + lay %r15,-128(%r15) + j .Lreturn + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-2.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-2.d new file mode 100644 index 0000000..0d3b475 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-2.d @@ -0,0 +1,15 @@ +#name: SFrame generation on s390x - .cfi_def_cfa with non-SP/FP register +#as: --gsframe +#warning: non-SP/FP register 10 in \.cfi_def_cfa +#objdump: --sframe=.sframe +#... +Contents of the SFrame section .sframe: + + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 0 + Num FREs: 0 + +#pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-2.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-2.s new file mode 100644 index 0000000..dbcf439 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-2.s @@ -0,0 +1,37 @@ + .cfi_sections .sframe + .cfi_startproc + stmg %r6,%r15,48(%r15) + .cfi_offset 6, -112 + .cfi_offset 7, -104 + .cfi_offset 8, -96 + .cfi_offset 9, -88 + .cfi_offset 10, -80 + .cfi_offset 11, -72 + .cfi_offset 12, -64 + .cfi_offset 13, -56 + .cfi_offset 14, -48 + .cfi_offset 15, -40 + lay %r15,-160(%r15) + .cfi_def_cfa_offset 320 + lgr %r10,%r15 + .cfi_def_cfa 10, 320 # non-default frame pointer register + lay %r15,-128(%r15) +.Lreturn: + lmg %r6,%r15,160+48(%r10) + .cfi_remember_state + .cfi_restore 15 + .cfi_restore 14 + .cfi_restore 13 + .cfi_restore 12 + .cfi_restore 11 + .cfi_restore 10 + .cfi_restore 9 + .cfi_restore 8 + .cfi_restore 7 + .cfi_restore 6 + .cfi_def_cfa 15, 160 + br %r14 + .cfi_restore_state + lay %r15,-128(%r15) + j .Lreturn + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-3.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-3.d new file mode 100644 index 0000000..519c235 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-3.d @@ -0,0 +1,15 @@ +#name: SFrame generation on s390x - non-default RA register +#as: --gsframe +#warning: non-default RA register 7 +#objdump: --sframe=.sframe +#... +Contents of the SFrame section .sframe: + + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 0 + Num FREs: 0 + +#pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-3.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-3.s new file mode 100644 index 0000000..7cea165 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-err-3.s @@ -0,0 +1,5 @@ + .cfi_sections .sframe + .cfi_startproc + .cfi_return_column 7 # non-default return address register + br %r7 + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-1.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-1.d new file mode 100644 index 0000000..e5eac75 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-1.d @@ -0,0 +1,22 @@ +#name: SFrame generation on s390x - RA and then FP saved on stack +#objdump: --sframe=.sframe +#... +Contents of the SFrame section .sframe: + + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 1 + Num FREs: 5 + + Function Index : + + func idx \[0\]: pc = 0x0, size = 34 bytes + STARTPC +CFA +FP +RA + + 0+0000 +sp\+160 +u +u + + 0+0006 +sp\+160 +u +c\-48 + + 0+000c +sp\+160 +c\-72 +c\-48 + + 0+001a +sp\+160 +u +c\-48 + + 0+0020 +sp\+160 +u +u + +#pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-1.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-1.s new file mode 100644 index 0000000..3d9c8cb --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-1.s @@ -0,0 +1,15 @@ + .cfi_sections .sframe + .cfi_startproc + stg %r14,112(%r15) + .cfi_rel_offset 14, 112 + stg %r11,88(%r15) + .cfi_rel_offset 11, 88 + la %r11,0 + la %r14,0 +.Lreturn: + lg %r11,88(%r15) + .cfi_restore 11 + lg %r14,112(%r15) + .cfi_restore 14 + br %r14 + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-2.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-2.d new file mode 100644 index 0000000..305a917 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-2.d @@ -0,0 +1,22 @@ +#name: SFrame generation on s390x - FP and then RA saved on stack +#objdump: --sframe=.sframe +#... +Contents of the SFrame section .sframe: + + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 1 + Num FREs: 5 + + Function Index : + + func idx \[0\]: pc = 0x0, size = 34 bytes + STARTPC +CFA +FP +RA + + 0+0000 +sp\+160 +u +u + + 0+0006 +sp\+160 +c\-72 +U + + 0+000c +sp\+160 +c\-72 +c\-48 + + 0+001a +sp\+160 +c-72 +U + + 0+0020 +sp\+160 +u +u + +#pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-2.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-2.s new file mode 100644 index 0000000..a84c391 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-offset-2.s @@ -0,0 +1,15 @@ + .cfi_sections .sframe + .cfi_startproc + stg %r11,88(%r15) + .cfi_rel_offset 11, 88 + stg %r14,112(%r15) + .cfi_rel_offset 14, 112 + la %r11,0 + la %r14,0 +.Lreturn: + lg %r14,112(%r15) + .cfi_restore 14 + lg %r11,88(%r15) + .cfi_restore 11 + br %r14 + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-1.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-1.d new file mode 100644 index 0000000..aa1b195 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-1.d @@ -0,0 +1,22 @@ +#name: SFrame generation on s390x - RA and then FP saved in registers +#objdump: --sframe=.sframe +#... +Contents of the SFrame section .sframe: + + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 1 + Num FREs: 5 + + Function Index : + + func idx \[0\]: pc = 0x0, size = 26 bytes + STARTPC +CFA +FP +RA + + 0+0000 +sp\+160 +u +u + + 0+0004 +sp\+160 +u +r16 + + 0+0008 +sp\+160 +r17 +r16 + + 0+0014 +sp\+160 +u +r16 + + 0+0018 +sp\+160 +u +u + +#pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-1.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-1.s new file mode 100644 index 0000000..1d44971 --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-1.s @@ -0,0 +1,15 @@ + .cfi_sections .sframe + .cfi_startproc + ldgr %f0,%r14 + .cfi_register 14, 16 + ldgr %f2,%r11 + .cfi_register 11, 17 + la %r11,0 + la %r14,0 +.Lreturn: + lgdr %r11,%f2 + .cfi_restore 11 + lgdr %r14,%f0 + .cfi_restore 14 + br %r14 + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-2.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-2.d new file mode 100644 index 0000000..7b719fd --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-2.d @@ -0,0 +1,22 @@ +#name: SFrame generation on s390x - FP and then RA saved in FPR registers +#objdump: --sframe=.sframe +#... +Contents of the SFrame section .sframe: + + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 1 + Num FREs: 5 + + Function Index : + + func idx \[0\]: pc = 0x0, size = 26 bytes + STARTPC +CFA +FP +RA + + 0+0000 +sp\+160 +u +u + + 0+0004 +sp\+160 +r17 +U + + 0+0008 +sp\+160 +r17 +r16 + + 0+0014 +sp\+160 +r17 +U + + 0+0018 +sp\+160 +u +u + +#pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-2.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-2.s new file mode 100644 index 0000000..48b01ac --- /dev/null +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-s390x-fpra-register-2.s @@ -0,0 +1,15 @@ + .cfi_sections .sframe + .cfi_startproc + ldgr %f2,%r11 + .cfi_register 11, 17 + ldgr %f0,%r14 + .cfi_register 14, 16 + la %r11,0 + la %r14,0 +.Lreturn: + lgdr %r14,%f0 + .cfi_restore 14 + lgdr %r11,%f2 + .cfi_restore 11 + br %r14 + .cfi_endproc diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp b/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp index 341a56a..8a42419 100644 --- a/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp @@ -64,13 +64,15 @@ proc gas_x86_64_check { } { } # common tests -if { ([istarget "x86_64-*-*"] || [istarget "aarch64*-*-*"]) \ - && [gas_sframe_check] } then { +if { ([istarget "x86_64-*-*"] || [istarget "aarch64*-*-*"] + || [istarget "s390x-*-*"]) \ + && [gas_sframe_check] } then { global ASFLAGS set old_ASFLAGS "$ASFLAGS" run_dump_test "cfi-sframe-common-1" + run_dump_test "cfi-sframe-common-1b" run_dump_test "cfi-sframe-common-2" run_dump_test "cfi-sframe-common-3" run_dump_test "cfi-sframe-common-4" @@ -109,3 +111,17 @@ if { [istarget "aarch64*-*-*"] && [gas_sframe_check] } then { run_dump_test "cfi-sframe-aarch64-4" run_dump_test "cfi-sframe-aarch64-pac-ab-key-1" } + +# s390x specific tests +if { [istarget "s390x*-*-*"] && [gas_sframe_check] } then { + run_dump_test "cfi-sframe-s390x-1" + run_dump_test "cfi-sframe-s390x-2" + run_dump_test "cfi-sframe-s390x-3" + run_dump_test "cfi-sframe-s390x-err-1" + run_dump_test "cfi-sframe-s390x-err-2" + run_dump_test "cfi-sframe-s390x-err-3" + run_dump_test "cfi-sframe-s390x-fpra-offset-1" + run_dump_test "cfi-sframe-s390x-fpra-offset-2" + run_dump_test "cfi-sframe-s390x-fpra-register-1" + run_dump_test "cfi-sframe-s390x-fpra-register-2" +} diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 1a766ff..85820c2 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -1606,6 +1606,9 @@ if { [istarget mips*-*-vxworks*] } { if $has_newabi { run_dump_test "cfi-n64-1" } run_dump_test "pr12915" + + run_dump_test_arches "pr19977" [mips_arch_list_all] + run_dump_test "reginfo-1a" run_dump_test "reginfo-1b" run_dump_test "reginfo-2" @@ -1724,6 +1727,13 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "pcrel-4-n32" run_dump_test "pcrel-4-64" } + run_dump_test "pcrel-hilo-match" + run_dump_test "pcrel-hilo-addend" + run_dump_test "pcrel-hilo" + if $has_newabi { + run_dump_test "pcrel-hilo-n32" + run_dump_test "pcrel-hilo-64" + } run_dump_test "pcrel-reloc-1" run_dump_test "pcrel-reloc-1-r6" diff --git a/gas/testsuite/gas/mips/pcrel-hilo-64.d b/gas/testsuite/gas/mips/pcrel-hilo-64.d new file mode 100644 index 0000000..92c697f --- /dev/null +++ b/gas/testsuite/gas/mips/pcrel-hilo-64.d @@ -0,0 +1,79 @@ +#readelf: -r +#name: MIPSr6 PCHI16/PCLO16 relocations (n64) +#as: -mabi=64 -march=mips64r6 -mno-pdr +#source: pcrel-hilo.s + +Relocation section '\.rela\.text' at offset .+ contains 24 entries: + Offset Info Type Sym\. Value Sym\. Name \+ Addend +000000000000 000800000040 R_MIPS_PCHI16 0000000000000000 bar \+ 7fec + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000000004 000900000005 R_MIPS_HI16 0000000000000000 baz \+ 0 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000000008 000800000040 R_MIPS_PCHI16 0000000000000000 bar \+ 7ff8 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +00000000000c 000800000040 R_MIPS_PCHI16 0000000000000000 bar \+ fff0 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000000010 000800000041 R_MIPS_PCLO16 0000000000000000 bar \+ 7ffc + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000000014 000900000006 R_MIPS_LO16 0000000000000000 baz \+ 0 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000000018 000800000041 R_MIPS_PCLO16 0000000000000000 bar \+ 8008 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +00000000001c 000800000041 R_MIPS_PCLO16 0000000000000000 bar \+ 10000 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000000020 000800000040 R_MIPS_PCHI16 0000000000000000 bar \+ 800c + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000000024 000900000005 R_MIPS_HI16 0000000000000000 baz \+ 0 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000000028 000800000040 R_MIPS_PCHI16 0000000000000000 bar \+ 8018 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +00000000002c 000800000040 R_MIPS_PCHI16 0000000000000000 bar \+ 10010 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000030030 000800000041 R_MIPS_PCLO16 0000000000000000 bar \+ 3801c + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000030034 000900000006 R_MIPS_LO16 0000000000000000 baz \+ 0 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000030038 000800000041 R_MIPS_PCLO16 0000000000000000 bar \+ 38028 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +00000003003c 000800000041 R_MIPS_PCLO16 0000000000000000 bar \+ 40020 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000030040 000800000041 R_MIPS_PCLO16 0000000000000000 bar \+ 3802c + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000030044 000900000006 R_MIPS_LO16 0000000000000000 baz \+ 0 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000030048 000800000041 R_MIPS_PCLO16 0000000000000000 bar \+ 38038 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +00000003004c 000800000041 R_MIPS_PCLO16 0000000000000000 bar \+ 40030 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000030050 000800000040 R_MIPS_PCHI16 0000000000000000 bar \+ 3803c + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000030054 000900000005 R_MIPS_HI16 0000000000000000 baz \+ 0 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +000000030058 000800000040 R_MIPS_PCHI16 0000000000000000 bar \+ 38048 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE +00000003005c 000800000040 R_MIPS_PCHI16 0000000000000000 bar \+ 40040 + Type2: R_MIPS_NONE + Type3: R_MIPS_NONE diff --git a/gas/testsuite/gas/mips/pcrel-hilo-addend.d b/gas/testsuite/gas/mips/pcrel-hilo-addend.d new file mode 100644 index 0000000..296101c --- /dev/null +++ b/gas/testsuite/gas/mips/pcrel-hilo-addend.d @@ -0,0 +1,63 @@ +#objdump: -dr --prefix-addresses --show-raw-insn +#name: MIPSr6 PCHI16/PCLO16 in-place addends (o32) +#as: -mabi=32 -mno-pdr +#source: pcrel-hilo.s + +.*: +file format .*mips.* + +Disassembly of section \.text: +00000000 <[^>]*> ec9e0000 auipc a0,0x0 + 0: R_MIPS_PCHI16 bar +00000004 <[^>]*> 3c050000 lui a1,0x0 + 4: R_MIPS_HI16 baz +00000008 <[^>]*> ecde0000 auipc a2,0x0 + 8: R_MIPS_PCHI16 bar +0000000c <[^>]*> ecfe0001 auipc a3,0x1 + c: R_MIPS_PCHI16 bar +00000010 <[^>]*> 24847ffc addiu a0,a0,32764 + 10: R_MIPS_PCLO16 bar +00000014 <[^>]*> 24a50000 addiu a1,a1,0 + 14: R_MIPS_LO16 baz +00000018 <[^>]*> 24c68008 addiu a2,a2,-32760 + 18: R_MIPS_PCLO16 bar +0000001c <[^>]*> 24e70000 addiu a3,a3,0 + 1c: R_MIPS_PCLO16 bar +00000020 <[^>]*> ec9e0001 auipc a0,0x1 + 20: R_MIPS_PCHI16 bar +00000024 <[^>]*> 3c050000 lui a1,0x0 + 24: R_MIPS_HI16 baz +00000028 <[^>]*> ecde0001 auipc a2,0x1 + 28: R_MIPS_PCHI16 bar +0000002c <[^>]*> ecfe0001 auipc a3,0x1 + 2c: R_MIPS_PCHI16 bar + \.\.\. +00030030 <[^>]*> 2484801c addiu a0,a0,-32740 + 30030: R_MIPS_PCLO16 bar +00030034 <[^>]*> 24a50000 addiu a1,a1,0 + 30034: R_MIPS_LO16 baz +00030038 <[^>]*> 24c68028 addiu a2,a2,-32728 + 30038: R_MIPS_PCLO16 bar +0003003c <[^>]*> 24e70020 addiu a3,a3,32 + 3003c: R_MIPS_PCLO16 bar +00030040 <[^>]*> 2410802c li s0,-32724 + 30040: R_MIPS_PCLO16 bar +00030044 <[^>]*> 24110000 li s1,0 + 30044: R_MIPS_LO16 baz +00030048 <[^>]*> 24128038 li s2,-32712 + 30048: R_MIPS_PCLO16 bar +0003004c <[^>]*> 24130030 li s3,48 + 3004c: R_MIPS_PCLO16 bar +00030050 <[^>]*> ec9e0004 auipc a0,0x4 + 30050: R_MIPS_PCHI16 bar +00030054 <[^>]*> 3c050000 lui a1,0x0 + 30054: R_MIPS_HI16 baz +00030058 <[^>]*> ecde0004 auipc a2,0x4 + 30058: R_MIPS_PCHI16 bar +0003005c <[^>]*> ecfe0004 auipc a3,0x4 + 3005c: R_MIPS_PCHI16 bar +00030060 <[^>]*> 00902021 addu a0,a0,s0 +00030064 <[^>]*> 00b12821 addu a1,a1,s1 +00030068 <[^>]*> 00d23021 addu a2,a2,s2 +0003006c <[^>]*> 00f33821 addu a3,a3,s3 +00030070 <[^>]*> d81f0000 jrc ra + \.\.\. diff --git a/gas/testsuite/gas/mips/pcrel-hilo-match.d b/gas/testsuite/gas/mips/pcrel-hilo-match.d new file mode 100644 index 0000000..5ff66c2 --- /dev/null +++ b/gas/testsuite/gas/mips/pcrel-hilo-match.d @@ -0,0 +1,28 @@ +#objdump: -r +#as: -mabi=32 -mno-pdr +#name: MIPS pcrel-hilo-match + +.*: +file format .*mips.* + +RELOCATION RECORDS FOR \[\.text\]: +OFFSET +TYPE +VALUE +00000010 R_MIPS_PCHI16 var4 +00000018 R_MIPS_PCLO16 var4 +00000008 R_MIPS_PCHI16 __var1 +00000020 R_MIPS_PCLO16 __var1 +0000001c R_MIPS_PCHI16 .sbss +0000002c R_MIPS_PCLO16 .sbss +00000028 R_MIPS_PCHI16 __var3 +00000034 R_MIPS_PCLO16 __var3 +00000030 R_MIPS_PCHI16 func4 +00000038 R_MIPS_PCLO16 func4 +00000024 R_MIPS_PCHI16 hilo_match +0000003c R_MIPS_PCLO16 hilo_match +00000040 R_MIPS_PCHI16 .bss +00000048 R_MIPS_PCLO16 .bss +00000044 R_MIPS_PCHI16 .bss +0000004c R_MIPS_PCLO16 .bss +00000050 R_MIPS_PCHI16 hilo_match +00000058 R_MIPS_PCLO16 hilo_match +00000054 R_MIPS_PCHI16 func3 +0000005c R_MIPS_PCLO16 func3 diff --git a/gas/testsuite/gas/mips/pcrel-hilo-match.s b/gas/testsuite/gas/mips/pcrel-hilo-match.s new file mode 100644 index 0000000..dfc8a80 --- /dev/null +++ b/gas/testsuite/gas/mips/pcrel-hilo-match.s @@ -0,0 +1,81 @@ + .module mips64r6 + + .align 2 + .globl _pinit + .ent _pinit +_pinit: + lw $3,8($23) + li $5,1 +10: auipc $2,%pcrel_hi(__var1) + ori $3,$3,0x1 +11: auipc $4,%pcrel_hi(var4) + sw $3,8($23) +12: addiu $4,$4,%pcrel_lo(var4 + (12b - 11b)) +13: auipc $3,%pcrel_hi(var5) +14: sw $5,%pcrel_lo(__var1 + (14b - 10b))($2) +15: auipc $19,%pcrel_hi(hilo_match) +16: auipc $2,%pcrel_hi(__var3) +17: sw $5,%pcrel_lo(var5 + (17b - 13b))($3) +18: auipc $25,%pcrel_hi(func4) +19: sw $5,%pcrel_lo(__var3 + (19b - 16b))($2) +20: jialc $25,%pcrel_lo(func4 + (20b - 18b)) +21: lw $17,%pcrel_lo(hilo_match + (21b - 15b))($19) +22: auipc $2,%pcrel_hi(var6) +23: auipc $3,%pcrel_hi(var6+704) +24: addiu $16,$2,%pcrel_lo(var6 + (24b - 22b)) +25: addiu $18,$3,%pcrel_lo(var6+704 + (25b - 23b)) +26: auipc $19,%pcrel_hi(hilo_match) +28: auipc $25,%pcrel_hi(func3) +27: sw $2,%pcrel_lo(hilo_match + (27b - 26b))($19) +29: jialc $25,%pcrel_lo(func3 + (29b - 28b)) + .end _pinit + .size _pinit, .-_pinit + + .align 2 + .weak __var3 + .section .sbss,"aw",@nobits + .align 2 + .type __var3, @object + .size __var3, 4 +__var3: + .space 4 + .weak __var1 + .align 2 + .type __var1, @object + .size __var1, 4 +__var1: + .space 4 + .data + .align 2 + .weak __hilo_match + .align 2 + .type __hilo_match, @object + .size __hilo_match, 4 +__hilo_match: + .space 4 + .data + .align 2 + .align 2 + .type var2, @object + .size var2, 32 +var2: + .word 0 + .word -1 + .word 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .word 0 + .word 0 + .half 0 + .space 6 + .align 2 + .rdata + .align 2 + .space 8 + .local var5 + .comm var5,4,4 + .align 2 + .local var6 + .comm var6,704,4 diff --git a/gas/testsuite/gas/mips/pcrel-hilo-n32.d b/gas/testsuite/gas/mips/pcrel-hilo-n32.d new file mode 100644 index 0000000..aed204a --- /dev/null +++ b/gas/testsuite/gas/mips/pcrel-hilo-n32.d @@ -0,0 +1,31 @@ +#readelf: -r +#name: MIPSr6 PCHI16/PCLO16 relocations (n32) +#as: -mabi=n32 -march=mips64r6 -mno-pdr +#source: pcrel-hilo.s + +Relocation section '\.rela\.text' at offset .+ contains 24 entries: + Offset Info Type Sym\.Value Sym\. Name \+ Addend +00000000 00000840 R_MIPS_PCHI16 00000000 bar \+ 7fec +00000004 00000905 R_MIPS_HI16 00000000 baz \+ 0 +00000008 00000840 R_MIPS_PCHI16 00000000 bar \+ 7ff8 +0000000c 00000840 R_MIPS_PCHI16 00000000 bar \+ fff0 +00000010 00000841 R_MIPS_PCLO16 00000000 bar \+ 7ffc +00000014 00000906 R_MIPS_LO16 00000000 baz \+ 0 +00000018 00000841 R_MIPS_PCLO16 00000000 bar \+ 8008 +0000001c 00000841 R_MIPS_PCLO16 00000000 bar \+ 10000 +00000020 00000840 R_MIPS_PCHI16 00000000 bar \+ 800c +00000024 00000905 R_MIPS_HI16 00000000 baz \+ 0 +00000028 00000840 R_MIPS_PCHI16 00000000 bar \+ 8018 +0000002c 00000840 R_MIPS_PCHI16 00000000 bar \+ 10010 +00030030 00000841 R_MIPS_PCLO16 00000000 bar \+ 3801c +00030034 00000906 R_MIPS_LO16 00000000 baz \+ 0 +00030038 00000841 R_MIPS_PCLO16 00000000 bar \+ 38028 +0003003c 00000841 R_MIPS_PCLO16 00000000 bar \+ 40020 +00030040 00000841 R_MIPS_PCLO16 00000000 bar \+ 3802c +00030044 00000906 R_MIPS_LO16 00000000 baz \+ 0 +00030048 00000841 R_MIPS_PCLO16 00000000 bar \+ 38038 +0003004c 00000841 R_MIPS_PCLO16 00000000 bar \+ 40030 +00030050 00000840 R_MIPS_PCHI16 00000000 bar \+ 3803c +00030054 00000905 R_MIPS_HI16 00000000 baz \+ 0 +00030058 00000840 R_MIPS_PCHI16 00000000 bar \+ 38048 +0003005c 00000840 R_MIPS_PCHI16 00000000 bar \+ 40040 diff --git a/gas/testsuite/gas/mips/pcrel-hilo.d b/gas/testsuite/gas/mips/pcrel-hilo.d new file mode 100644 index 0000000..a96e4f2 --- /dev/null +++ b/gas/testsuite/gas/mips/pcrel-hilo.d @@ -0,0 +1,30 @@ +#readelf: -r +#name: MIPSr6 PCHI16/PCLO16 relocations (o32) +#as: -mabi=32 -mno-pdr + +Relocation section '\.rel\.text' at offset .+ contains 24 entries: + Offset Info Type Sym\.Value Sym\. Name +00030050 00000840 R_MIPS_PCHI16 00000000 bar +00000000 00000840 R_MIPS_PCHI16 00000000 bar +00000010 00000841 R_MIPS_PCLO16 00000000 bar +00000004 00000905 R_MIPS_HI16 00000000 baz +00000014 00000906 R_MIPS_LO16 00000000 baz +00030058 00000840 R_MIPS_PCHI16 00000000 bar +00000028 00000840 R_MIPS_PCHI16 00000000 bar +00000008 00000840 R_MIPS_PCHI16 00000000 bar +00000018 00000841 R_MIPS_PCLO16 00000000 bar +0003005c 00000840 R_MIPS_PCHI16 00000000 bar +0000002c 00000840 R_MIPS_PCHI16 00000000 bar +0000000c 00000840 R_MIPS_PCHI16 00000000 bar +0000001c 00000841 R_MIPS_PCLO16 00000000 bar +00000020 00000840 R_MIPS_PCHI16 00000000 bar +00030030 00000841 R_MIPS_PCLO16 00000000 bar +00000024 00000905 R_MIPS_HI16 00000000 baz +00030034 00000906 R_MIPS_LO16 00000000 baz +00030038 00000841 R_MIPS_PCLO16 00000000 bar +0003003c 00000841 R_MIPS_PCLO16 00000000 bar +00030040 00000841 R_MIPS_PCLO16 00000000 bar +00030054 00000905 R_MIPS_HI16 00000000 baz +00030044 00000906 R_MIPS_LO16 00000000 baz +00030048 00000841 R_MIPS_PCLO16 00000000 bar +0003004c 00000841 R_MIPS_PCLO16 00000000 bar diff --git a/gas/testsuite/gas/mips/pcrel-hilo.s b/gas/testsuite/gas/mips/pcrel-hilo.s new file mode 100644 index 0000000..4a8278f --- /dev/null +++ b/gas/testsuite/gas/mips/pcrel-hilo.s @@ -0,0 +1,48 @@ + .module mips64r6 + + .text + .align 16 + .globl foo + .ent foo +foo: +0: auipc $4, %pcrel_hi(bar + 0x7fec) +1: lui $5, %hi(baz) +2: auipc $6, %pcrel_hi(bar + 0x7ff8) +3: auipc $7, %pcrel_hi(bar + 0xfff0) +4: addiu $4, %pcrel_lo(bar + 0x7fec + (4b - 0b)) +5: addiu $5, %lo(baz) +6: addiu $6, %pcrel_lo(bar + 0x7ff8 + (6b - 2b)) +7: addiu $7, %pcrel_lo(bar + 0xfff0 + (7b - 3b)) +10: auipc $4, %pcrel_hi(bar + 0x800c) +11: lui $5, %hi(baz) +12: auipc $6, %pcrel_hi(bar + 0x8018) +13: auipc $7, %pcrel_hi(bar + 0x10010) + .rept 49152 + nop + .endr +14: addiu $4, %pcrel_lo(bar + 0x800c + (14b - 10b)) +15: addiu $5, %lo(baz) +16: addiu $6, %pcrel_lo(bar + 0x8018 + (16b - 12b)) +17: addiu $7, %pcrel_lo(bar + 0x10010 + (17b - 13b)) +24: addiu $16, $0, %pcrel_lo(bar + 0x3803c + (24b - 20f)) +25: addiu $17, $0, %lo(baz) +26: addiu $18, $0, %pcrel_lo(bar + 0x38048 + (26b - 22f)) +27: addiu $19, $0, %pcrel_lo(bar + 0x40040 + (27b - 23f)) +20: auipc $4, %pcrel_hi(bar + 0x3803c) +21: lui $5, %hi(baz) +22: auipc $6, %pcrel_hi(bar + 0x38048) +23: auipc $7, %pcrel_hi(bar + 0x40040) + addu $4, $4, $16 + addu $5, $5, $17 + addu $6, $6, $18 + addu $7, $7, $19 + jrc $31 + .end foo + + .data + .align 16 + .globl bar + .type bar, @object +bar: + .space 0x18000 + .size bar, . - bar diff --git a/gas/testsuite/gas/mips/pr19977.d b/gas/testsuite/gas/mips/pr19977.d new file mode 100644 index 0000000..5b8d60c --- /dev/null +++ b/gas/testsuite/gas/mips/pr19977.d @@ -0,0 +1,30 @@ +#name: pr19977 +#as: -32 +#objdump: -dr + +.* + +Disassembly of section \.text: + +0+ <foo>: + 0: .* li v1,4387 + 0: R_(|MICRO)MIPS(|16)_TLS_TPREL_HI16 \$loc0 + 4: .* sll .* + 8: .* addiu v1(|,v1),-26232 + 8: R_(|MICRO)MIPS(|16)_TLS_TPREL_LO16 \$loc0 + c: .* li v1,4387 + c: R_(|MICRO)MIPS(|16)_TLS_DTPREL_HI16 \$loc0 + 10: .* sll .* + 14: .* addiu v1(|,v1),-26232 + 14: R_(|MICRO)MIPS(|16)_TLS_DTPREL_LO16 \$loc0 + 18: .* li v1,4386 + 18: R_(|MICRO)MIPS(|16)_TLS_TPREL_HI16 \.tdata + 1c: .* sll .* + 20: .* addiu v1(|,v1),6536 + 20: R_(|MICRO)MIPS(|16)_TLS_TPREL_LO16 \.tdata + 24: .* li v1,4386 + 24: R_(|MICRO)MIPS(|16)_TLS_DTPREL_HI16 \.tdata + 28: .* sll .* + 2c: .* addiu v1(|,v1),6536 + 2c: R_(|MICRO)MIPS(|16)_TLS_DTPREL_LO16 \.tdata +#pass diff --git a/gas/testsuite/gas/mips/pr19977.s b/gas/testsuite/gas/mips/pr19977.s new file mode 100644 index 0000000..1d1ab36 --- /dev/null +++ b/gas/testsuite/gas/mips/pr19977.s @@ -0,0 +1,21 @@ + .text +foo: + li $3,%tprel_hi($loc0+0x11229988) + sll $3,16 + addiu $3,%tprel_lo($loc0+0x11229988) + + li $3,%dtprel_hi($loc0+0x11229988) + sll $3,16 + addiu $3,%dtprel_lo($loc0+0x11229988) + + li $3,%tprel_hi(.tdata+0x11221988) + sll $3,16 + addiu $3,%tprel_lo(.tdata+0x11221988) + + li $3,%dtprel_hi(.tdata+0x11221988) + sll $3,16 + addiu $3,%dtprel_lo(.tdata+0x11221988) + + .section .tdata,"awT",%progbits +$loc0: + .word 0 diff --git a/gdb/MAINTAINERS b/gdb/MAINTAINERS index 79b2233..9284c46 100644 --- a/gdb/MAINTAINERS +++ b/gdb/MAINTAINERS @@ -608,6 +608,7 @@ Raoul Gough RaoulGough@yahoo.co.uk Anthony Green green@redhat.com Matthew Green mrg@eterna.com.au Matthew Gretton-Dann matthew.gretton-dann@arm.com +Aaron Griffith aargri@gmail.com Maxim Grigoriev maxim2405@gmail.com Jerome Guitton guitton@act-europe.fr Alexandra Hájková ahajkova@redhat.com diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index dcb7e7b..b50a7c3 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -4800,7 +4800,7 @@ static int i386_record_floats (struct gdbarch *gdbarch, static int i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, - int opcode, struct gdbarch *gdbarch) + struct gdbarch *gdbarch) { /* We need this to find YMM (and once AVX-512 is supported, ZMM) registers. We should always save the largest available register, since an @@ -4814,6 +4814,11 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, SCOPE_EXIT { inferior_thread ()->set_executing (true); }; inferior_thread () -> set_executing (false); + uint8_t opcode; + if (record_read_memory (gdbarch, ir->addr, &opcode, 1)) + return -1; + ir->addr++; + switch (opcode) { case 0x10: /* VMOVS[S|D] XMM, mem. */ @@ -4854,12 +4859,6 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, i386_record_lea_modrm (ir); } break; - case 0x14: /* VUNPCKL[PS|PD]. */ - case 0x15: /* VUNPCKH [PS|PD]. */ - i386_record_modrm (ir); - record_full_arch_list_add_reg (ir->regcache, - tdep->ymm0_regnum + ir->reg + vex_r * 8); - break; case 0x6e: /* VMOVD XMM, reg/mem */ /* This is moving from a regular register or memory region into an XMM register. */ @@ -4989,6 +4988,27 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, } break; + case 0x19: /* VBROADCASTSD and VEXTRACTF128. */ + case 0x39: /* VEXTRACTI128. */ + i386_record_modrm (ir); + /* vextract instructions use ModRM.R/M and VEX.B to address the + output register, while vbroadcast use ModRM.Reg and VEX.R. + They are differentiated through map_select. */ + if (ir->map_select == 2) + record_full_arch_list_add_reg (ir->regcache, + tdep->ymm0_regnum + ir->reg + + 8 * vex_r); + else + record_full_arch_list_add_reg (ir->regcache, + tdep->ymm0_regnum + ir->rm + + 8 * ir->rex_b); + break; + + case 0x18: /* VBROADCASTSS and VINSERTI128. */ + case 0x20: /* VPINSRB. */ + case 0x21: /* VINSERTPS. */ + case 0x22: /* VINSR[D|Q]. */ + case 0x38: /* VINSERTF128. */ case 0x60: /* VPUNPCKLBW */ case 0x61: /* VPUNPCKLWD */ case 0x62: /* VPUNPCKLDQ */ @@ -4997,6 +5017,7 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, case 0x69: /* VPUNPCKHWD */ case 0x6a: /* VPUNPCKHDQ */ case 0x6d: /* VPUNPCKHQDQ */ + case 0xc4: /* VPINSRW. */ { i386_record_modrm (ir); int reg_offset = ir->reg + vex_r * 8; @@ -5005,6 +5026,61 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, } break; + case 0x14: /* VPEXTRB and VUNPCKL[PS|PD]. */ + case 0x15: /* VPEXTRW (to memory) and VUNPCKH [PS|PD]. */ + case 0x16: /* VPEXTR[D|Q], VPERMPS, VMOVLHPS and VMOVHP[S|D] to reg. */ + { + i386_record_modrm (ir); + /* All vpextr instructions in this case use map_select == 3, + while vpermps has map_select == 2 and the other instructions + have map_select == 1. The opcode 0xc5 is for vpextr, but also + uses map_select == 1, but due to other inconsistencies with + the other vpextr instructions, it is in a separate case to + avoid making this even more of a mess. */ + if (ir->map_select == 3) + { + if (ir->mod == 3) + { + /* ModRM.Mod being equal to 3 means this ModRM encodes + a register. */ + record_full_arch_list_add_reg (ir->regcache, + ir->regmap[X86_RECORD_REAX_REGNUM + + ir->rm]); + } + else + { + /* Even though the test only generated ModRM.Mod == 0, + in theory all values != 3 are viable to encode a memory + address, so all of them are passed along. */ + /* Size is mostly based on the opcode, except for + double/quadword difference. */ + ir->ot = opcode - 0x14; + if (opcode == 0x16 && vex_w == 1) + ir->ot ++; + /* I'm not sure if this is the original use, but in here + rip_offset is used to indicate that the RIP pointer will + be 1 byte away from where the instruction expects it to + be, because the immediate will not have been read by the + time the address changed is calculated. */ + ir->rip_offset = 1; + i386_record_lea_modrm (ir); + } + } + else + { + record_full_arch_list_add_reg (ir->regcache, + tdep->ymm0_regnum + ir->reg + + vex_r * 8); + } + break; + } + case 0xc5: /* VPEXTRW to register. */ + i386_record_modrm (ir); + record_full_arch_list_add_reg (ir->regcache, + ir->regmap[X86_RECORD_REAX_REGNUM + + ir->reg]); + break; + case 0x74: /* VPCMPEQB */ case 0x75: /* VPCMPEQB */ case 0x76: /* VPCMPEQB */ @@ -5016,17 +5092,96 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, } break; - case 0x78: /* VPBROADCASTB */ - case 0x79: /* VPBROADCASTW */ + case 0x71: /* VPS[LL|RA|RL]W with constant shift. */ + case 0x72: /* VPS[LL|RA|RL]D with constant shift. */ + case 0x73: /* VPS[LL|RL][Q|DQ] with constant shift. */ + { + record_full_arch_list_add_reg (ir->regcache, + tdep->ymm0_regnum + ir->vvvv); + break; + } + + case 0x2c: /* VCVTTSD2SI and VCVTTSS2SI. */ + case 0x2d: /* VCVTSD2SI and VCVTSS2SI. */ + i386_record_modrm (ir); + record_full_arch_list_add_reg (ir->regcache, + ir->regmap[X86_RECORD_REAX_REGNUM + + ir->reg]); + break; + + case 0x17: /* VEXTRACTPS and VMOVHP[S|D] to memory. */ + case 0x13: /* VMOVLPD to memory. */ + i386_record_modrm (ir); + if (ir->map_select == 1) /* This is the VMOV family. */ + { + ir->ot = 3; + i386_record_lea_modrm (ir); + } + else + record_full_arch_list_add_reg (ir->regcache, + ir->regmap[X86_RECORD_REAX_REGNUM + + ir->rm]); + break; + + case 0x00: /* VSHUFB and VPERMQ. */ + case 0x01: /* VPERMPD. */ + case 0x02: /* VPBLENDD. */ + case 0x04: /* VPERMILPS with immediate. */ + case 0x05: /* VPERMILPD with immediate. */ + case 0x06: /* VMPERM2F128. */ + case 0x0c: /* VPERMILPS with register and VBLENDPS. */ + case 0x0d: /* VPERMILPD with register and VBLENDPD. */ + case 0x0e: /* VPBLENDW. */ + case 0x12: /* VMOVDDUP, VMOVHLPS and VMOVLPD to register. */ + case 0x1a: /* VBROADCASTF128. */ + case 0x2a: /* VCVTSI2SS. */ + case 0x2b: /* VPACKUSDW. */ + case 0x36: /* VPERMD. */ + case 0x40: /* VPMULLD */ + case 0x46: /* VPERM2I128. */ + case 0x4a: /* VBLENDVPS. */ + case 0x4b: /* VBLENDVPD. */ + case 0x4c: /* VPBLENDVB. */ + case 0x57: /* VXORP[S|D] */ case 0x58: /* VPBROADCASTD and VADD[P|S][S|D] */ case 0x59: /* VPBROADCASTQ and VMUL[P|S][S|D] */ + case 0x5a: /* VCVTPS2PD, VCVTSD2SS, VCVTSS2SD and VCVTPD2PS. */ + case 0x5b: /* VCVTDQ2PS, VCVTTPS2PD and VCVTPS2DQ. */ case 0x5c: /* VSUB[P|S][S|D] */ case 0x5d: /* VMIN[P|S][S|D] */ case 0x5e: /* VDIV[P|S][S|D] */ case 0x5f: /* VMAX[P|S][S|D] */ + case 0x63: /* VPACKSSWB. */ + case 0X67: /* VPACKUSWB. */ + case 0x6b: /* VPACKSSDW. */ + case 0x70: /* VPSHUF[B|D|HW|LW]. */ + case 0x78: /* VPBROADCASTB */ + case 0x79: /* VPBROADCASTW */ + case 0xc6: /* VSHUFP[S|D]. */ + case 0xd1: /* VPSRLW, dynamic shift. */ + case 0xd2: /* VPSRLD, dynamic shift. */ + case 0xd3: /* VPSRLQ, dynamic shift. */ + case 0xd4: /* VPADDQ */ + case 0xd5: /* VPMULLW */ + case 0xdb: /* VPAND */ + case 0xdf: /* VPANDN */ + case 0xe1: /* VPSRAW, dynamic shift. */ + case 0xe2: /* VPSRAD, dynamic shift. */ + case 0xe4: /* VPMULHUW */ + case 0xe5: /* VPMULHW */ + case 0xe6: /* VCVTDQ2PD, VCVTTPD2DQ and VCVTPD2DQ. */ + case 0xf1: /* VPSLLW, dynamic shift. */ + case 0xf2: /* VPSLLD, dynamic shift. */ + case 0xf3: /* VPSLLQ, dynamic shift. */ + case 0xf4: /* VPMULUDQ */ + case 0xf6: /* VPSADBW. */ + case 0xfc: /* VPADDB */ + case 0xfd: /* VPADDW */ + case 0xfe: /* VPADDD */ { - /* vpbroadcast and arithmetic operations are differentiated - by map_select, but it doesn't change the recording mechanics. */ + /* This set of instructions all share the same exact way to encode + the destination register, so there's no reason to try and + differentiate them. */ i386_record_modrm (ir); int reg_offset = ir->reg + vex_r * 8; gdb_assert (tdep->num_ymm_regs > reg_offset); @@ -5035,6 +5190,17 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, } break; + case 0x2e: /* VUCOMIS[S|D]. */ + case 0x2f: /* VCOMIS[S|D]. */ + { + /* Despite what the manual implies, saying that the first register + will be written to, actual testing shows that the only register + changed is EFLAGS. */ + record_full_arch_list_add_reg (ir->regcache, + ir->regmap[X86_RECORD_EFLAGS_REGNUM]); + break; + } + case 0x77:/* VZEROUPPER */ { int num_regs = tdep->num_ymm_regs; @@ -5127,8 +5293,11 @@ i386_process_record (struct gdbarch *gdbarch, struct regcache *regcache, "addr = %s\n", paddress (gdbarch, ir.addr)); - /* prefixes */ - while (1) + /* Process the prefixes. This used to be an infinite loop, but since + a VEX prefix is always the last one before the opcode, according to + Intel's manual anyway, and some AVX opcodes may conflict with + prefixes, it's safe to leave the loop as soon as we see VEX. */ + while (!vex_prefix) { if (record_read_memory (gdbarch, ir.addr, &opcode8, 1)) return -1; @@ -5268,7 +5437,7 @@ i386_process_record (struct gdbarch *gdbarch, struct regcache *regcache, { /* If we found the VEX prefix, i386 will either record or warn that the instruction isn't supported, so we can return the VEX result. */ - return i386_record_vex (&ir, rex_w, rex_r, opcode, gdbarch); + return i386_record_vex (&ir, rex_w, rex_r, gdbarch); } reswitch: switch (opcode) diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c index f18d9a2..13623fc 100644 --- a/gdb/solib-dsbt.c +++ b/gdb/solib-dsbt.c @@ -19,7 +19,6 @@ #include "extract-store-integer.h" #include "inferior.h" -#include "gdbcore.h" #include "solib.h" #include "objfiles.h" #include "symtab.h" diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c index 6165d0b..b48efe5 100644 --- a/gdb/solib-frv.c +++ b/gdb/solib-frv.c @@ -18,7 +18,6 @@ #include "extract-store-integer.h" -#include "gdbcore.h" #include "solib.h" #include "frv-tdep.h" #include "objfiles.h" diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c index 9b4cabf..e454254 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c @@ -3582,7 +3582,10 @@ find_debug_base_for_solib (const solib *solib) if (solib == nullptr) return 0; - svr4_info *info = get_svr4_info (current_program_space); + /* This is always called for solibs with an associated objfile. */ + gdb_assert (solib->objfile != nullptr); + + svr4_info *info = get_svr4_info (solib->objfile->pspace ()); gdb_assert (info != nullptr); auto *lm_info diff --git a/gdb/solib.c b/gdb/solib.c index e43b1a3..676688b 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -62,8 +62,8 @@ show_solib_search_path (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) { gdb_printf (file, - _ ("The search path for loading non-absolute " - "shared library symbol files is %s.\n"), + _("The search path for loading non-absolute " + "shared library symbol files is %s.\n"), value); } @@ -420,7 +420,7 @@ solib_bfd_fopen (const char *pathname, int fd) if (abfd == NULL) { /* Arrange to free PATHNAME when the error is thrown. */ - error (_ ("Could not open `%s' as an executable file: %s"), pathname, + error (_("Could not open `%s' as an executable file: %s"), pathname, bfd_errmsg (bfd_get_error ())); } @@ -453,14 +453,14 @@ solib_bfd_open (const char *pathname) /* Check bfd format. */ if (!bfd_check_format (abfd.get (), bfd_object)) - error (_ ("`%s': not in executable format: %s"), + error (_("`%s': not in executable format: %s"), bfd_get_filename (abfd.get ()), bfd_errmsg (bfd_get_error ())); /* Check bfd arch. */ b = gdbarch_bfd_arch_info (current_inferior ()->arch ()); if (!b->compatible (b, bfd_get_arch_info (abfd.get ()))) - error (_ ("`%s': Shared library architecture %s is not compatible " - "with target architecture %s."), + error (_("`%s': Shared library architecture %s is not compatible " + "with target architecture %s."), bfd_get_filename (abfd.get ()), bfd_get_arch_info (abfd.get ())->printable_name, b->printable_name); @@ -534,7 +534,7 @@ solib_map_sections (solib &so) if (abfd == nullptr && mismatch) { - warning (_ ("Build-id of %ps does not match core file."), + warning (_("Build-id of %ps does not match core file."), styled_string (file_name_style.style (), filename.get ())); abfd = nullptr; @@ -658,8 +658,8 @@ solib_read_symbols (solib &so, symfile_add_flags flags) catch (const gdb_exception_error &e) { exception_fprintf (gdb_stderr, e, - _ ("Error while reading shared" - " library symbols for %s:\n"), + _("Error while reading shared" + " library symbols for %s:\n"), so.name.c_str ()); } @@ -843,8 +843,8 @@ update_solib_list (int from_tty) catch (const gdb_exception_error &e) { exception_fprintf (gdb_stderr, e, - _ ("Error while mapping shared " - "library sections:\n")); + _("Error while mapping shared " + "library sections:\n")); } /* Notify any observer that the shared object has been @@ -863,15 +863,15 @@ update_solib_list (int from_tty) stand out well. */ if (not_found == 1) - warning (_ ("Could not load shared library symbols for %ps.\n" - "Do you need \"%ps\" or \"%ps\"?"), + warning (_("Could not load shared library symbols for %ps.\n" + "Do you need \"%ps\" or \"%ps\"?"), styled_string (file_name_style.style (), not_found_filename), styled_string (command_style.style (), "set solib-search-path"), styled_string (command_style.style (), "set sysroot")); else if (not_found > 1) - warning (_ ("\ + warning (_("\ Could not load shared library symbols for %d libraries, e.g. %ps.\n\ Use the \"%ps\" command to see the complete listing.\n\ Do you need \"%ps\" or \"%ps\"?"), @@ -929,11 +929,11 @@ solib_add (const char *pattern, int from_tty, int readsyms) { if (pattern != NULL) { - gdb_printf (_ ("Loading symbols for shared libraries: %s\n"), + gdb_printf (_("Loading symbols for shared libraries: %s\n"), pattern); } else - gdb_printf (_ ("Loading symbols for shared libraries.\n")); + gdb_printf (_("Loading symbols for shared libraries.\n")); } current_program_space->solib_add_generation++; @@ -943,7 +943,7 @@ solib_add (const char *pattern, int from_tty, int readsyms) char *re_err = re_comp (pattern); if (re_err) - error (_ ("Invalid regexp: %s"), re_err); + error (_("Invalid regexp: %s"), re_err); } update_solib_list (from_tty); @@ -977,7 +977,7 @@ solib_add (const char *pattern, int from_tty, int readsyms) /* If no pattern was given, be quiet for shared libraries we have already loaded. */ if (pattern && (from_tty || info_verbose)) - gdb_printf (_ ("Symbols already loaded for %ps\n"), + gdb_printf (_("Symbols already loaded for %ps\n"), styled_string (file_name_style.style (), gdb.name.c_str ())); } @@ -1097,8 +1097,8 @@ print_solib_list_table (std::vector<const solib *> solib_list, } if (so_missing_debug_info) - uiout->message (_ ("(*): Shared library is missing " - "debugging information.\n")); + uiout->message (_("(*): Shared library is missing " + "debugging information.\n")); } /* Implement the "info sharedlibrary" command. Walk through the @@ -1116,7 +1116,7 @@ info_sharedlibrary_command (const char *pattern, int from_tty) char *re_err = re_comp (pattern); if (re_err) - error (_ ("Invalid regexp: %s"), re_err); + error (_("Invalid regexp: %s"), re_err); } update_solib_list (from_tty); @@ -1140,9 +1140,9 @@ info_sharedlibrary_command (const char *pattern, int from_tty) if (print_libs.size () == 0) { if (pattern) - uiout->message (_ ("No shared libraries matched.\n")); + uiout->message (_("No shared libraries matched.\n")); else - uiout->message (_ ("No shared libraries loaded at this time.\n")); + uiout->message (_("No shared libraries loaded at this time.\n")); } } @@ -1173,7 +1173,7 @@ info_linker_namespace_command (const char *pattern, int from_tty) if (pattern == nullptr || pattern[0] == '\0') { - uiout->message (_ ("There are %d linker namespaces loaded\n"), + uiout->message (_("There are %d linker namespaces loaded\n"), ops->num_active_namespaces ()); int printed = 0; @@ -1203,7 +1203,7 @@ info_linker_namespace_command (const char *pattern, int from_tty) char * end = nullptr; ns = strtol (pattern, &end, 10); if (end[0] != '\0') - error (_ ("Invalid linker namespace identifier: %s"), pattern); + error (_("Invalid linker namespace identifier: %s"), pattern); } all_solibs_to_print.push_back @@ -1228,10 +1228,10 @@ info_linker_namespace_command (const char *pattern, int from_tty) break; } uiout->message - (_ ("There are %zu libraries loaded in linker namespace [[%d]]\n"), + (_("There are %zu libraries loaded in linker namespace [[%d]]\n"), solibs_to_print.size (), ns); uiout->message - (_ ("Displaying libraries for linker namespace [[%d]]:\n"), ns); + (_("Displaying libraries for linker namespace [[%d]]:\n"), ns); print_solib_list_table (solibs_to_print, false); } @@ -1402,7 +1402,7 @@ static void reload_shared_libraries_1 (int from_tty) { if (print_symbol_loading_p (from_tty, 0, 0)) - gdb_printf (_ ("Loading symbols for shared libraries.\n")); + gdb_printf (_("Loading symbols for shared libraries.\n")); for (solib &so : current_program_space->solibs ()) { @@ -1449,8 +1449,8 @@ reload_shared_libraries_1 (int from_tty) catch (const gdb_exception_error &e) { exception_fprintf (gdb_stderr, e, - _ ("Error while mapping " - "shared library sections:\n")); + _("Error while mapping " + "shared library sections:\n")); got_error = true; } @@ -1530,9 +1530,9 @@ gdb_sysroot_changed (const char *ignored, int from_tty, if (!warning_issued) { - warning (_ ("\"%s\" is deprecated, use \"%s\" instead."), old_prefix, + warning (_("\"%s\" is deprecated, use \"%s\" instead."), old_prefix, new_prefix); - warning (_ ("sysroot set to \"%s\"."), gdb_sysroot.c_str ()); + warning (_("sysroot set to \"%s\"."), gdb_sysroot.c_str ()); warning_issued = true; } @@ -1545,7 +1545,7 @@ static void show_auto_solib_add (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) { - gdb_printf (file, _ ("Autoloading of shared library symbols is %s.\n"), + gdb_printf (file, _("Autoloading of shared library symbols is %s.\n"), value); } @@ -1861,23 +1861,23 @@ INIT_GDB_FILE (solib) add_com ( "sharedlibrary", class_files, sharedlibrary_command, - _ ("Load shared object library symbols for files matching REGEXP.")); + _("Load shared object library symbols for files matching REGEXP.")); cmd_list_element *info_sharedlibrary_cmd = add_info ("sharedlibrary", info_sharedlibrary_command, - _ ("Status of loaded shared object libraries.")); + _("Status of loaded shared object libraries.")); add_info_alias ("dll", info_sharedlibrary_cmd, 1); add_com ("nosharedlibrary", class_files, no_shared_libraries_command, - _ ("Unload all shared object library symbols.")); + _("Unload all shared object library symbols.")); add_info ("linker-namespaces", info_linker_namespace_command, - _ ("Get information about linker namespaces in the inferior.")); + _("Get information about linker namespaces in the inferior.")); add_setshow_boolean_cmd ("auto-solib-add", class_support, &auto_solib_add, - _ ("\ + _("\ Set autoloading of shared library symbols."), - _ ("\ + _("\ Show autoloading of shared library symbols."), - _ ("\ + _("\ If \"on\", symbols from all shared object libraries will be loaded\n\ automatically when the inferior begins execution, when the dynamic linker\n\ informs gdb that a new library has been loaded, or when attaching to the\n\ @@ -1887,11 +1887,11 @@ inferior. Otherwise, symbols must be loaded manually, using \ set_show_commands sysroot_cmds = add_setshow_optional_filename_cmd ("sysroot", class_support, - &gdb_sysroot, _ ("\ + &gdb_sysroot, _("\ Set an alternate system root."), - _ ("\ + _("\ Show the current system root."), - _ ("\ + _("\ The system root is used to load absolute shared library symbol files.\n\ For other (relative) files, you can add directories using\n\ `set solib-search-path'."), @@ -1904,22 +1904,22 @@ For other (relative) files, you can add directories using\n\ &showlist); add_setshow_optional_filename_cmd ("solib-search-path", class_support, - &solib_search_path, _ ("\ + &solib_search_path, _("\ Set the search path for loading non-absolute shared library symbol files."), - _ ("\ + _("\ Show the search path for loading non-absolute shared library symbol files."), - _ ("\ + _("\ This takes precedence over the environment variables \ PATH and LD_LIBRARY_PATH."), reload_shared_libraries, show_solib_search_path, &setlist, &showlist); - add_setshow_boolean_cmd ("solib", class_maintenance, &debug_solib, _ ("\ + add_setshow_boolean_cmd ("solib", class_maintenance, &debug_solib, _("\ Set solib debugging."), - _ ("\ + _("\ Show solib debugging."), - _ ("\ + _("\ When true, solib-related debugging output is enabled."), nullptr, nullptr, &setdebuglist, &showdebuglist); } diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.c b/gdb/testsuite/gdb.reverse/i386-avx-reverse.c index f559d69..a3d6427 100644 --- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.c +++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.c @@ -30,6 +30,18 @@ char global_buf1[] = {0, 0, 0, 0, 0, 0, 0, 0, char *dyn_buf0; char *dyn_buf1; + /* Zero memory regions again, so that future tests can update them + without worry. */ +void +reset_buffers () +{ + for (int i = 0; i < 32; i++) + { + global_buf1[i] = 0; + dyn_buf1[i] = 0; + } +} + int vmov_test () { @@ -168,6 +180,22 @@ vmov_test () asm volatile ("vmovapd %%xmm0, %0" : : "m"(*dyn_buf1)); asm volatile ("vmovaps %%ymm15, %0" : : "m"(*dyn_buf1)); + /* Testing vmov[hl|lh]ps and vmov[h|l]pd. */ + asm volatile ("vmovhlps %xmm1, %xmm8, %xmm0"); + asm volatile ("vmovhlps %xmm1, %xmm2, %xmm15"); + asm volatile ("vmovlhps %xmm1, %xmm8, %xmm0"); + asm volatile ("vmovlhps %xmm1, %xmm2, %xmm15"); + + asm volatile ("vmovhps %0, %%xmm1, %%xmm0" : : "m"(buf0)); + asm volatile ("vmovhps %%xmm0, %0" : "=m" (buf1)); + asm volatile ("vmovhpd %0, %%xmm1, %%xmm15" : : "m"(global_buf0)); + asm volatile ("vmovhpd %%xmm15, %0" : "=m" (global_buf1)); + asm volatile ("vmovlpd %0, %%xmm1, %%xmm15" : : "m"(*dyn_buf0)); + asm volatile ("vmovlpd %%xmm15, %0" : "=m" (*dyn_buf1)); + + asm volatile ("vmovddup %xmm1, %xmm15"); + asm volatile ("vmovddup %ymm2, %ymm0"); + /* We have a return statement to deal with epilogue in different compilers. */ return 0; /* end vmov_test */ @@ -245,7 +273,7 @@ vpunpck_test () return 0; /* end vpunpck_test */ } -/* Test if we can record vpbroadcast instructions. */ +/* Test if we can record vpbroadcast and vbroadcast instructions. */ int vpbroadcast_test () { @@ -268,6 +296,14 @@ vpbroadcast_test () asm volatile ("vpbroadcastq %xmm1, %ymm0"); asm volatile ("vpbroadcastq %xmm1, %ymm15"); + asm volatile ("vbroadcastss %xmm1, %xmm0"); + asm volatile ("vbroadcastss %xmm1, %ymm15"); + asm volatile ("vbroadcastss %0, %%ymm0" : : "m" (global_buf0)); + asm volatile ("vbroadcastss %0, %%xmm15": : "m" (dyn_buf0)); + asm volatile ("vbroadcastsd %xmm1, %ymm0"); + asm volatile ("vbroadcastsd %0, %%ymm15": : "m" (global_buf0)); + asm volatile ("vbroadcastf128 %0, %%ymm0" : : "m" (dyn_buf0)); + /* We have a return statement to deal with epilogue in different compilers. */ return 0; /* end vpbroadcast_test */ @@ -372,6 +408,7 @@ arith_test () /* Using GDB, load these values onto registers for testing. ymm0.v8_float = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5} ymm1.v8_float = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5} + ymm2.v2_int128 = {0x0, 0x0} ymm15.v2_int128 = {0x0, 0x0} this way it's easy to confirm we're undoing things correctly. */ asm volatile ("vaddps %xmm0, %xmm1, %xmm15"); @@ -416,6 +453,26 @@ arith_test () asm volatile ("vmaxss %xmm0, %xmm1, %xmm15"); asm volatile ("vmaxsd %xmm0, %xmm1, %xmm15"); + /* Some sanity checks for other arithmetic instructions. */ + asm volatile ("vpaddb %xmm0, %xmm1, %xmm2"); + asm volatile ("vpaddw %xmm0, %xmm1, %xmm15"); + asm volatile ("vpaddd %ymm0, %ymm1, %ymm2"); + asm volatile ("vpaddq %ymm0, %ymm1, %ymm15"); + + asm volatile ("vpmullw %xmm0, %xmm1, %xmm2"); + asm volatile ("vpmulld %xmm0, %xmm1, %xmm15"); + asm volatile ("vpmulhw %ymm0, %ymm1, %ymm2"); + asm volatile ("vpmulhuw %ymm0, %ymm1, %ymm15"); + asm volatile ("vpmuludq %ymm0, %ymm1, %ymm15"); + + asm volatile ("vxorps %xmm0, %xmm1, %xmm2"); + asm volatile ("vxorpd %ymm0, %ymm1, %ymm2"); + asm volatile ("vpand %xmm0, %xmm1, %xmm15"); + asm volatile ("vpandn %ymm0, %ymm1, %ymm15"); + + asm volatile ("vpsadbw %xmm0, %xmm1, %xmm2"); + asm volatile ("vpsadbw %ymm0, %ymm1, %ymm15"); + return 0; /* end arith_test */ } @@ -450,6 +507,264 @@ vaddsubps_test () } +/* Test record shifting instructions. */ +int +shift_test () +{ + /* start shift_test. */ + /* Using GDB, load these values onto registers for testing. + ymm0.v2_int128 = {0, 0} + ymm1.v16_int16 = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} + xmm2.uint128 = 1 + ymm15.v2_int128 = {0x0, 0x0} + this way it's easy to confirm we're undoing things correctly. */ + + asm volatile ("vpsllw $1, %xmm1, %xmm0"); + asm volatile ("vpsllw %xmm2, %ymm1, %ymm0"); + asm volatile ("vpslld $3, %ymm1, %ymm15"); + asm volatile ("vpslld %xmm2, %xmm1, %xmm15"); + asm volatile ("vpsllq $5, %xmm1, %xmm15"); + asm volatile ("vpsllq %xmm2, %ymm1, %ymm15"); + + asm volatile ("vpsraw $1, %xmm1, %xmm0"); + asm volatile ("vpsraw %xmm2, %ymm1, %ymm0"); + asm volatile ("vpsrad $3, %ymm1, %ymm15"); + asm volatile ("vpsrad %xmm2, %xmm1, %xmm15"); + + asm volatile ("vpsrlw $1, %xmm1, %xmm0"); + asm volatile ("vpsrlw %xmm2, %ymm1, %ymm0"); + asm volatile ("vpsrld $3, %ymm1, %ymm15"); + asm volatile ("vpsrld %xmm2, %xmm1, %xmm15"); + asm volatile ("vpsrlq $5, %xmm1, %xmm15"); + asm volatile ("vpsrlq %xmm2, %ymm1, %ymm15"); + + /* The dq version is treated separately in the manual, so + we test it separately just to be sure. */ + asm volatile ("vpslldq $1, %xmm1, %xmm0"); + asm volatile ("vpslldq $2, %ymm1, %ymm0"); + asm volatile ("vpslldq $3, %xmm1, %xmm15"); + asm volatile ("vpslldq $4, %ymm1, %ymm15"); + + asm volatile ("vpsrldq $1, %xmm1, %xmm0"); + asm volatile ("vpsrldq $2, %ymm1, %ymm0"); + asm volatile ("vpsrldq $3, %xmm1, %xmm15"); + asm volatile ("vpsrldq $4, %ymm1, %ymm15"); + + return 0; /* end shift_test */ +} + +int +shuffle_test () +{ + /* start shuffle_test. */ + /* Using GDB, load these values onto registers for testing. + ymm0.v2_int128 = {0, 0} + ymm1.v16_int16 = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} + ymm2.v16_int15 = {17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32} + ymm15.v2_int128 = {0x0, 0x0} + this way it's easy to confirm we're undoing things correctly. */ + + asm volatile ("vpshufb %xmm1, %xmm2, %xmm0"); + asm volatile ("vpshufb %ymm1, %ymm2, %ymm15"); + asm volatile ("vpshufd $1, %ymm2, %ymm0"); + asm volatile ("vpshufd $2, %xmm2, %xmm15"); + + asm volatile ("vpshufhw $3, %xmm2, %xmm0"); + asm volatile ("vpshufhw $4, %ymm2, %ymm15"); + asm volatile ("vpshuflw $5, %ymm2, %ymm0"); + asm volatile ("vpshuflw $6, %xmm2, %xmm15"); + + asm volatile ("vshufps $1, %xmm1, %xmm2, %xmm0"); + asm volatile ("vshufps $2, %ymm1, %ymm2, %ymm15"); + asm volatile ("vshufpd $4, %ymm1, %ymm2, %ymm0"); + asm volatile ("vshufpd $8, %xmm1, %xmm2, %xmm15"); + + return 0; /* end shuffle_test */ +} + +int +permute_test () +{ + /* start permute_test. */ + /* Using GDB, load these values onto registers for testing. + ymm0.v2_int128 = {0, 0} + ymm1.v16_int16 = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} + ymm2.v16_int16 = {17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32} + ymm15.v2_int128 = {0x0, 0x0} + eax = 0 + this way it's easy to confirm we're undoing things correctly. */ + asm volatile ("vperm2f128 $1, %ymm1, %ymm2, %ymm0"); + asm volatile ("vperm2f128 $0, %ymm1, %ymm2, %ymm15"); + asm volatile ("vperm2i128 $1, %ymm2, %ymm1, %ymm0"); + asm volatile ("vperm2i128 $0, %ymm2, %ymm1, %ymm15"); + + asm volatile ("vpermd %ymm1, %ymm2, %ymm0"); + asm volatile ("vpermd %ymm1, %ymm2, %ymm15"); + asm volatile ("vpermq $1, %ymm1, %ymm0"); + asm volatile ("vpermq $0, %ymm2, %ymm15"); + + asm volatile ("vpermilpd %ymm1, %ymm2, %ymm0"); + asm volatile ("vpermilpd %xmm1, %xmm2, %xmm15"); + asm volatile ("vpermilpd $1, %ymm2, %ymm15"); + asm volatile ("vpermilpd $0, %xmm2, %xmm0"); + asm volatile ("vpermilps %ymm1, %ymm2, %ymm0"); + asm volatile ("vpermilps %xmm1, %xmm2, %xmm15"); + asm volatile ("vpermilps $1, %ymm2, %ymm15"); + asm volatile ("vpermilps $0, %xmm2, %xmm0"); + + asm volatile ("vpermpd $0, %ymm1, %ymm15"); + asm volatile ("vpermpd $0, %ymm2, %ymm0"); + asm volatile ("vpermps %ymm1, %ymm2, %ymm0"); + asm volatile ("vpermps %ymm1, %ymm2, %ymm15"); + + return 0; /* end permute_test */ +} + +int +extract_insert_test () +{ + /* start extract_insert_test. */ + /* Using GDB, load these values onto registers for testing. + ymm0.v2_int128 = {0, 0} + ymm1.v16_int16 = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} + xmm2.uint128 = 0xcafe + ymm15.v2_int128 = {0x0, 0x0} + eax = 0 + this way it's easy to confirm we're undoing things correctly. */ + + asm volatile ("vinserti128 $1, %xmm2, %ymm1, %ymm0"); + asm volatile ("vinsertf128 $0, %xmm2, %ymm1, %ymm15"); + asm volatile ("vextracti128 $1, %ymm1, %xmm0"); + asm volatile ("vextractf128 $0, %ymm1, %xmm15"); + asm volatile ("vinsertps $16, %xmm2, %xmm1, %xmm0"); + asm volatile ("vextractps $0, %xmm2, %rax"); + + asm volatile ("vpextrb $5, %xmm1, %rax"); + asm volatile ("vpextrb $4, %%xmm1, %0" : "=m" (global_buf1)); + asm volatile ("vpextrd $3, %xmm1, %eax"); + asm volatile ("vpextrd $2, %%xmm1, %0" : "=m" (global_buf1)); + asm volatile ("vpextrq $1, %xmm1, %rax"); + asm volatile ("vpextrq $0, %%xmm1, %0" : "=m" (global_buf1)); + + asm volatile ("vpinsrb $3, %rax, %xmm2, %xmm0"); + asm volatile ("vpinsrw $2, %eax, %xmm2, %xmm15"); + asm volatile ("vpinsrd $1, %eax, %xmm2, %xmm0"); + asm volatile ("vpinsrq $0, %rax, %xmm2, %xmm15"); + + /* vpextrw has completely different mechanics to other vpextr + instructions, so separate them for ease of testing later. */ + asm volatile ("vpextrw $1, %xmm1, %eax"); + asm volatile ("vpextrw $1, %%xmm1, %0" : "=m" (global_buf1)); + + return 0; /* end extract_insert_test */ +} + +int +blend_test () +{ + /* start blend_test. */ + /* Using GDB, load these values onto registers for testing. + ymm0.v2_int128 = {0, 0} + ymm1.v16_int16 = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} + ymm2.v16_int16 = {17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32} + ymm15.v2_int128 = {0x0, 0x0} + this way it's easy to confirm we're undoing things correctly. */ + + asm volatile ("vblendps $5, %xmm1, %xmm2, %xmm0"); + asm volatile ("vblendpd $10, %ymm1, %ymm2, %ymm15"); + asm volatile ("vblendvps %ymm15, %ymm1, %ymm2, %ymm0"); + asm volatile ("vblendvpd %xmm0, %xmm1, %xmm2, %xmm15"); + + asm volatile ("vpblendw $94, %ymm1, %ymm2, %ymm15"); + asm volatile ("vpblendw $47, %xmm1, %xmm2, %xmm0"); + asm volatile ("vpblendd $22, %ymm1, %ymm2, %ymm0"); + asm volatile ("vpblendd $11, %xmm1, %xmm2, %xmm15"); + asm volatile ("vpblendvb %xmm0, %xmm1, %xmm2, %xmm15"); + asm volatile ("vpblendvb %ymm0, %ymm1, %ymm2, %ymm0"); + + return 0; /* end blend_test */ +} + +int +compare_test () +{ + /* start compare_test. */ + /* Using GDB, load these values onto registers for testing. + xmm0.v4_float = {0, 1.5, 2, 0} + xmm1.v4_float = {0, 1, 2.5, -1} + xmm15.v4_float = {-1, -2, 10, 100} + eflags = 2 + eflags can't be set to some values, if we set it to 0, it'll + be reset to 2, so set it to that directly to make results less + confusing. + this way it's easy to confirm we're undoing things correctly. */ + + asm volatile ("vcomisd %xmm0, %xmm1"); + asm volatile ("vcomiss %xmm15, %xmm1"); + asm volatile ("vucomiss %xmm1, %xmm15"); + asm volatile ("vucomisd %xmm15, %xmm0"); + + return 0; /* end compare_test */ +} + +int +pack_test () +{ + /* start pack_test. */ + /* Using GDB, load these values onto registers for testing. + xmm0.v4_float = {0, 1.5, 2, 0} + xmm1.v4_float = {0, 1, 2.5, -1} + xmm2.v4_float = {0, 1, 2.5, -1} + xmm15.v4_float = {-1, -2, 10, 100} + this way it's easy to confirm we're undoing things correctly. */ + + asm volatile ("vpacksswb %xmm1, %xmm2, %xmm0"); + asm volatile ("vpacksswb %ymm1, %ymm2, %ymm15"); + asm volatile ("vpackssdw %xmm1, %xmm2, %xmm15"); + asm volatile ("vpackssdw %ymm1, %ymm2, %ymm0"); + asm volatile ("vpackuswb %xmm1, %xmm2, %xmm0"); + asm volatile ("vpackuswb %ymm1, %ymm2, %ymm15"); + asm volatile ("vpackusdw %xmm1, %xmm2, %xmm15"); + asm volatile ("vpackusdw %ymm1, %ymm2, %ymm0"); + + return 0; /* end pack_test */ +} + +int +convert_test () +{ + /* start convert_test. */ + /* Using GDB, load these values onto registers for testing. + xmm0.v2_int128 = {0, 0} + xmm1.v4_float = {0, 1, 2.5, 10} + xmm15.v2_int128 = {0, 0} + ecx = -1 + ebx = 0 + this way it's easy to confirm we're undoing things correctly. */ + + asm volatile ("vcvtdq2ps %xmm1, %xmm0"); + asm volatile ("vcvtdq2pd %xmm1, %xmm15"); + + asm volatile ("vcvtps2dq %xmm1, %xmm15"); + asm volatile ("vcvtps2pd %xmm1, %xmm0"); + asm volatile ("vcvtpd2ps %xmm1, %xmm15"); + asm volatile ("vcvtpd2dq %xmm1, %xmm0"); + + asm volatile ("vcvtsd2si %xmm1, %rbx"); + asm volatile ("vcvtsd2ss %xmm0, %xmm1, %xmm15"); + asm volatile ("vcvtsi2sd %rcx, %xmm1, %xmm0"); + asm volatile ("vcvtsi2ss %rcx, %xmm1, %xmm15"); + asm volatile ("vcvtss2sd %xmm15, %xmm1, %xmm0"); + asm volatile ("vcvtss2si %xmm1, %rbx"); + + asm volatile ("vcvttpd2dq %xmm1, %xmm0"); + asm volatile ("vcvttps2dq %xmm1, %xmm15"); + asm volatile ("vcvttsd2si %xmm0, %rbx"); + asm volatile ("vcvttss2si %xmm1, %ecx"); + + return 0; /* end convert_test */ +} + /* This include is used to allocate the dynamic buffer and have the pointers aligned to a 32-bit boundary, so we can test instructions that require aligned memory. */ @@ -473,6 +788,7 @@ main () asm volatile ("vmovq %0, %%xmm15": : "m" (global_buf1)); vmov_test (); + reset_buffers (); vpunpck_test (); vpbroadcast_test (); vzeroupper_test (); @@ -482,5 +798,13 @@ main () arith_test (); vaddsubpd_test (); vaddsubps_test (); + shift_test (); + shuffle_test (); + permute_test (); + extract_insert_test (); + blend_test (); + compare_test (); + pack_test (); + convert_test (); return 0; /* end of main */ } diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp index fbcff49..7e75542 100644 --- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp +++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp @@ -149,6 +149,33 @@ global decimal if {[record_full_function "vmov"] == true} { # Now execute backwards, checking all instructions. + test_one_register "vmovddup" "ymm0" \ + "0x3736353433323130c004000000000000, 0x0" + test_one_register "vmovddup" "ymm15" \ + "0x2726252423222120, 0x0" + test_one_memory "vmovlpd" "dyn_buf1" \ + "\\\{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x28" \ + true + test_one_register "vmovlpd" "ymm15" \ + "0x1716151413121110c004000000000000, 0x0" + test_one_memory "vmovhpd" "global_buf1" \ + "\\\{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18" + test_one_register "vmovhpd" "ymm15" \ + "0xc004000000000000c004000000000000, 0x0" + test_one_memory "vmovhps" "buf1" \ + "\\\{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38" + test_one_register "vmovhps" "ymm0" \ + "0xc004000000000000c004000000000000, 0x0" + + test_one_register "vmovlhps" "ymm15" \ + "0x0, 0x0" + test_one_register "vmovlhps" "ymm0" \ + "0x0, 0x0" + test_one_register "vmovhlps" "ymm15" \ + "0x2f2e2d2c2b2a29280000000000000000, 0x2f2e2d2c2b2a29282726252423222120" + test_one_register "vmovhlps" "ymm0" \ + "0x2f2e2d2c2b2a29282726252423222120, 0x0" + # Explicitly test for the start of the array, since the value repeats. test_one_memory "vmovaps" "dyn_buf1" \ "\\\{0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28" true @@ -365,6 +392,24 @@ gdb_test_no_output "set \$xmm1.v2_int64 = {0x1716151413121110, 0x1f1e1d1c1b1a191 "set xmm1 for vpbroadcast" gdb_test_no_output "set \$ymm15.v2_int128 = {0x0, 0x0}" "set xmm15 for vpbroadcast" if {[record_full_function "vpbroadcast"] == true} { + test_one_register "vbroadcastf128" "ymm0" \ + "0x17161514131211101716151413121110, 0x17161514131211101716151413121110" + test_one_register "vbroadcastsd" "ymm15" \ + "0x404060004040600040406000404060, 0x0" + test_one_register "vbroadcastsd" "ymm0" \ + "0x13121110131211101312111013121110, 0x13121110131211101312111013121110" + + test_one_register "vbroadcastss" "ymm15" \ + "0x13121110131211101312111013121110, 0x13121110131211101312111013121110" \ + "broadcast from memory" + test_one_register "vbroadcastss" "ymm0" \ + "0x13121110131211101312111013121110, 0x0" \ + "broadcast from memory" + test_one_register "vbroadcastss" "ymm15" \ + "0x17161514131211101716151413121110, 0x17161514131211101716151413121110" + test_one_register "vbroadcastss" "ymm0" \ + "0x17161514131211101716151413121110, 0x17161514131211101716151413121110" + test_one_register "vpbroadcastq" "ymm15" "0x13121110131211101312111013121110, 0x0" test_one_register "vpbroadcastq" "ymm0" "0x13121110131211101312111013121110, 0x0" @@ -527,9 +572,43 @@ gdb_test_no_output \ "set \$ymm0.v8_float = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5}" gdb_test_no_output \ "set \$ymm1.v8_float = {0, 1, 2, 3, 4, 5, 6, 7}" +gdb_test_no_output "set \$ymm2.v2_int128 = {0,0}" gdb_test_no_output "set \$ymm15.v2_int128 = {0,0}" if {[record_full_function "arith"] == true} { + test_one_register "vpsadbw" "ymm15" \ + "0x20000000200000004000003f000000, 0x100000001000000010000000100000" + test_one_register "vpsadbw" "ymm2" \ + "0x20000000200000004000003f000000, 0x100000001000000010000000100000" + test_one_register "vpandn" "ymm15" \ + "0x40400000400000003f80000000000000, 0x0" + test_one_register "vpand" "ymm15" \ + "0x10080000000000000000000000000000, 0x10649c00000000001044480000000000" + test_one_register "vxorpd" "ymm2" \ + "0x20000000200000004000003f000000, 0x0" + test_one_register "vxorps" "ymm2" \ + "0x10280000100800000fd0000000000000, 0x10740000106400001054000010440000" + + test_one_register "vpmuludq" "ymm15" \ + "0x10280000100800000fd0000000000000, 0x10740000106400001054000010440000" + test_one_register "vpmulhuw" "ymm15" \ + "0x0, 0x0" + test_one_register "vpmulhw" "ymm2" \ + "0x18000000000000002000000000000000, 0x0" + test_one_register "vpmulld" "ymm15" \ + "0x80a00000802000007f4000003f000000, 0x81d00000819000008150000081100000" + test_one_register "vpmullw" "ymm2" \ + "0x80a00000802000007f4000003f000000, 0x81d00000819000008150000081100000" + + test_one_register "vpaddq" "ymm15" \ + "0x80a00000802000007f4000003f000000, 0x0" + test_one_register "vpaddd" "ymm2" \ + "0x80a00000802000007e4000003f000000, 0x0" + test_one_register "vpaddw" "ymm15" \ + "0x40400000400000003fc000003f000000, 0x0" + test_one_register "vpaddb" "ymm2" \ + "0x0, 0x0" + test_one_register "vmaxsd" "ymm15" \ "0x40400000400000003f8000003f000000, 0x0" "ymm operation: " test_one_register "vmaxss" "ymm15" \ @@ -696,3 +775,423 @@ if {[record_full_function "vaddsubps"] == true} { } gdb_test "finish" "Run till exit from.*vaddsubps_test.*" \ "leaving vaddsubps" + +# Preparation and testing shifting instructions. +gdb_test_no_output \ + "set \$ymm0.v2_int128 = {0, 0}" "set ymm0 for shift" +gdb_test_no_output \ + "set \$ymm1.v16_int16 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}" \ + "set ymm1 for shift" +gdb_test_no_output "set \$xmm2.uint128 = 1" "set ymm2 for shift" +gdb_test_no_output "set \$ymm15.v2_int128 = {0,0}" "set ymm15 for shift" + +if {[record_full_function "shift"] == true} { + test_one_register "vpsrldq" "ymm15" \ + "0x80007000600050004000300, 0x0" \ + "High ymm register: " + test_one_register "vpsrldq" "ymm15" \ + "0x60005000400030002000100000000, 0xe000d000c000b000a000900000000" \ + "High xmm register: " + test_one_register "vpsrldq" "ymm0" \ + "0x800070006000500040003000200, 0x0" \ + "Low ymm register: " + test_one_register "vpsrldq" "ymm0" \ + "0x70006000500040003000200010000, 0xf000e000d000c000b000a00090000" \ + "Low xmm register: " + + test_one_register "vpslldq" "ymm15" \ + "0x7000600050004000300020001000000, 0x0" \ + "High ymm register: " + test_one_register "vpslldq" "ymm15" \ + "0x40003800300020002000180010000, 0x80007800700060006000580050004" \ + "High xmm register: " + test_one_register "vpslldq" "ymm0" \ + "0x8000700060005000400030002000100, 0x0" \ + "Low ymm register: " + test_one_register "vpslldq" "ymm0" \ + "0x40003000300020002000100010000, 0x80007000700060006000500050004" \ + "Low xmm register: " + + test_one_register "vpsrlq" "ymm15" \ + "0x4000380030000000200018001000, 0x0" \ + "from register: " + test_one_register "vpsrlq" "ymm15" \ + "0x40003000300020002000100010000, 0x0" \ + "from constant: " + test_one_register "vpsrld" "ymm15" \ + "0x100000000c0000000800000004000, 0x200010001c0010001800100014001" \ + "from register: " + test_one_register "vpsrld" "ymm15" \ + "0x40003000300020002000100010000, 0x0" \ + "from constant: " + test_one_register "vpsrlw" "ymm0" \ + "0x40003000300020002000100010000, 0x0" \ + "from register: " + test_one_register "vpsrlw" "ymm0" \ + "0x40003000300020002000100010000, 0x80007000700060006000500050004" \ + "from constant: " + + test_one_register "vpsrad" "ymm15" \ + "0x100000000c0000000800000004000, 0x200010001c0010001800100014001" \ + "from register: " + test_one_register "vpsrad" "ymm15" \ + "0x10000e000c000a0008000600040002, 0x20001e001c001a0018001600140012" \ + "from constant: " + test_one_register "vpsraw" "ymm0" \ + "0x40003000300020002000100010000, 0x0" \ + "from register: " + test_one_register "vpsraw" "ymm0" \ + "0x10000e000c000a0008000600040002, 0x20001e001c001a0018001600140012" \ + "from constant: " + + test_one_register "vpsllq" "ymm15" \ + "0x10000e000c000a00080006000400020, 0x0" \ + "from register: " + test_one_register "vpsllq" "ymm15" \ + "0x10000e000c000a0008000600040002, 0x0" \ + "from constant: " + test_one_register "vpslld" "ymm15" \ + "0x400038003000280020001800100008, 0x800078007000680060005800500048" \ + "from register: " + test_one_register "vpslld" "ymm15" "0x0, 0x0" "from constant: " + test_one_register "vpsllw" "ymm0" \ + "0x10000e000c000a0008000600040002, 0x0" \ + "from register: " + test_one_register "vpsllw" "ymm0" "0x0, 0x0" "from constant: " + + gdb_test "record stop" "Process record is stopped.*" \ + "delete history for shift_test" +} else { + untested "couldn't run shift tests" +} +gdb_test "finish" "Run till exit from.*shift_test.*" \ + "leaving shift" + +# Preparation and testing shuffling instructions. +gdb_test_no_output \ + "set \$ymm0.v2_int128 = {0, 0}" "set ymm0 for shuffle" +gdb_test_no_output \ + "set \$ymm1.v16_int16 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}" \ + "set ymm1 for shuffle" +gdb_test_no_output "set \$ymm2.v16_int16 = {17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32}" \ + "set ymm2 for shuffle" +gdb_test_no_output "set \$ymm15.v2_int128 = {0,0}" "set ymm15 for shuffle" + +if {[record_full_function "shuffle"] == true} { + test_one_register "vshufpd" "ymm15" \ + "0x20001000200010012001100160015, 0xa0009000a0009001a0019001e001d" \ + "high register: " + test_one_register "vshufpd" "ymm0" \ + "0x20001000200010012001100140013, 0x0" \ + "low register: " + test_one_register "vshufps" "ymm15" \ + "0x180017001600150011001100120013, 0x0" \ + "high register: " + test_one_register "vshufps" "ymm0" \ + "0x180017001600150011001100120012, 0x20001f001e001d00190019001a001a" \ + "low register: " + + test_one_register "vpshuflw" "ymm15" \ + "0x150015001600150014001300120011, 0x1d001d001e001d001c001b001a0019" \ + "high register: " + test_one_register "vpshuflw" "ymm0" \ + "0x150015001500180014001300120011, 0x0" \ + "low register: " + test_one_register "vpshufhw" "ymm15" \ + "0x120011001200110012001100160015, 0x0" \ + "high register: " + test_one_register "vpshufhw" "ymm0" \ + "0x120011001200110012001100140013, 0x1a0019001a0019001a0019001c001b" \ + "low register: " + + test_one_register "vpshufd" "ymm15" \ + "0x11151100111411001113110011121100, 0x1919190019201900191f1900191e1900" \ + "high register: " + test_one_register "vpshufd" "ymm0" \ + "0x11151100111411001113110011121100, 0x0" \ + "low register: " + test_one_register "vpshufb" "ymm15" "0x0, 0x0" "high register: " + test_one_register "vpshufb" "ymm0" "0x0, 0x0" "low register: " + + gdb_test "record stop" "Process record is stopped.*" \ + "delete history for shuffle_test" +} else { + untested "couldn't run shuffle tests" +} +gdb_test "finish" "Run till exit from.*shuffle_test.*" \ + "leaving shuffle" + +# Preparation and testing permute instructions. +gdb_test_no_output \ + "set \$ymm0.v2_int128 = {0, 0}" "set ymm0 for permute" +gdb_test_no_output \ + "set \$ymm1.v16_int16 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}" \ + "set ymm1 for permute" +gdb_test_no_output "set \$ymm2.v16_int16 = {17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32}" \ + "set ymm2 for permute" +gdb_test_no_output "set \$ymm15.v2_int128 = {0,0}" "set ymm15 for permute" + +if {[record_full_function "permute"] == true} { + test_one_register "vpermps" "ymm15" \ + "0x40003000200010004000300020001, 0x40003000200010004000300020001" + test_one_register "vpermps" "ymm0" \ + "0x140013001200110014001300120011, 0x140013001200110014001300120011" + test_one_register "vpermpd" "ymm0" \ + "0x120011001200110012001100120011, 0x0" + test_one_register "vpermpd" "ymm15" \ + "0x120011001200110012001100140013, 0x1a0019001a0019001a0019001c001b" + + test_one_register "vpermilps" "ymm0" \ + "0x180017001400130018001700140013, 0x20001f001c001b0020001f001c001b" \ + "register version" + test_one_register "vpermilps" "ymm15" \ + "0x180017001400130018001700140013, 0x0" \ + "register version" + test_one_register "vpermilps" "ymm15" \ + "0x140013001200110018001700160015, 0x1c001b001a0019001c001b001a0019" \ + "immediate version" + test_one_register "vpermilps" "ymm0" \ + "0x140013001200110014001300120011, 0x0" \ + "immediate version" + + test_one_register "vpermilpd" "ymm0" \ + "0x140013001200110014001300120011, 0x1c001b001a0019001c001b001a0019" \ + "register version" + test_one_register "vpermilpd" "ymm15" \ + "0x140013001200110014001300120011, 0x0" \ + "register version" + test_one_register "vpermilpd" "ymm15" \ + "0x140013001200110014001300120011, 0x140013001200110014001300120011" \ + "immediate version" + test_one_register "vpermilpd" "ymm0" \ + "0x40003000200010008000700060005, 0x40003000200010004000300020001" \ + "immediate version" + + test_one_register "vpermq" "ymm15" \ + "0x10000f000c000b0008000700040003, 0x10000f000c000b0008000700040003" + test_one_register "vpermq" "ymm0" \ + "0x10000f000c000b0008000700040003, 0x10000f000c000b0008000700040003" + test_one_register "vpermd" "ymm15" \ + "0x80007000600050004000300020001, 0x80007000600050004000300020001" + test_one_register "vpermd" "ymm0" \ + "0x10000f000e000d000c000b000a0009, 0x80007000600050004000300020001" + + test_one_register "vperm2i128" "ymm15" \ + "0x180017001600150014001300120011, 0x180017001600150014001300120011" + test_one_register "vperm2i128" "ymm0" \ + "0x20001f001e001d001c001b001a0019, 0x180017001600150014001300120011" + test_one_register "vperm2f128" "ymm15" "0x0, 0x0" + test_one_register "vperm2f128" "ymm0" "0x0, 0x0" + + gdb_test "record stop" "Process record is stopped.*" \ + "delete history for permute_test" +} else { + untested "couldn't run permute tests" +} +gdb_test "finish" "Run till exit from.*permute_test.*" \ + "leaving permute" + +# Preparation and testing extract_insert instructions. +gdb_test_no_output \ + "set \$ymm0.v2_int128 = {0, 0}" "set ymm0 for extract_insert" +gdb_test_no_output \ + "set \$ymm1.v16_int16 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}" \ + "set ymm1 for extract_insert" +gdb_test_no_output "set \$xmm2.uint128 = 0xcafe" \ + "set ymm2 for extract_insert" +gdb_test_no_output "set \$ymm15.v2_int128 = {0,0}" "set ymm15 for extract_insert" +gdb_test_no_output "set \$rax = 0" "set eax for extract_insert" + +if {[record_full_function "extract_insert"] == true} { + test_one_memory "vpextrw" "global_buf1" \ + "\\\{0x1, 0x0, 0x2, 0x0, 0x3, 0x0, 0x4, 0x0 <repeats 25 times>" + test_one_general_register "vpextrw" "rax" "0x8000700060005" + + test_one_register "vpinsrq" "ymm15" \ + "0x50000cafe, 0x0" + test_one_register "vpinsrd" "ymm0" \ + "0x500cafe, 0x0" + test_one_register "vpinsrw" "ymm15" \ + "0x80007000600050004000300020001, 0x0" + test_one_register "vpinsrb" "ymm0" \ + "0x80007000600050000cafe00020001, 0x0" + + test_one_memory "vpextrq" "global_buf1" \ + "\\\{0x5, 0x0, 0x6, 0x0 <repeats 29 times>" + test_one_general_register "vpextrq" "rax" "0x80007" + test_one_memory "vpextrd" "global_buf1" \ + "\\\{0x3, 0x0 <repeats 31 times>" + test_one_general_register "vpextrd" "rax" "0x0" + test_one_memory "vpextrb" "global_buf1" \ + "\\\{0x0 <repeats 32 times>" + test_one_general_register "vpextrb" "rax" "0xcafe" + + test_one_general_register "vextractps" "eax" "0x0" + test_one_register "vinsertps" "ymm0" \ + "0x10000f000e000d000c000b000a0009, 0x0" + test_one_register "vextractf128" "ymm15" \ + "0xcafe, 0x10000f000e000d000c000b000a0009" + test_one_register "vextracti128" "ymm0" \ + "0x80007000600050004000300020001, 0xcafe" + test_one_register "vinsertf128" "ymm15" \ + "0x0, 0x0" + test_one_register "vinserti128" "ymm0" \ + "0x0, 0x0" + + gdb_test "record stop" "Process record is stopped.*" \ + "delete history for extract_insert_test" +} else { + untested "couldn't run extract_insert tests" +} +gdb_test "finish" "Run till exit from.*extract_insert_test.*" \ + "leaving extract_insert" + +# Preparation and testing blend instructions. +gdb_test_no_output \ + "set \$ymm0.v2_int128 = {0, 0}" "set ymm0 for blend" +gdb_test_no_output \ + "set \$ymm1.v16_int16 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}" \ + "set ymm1 for blend" +gdb_test_no_output \ + "set \$ymm2.v16_int16 = {17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}" \ + "set ymm2 for blend" +gdb_test_no_output "set \$ymm15.v2_int128 = {0,0}" "set ymm15 for blend" + +if {[record_full_function "blend"] == true} { + test_one_register "vpblendvb" "ymm0" \ + "0x180017000600050004000300120011, 0x20001f001e001d001c001b000a0009" + test_one_register "vpblendvb" "ymm15" \ + "0x80007001600150004000300020001, 0x0" + test_one_register "vpblendd" "ymm15" \ + "0x180007001600050004000300020011, 0x20000f001e000d000c000b000a0019" + test_one_register "vpblendd" "ymm0" \ + "0x180017000600150004000300020001, 0x0" + test_one_register "vpblendw" "ymm0" \ + "0x180017001600150014001300120011, 0x20001f001e001d001c001b001a0019" + test_one_register "vpblendw" "ymm15" \ + "0x180017001600150014001300120011, 0x0" + + test_one_register "vblendvpd" "ymm15" \ + "0x80007000600050014001300120011, 0x10000f000e000d001c001b001a0019" + test_one_register "vblendvps" "ymm0" \ + "0x180017000600050014001300020001, 0x0" + test_one_register "vblendpd" "ymm15" "0x0, 0x0" + test_one_register "vblendps" "ymm0" "0x0, 0x0" + + gdb_test "record stop" "Process record is stopped.*" \ + "delete history for blend_test" +} else { + untested "couldn't run blend tests" +} +gdb_test "finish" "Run till exit from.*blend_test.*" \ + "leaving blend" + +# Preparation and testing compare instructions. +gdb_test_no_output \ + "set \$xmm0.v4_float = {0, 1.5, 2, 0}" "set ymm0 for compare" +gdb_test_no_output \ + "set \$xmm1.v4_float = {0, 1, 2.5, -1}" "set ymm1 for compare" +gdb_test_no_output \ + "set \$xmm15.v4_float = {-1, -2, 10, 100}" "set ymm15 for compare" +gdb_test_no_output "set \$eflags = 2" + +if {[record_full_function "compare"] == true} { + test_one_general_register "vucomisd" "eflags" "0x203" + test_one_general_register "vucomiss" "eflags" "0x202" + test_one_general_register "vcomiss" "eflags" "0x203" + test_one_general_register "vcomisd" "eflags" "0x202" + + gdb_test "record stop" "Process record is stopped.*" \ + "delete history for compare_test" +} else { + untested "couldn't run compare tests" +} +gdb_test "finish" "Run till exit from.*compare_test.*" \ + "leaving compare" + +# Preparation and testing pack instructions. +gdb_test_no_output \ + "set \$ymm0.v2_int128 = {0, 0}" "set ymm0 for pack" +gdb_test_no_output \ + "set \$ymm1.v16_int16 = {0x1020, 0x1121, 0x1222, 0x1323, 0x1424, 0x1525, 0x1626, 0x1727, 0x1828, 0x1929, 0x1a2a, 0x1b2b, 0x1c2c, 0x1d2d, 0x1e2e, 0x1f2f}" \ + "set ymm1 for pack" +gdb_test_no_output \ + "set \$ymm2.v16_int16 = {0x3040, 0x3141, 0x3242, 0x3343, 0x3444, 0x3545, 0x3646, 0x3747, 0x3848, 0x3949, 0x3a4a, 0x3b4b, 0x3c4c, 0x3d4d, 0x3e4e, 0x3f4f}" \ + "set ymm2 for pack" +gdb_test_no_output \ + "set \$ymm15.v2_int128 = {0, 0}" "set ymm15 for pack" + +if {[record_full_function "pack"] == true} { + test_one_register "vpackusdw" "ymm0" \ + "0xffffffffffffffffffffffffffffffff, 0x0" + test_one_register "vpackusdw" "ymm15" \ + "0xffffffffffffffffffffffffffffffff, 0xffffffffffffffffffffffffffffffff" + test_one_register "vpackuswb" "ymm15" \ + "0x7fff7fff7fff7fff7fff7fff7fff7fff, 0x0" + test_one_register "vpackuswb" "ymm0" \ + "0x7fff7fff7fff7fff7fff7fff7fff7fff, 0x7fff7fff7fff7fff7fff7fff7fff7fff" + test_one_register "vpackssdw" "ymm0" \ + "0x7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f, 0x0" + test_one_register "vpackssdw" "ymm15" \ + "0x7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f, 0x7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f" + test_one_register "vpacksswb" "ymm15" "0x0, 0x0" + test_one_register "vpacksswb" "ymm0" "0x0, 0x0" + + gdb_test "record stop" "Process record is stopped.*" \ + "delete history for pack_test" +} else { + untested "couldn't run pack tests" +} +gdb_test "finish" "Run till exit from.*pack_test.*" \ + "leaving pack" + +# Preparation and testing converting instructions. +gdb_test_no_output \ + "set \$ymm0.v2_int128 = {0,0}" \ + "set ymm0 for convert test" +gdb_test_no_output \ + "set \$ymm1.v8_float = {0, 1, 2.5, 10, -1, -2.5, 0}" \ + "set ymm1 for convert test" +gdb_test_no_output "set \$ymm15.v2_int128 = {0,0}" \ + "set ymm15 for convert test" +gdb_test_no_output "set \$ecx = -1" "set ecx for convert test" +gdb_test_no_output "set \$ebx = 1" "set ebx for convert test" + +if {[record_full_function "convert"] == true} { + gdb_test "maint print record-instruction" ".*" + test_one_general_register "vcvttss2si" "ecx" "0xffffffff" + test_one_general_register "vcvttsd2si" "ebx" "0x0" + test_one_register "vcvttps2dq" "ymm15" \ + "0x41200000402000003f8000004f800000, 0x0" + test_one_register "vcvttpd2dq" "ymm0" \ + "0x412000004020000041f0000000000000, 0x0" + test_one_general_register "vcvtss2si" "ebx" "0x0" + + test_one_register "vcvtss2sd" "ymm0" \ + "0x412000004020000041efffffffe00000, 0x0" + test_one_register "vcvtsi2ss" "ymm15" \ + "0x41200000402000003f80000000000000, 0x0" + test_one_register "vcvtsi2sd" "ymm0" \ + "0x8000000000000, 0x0" + test_one_register "vcvtsd2ss" "ymm15" \ + "0x490000023c000000, 0x0" + test_one_general_register "vcvtsd2si" "ebx" "0x1" + + test_one_register "vcvtpd2dq" "ymm0" \ + "0x3ff00000000000000000000000000000, 0x0" + test_one_register "vcvtpd2ps" "ymm15" \ + "0xa000000020000000100000000, 0x0" + test_one_register "vcvtps2pd" "ymm0" \ + "0x4e8240004e8040004e7e000000000000, 0x0" + test_one_register "vcvtps2dq" "ymm15" \ + "0x41cfc000000000000000000000000000, 0x0" + test_one_register "vcvtdq2pd" "ymm15" "0x0, 0x0" + test_one_register "vcvtdq2ps" "ymm0" "0x0, 0x0" + + gdb_test "record stop" "Process record is stopped.*" \ + "delete history for convert_test" +} else { + untested "couldn't run convert tests" +} +gdb_test "finish" "Run till exit from.*convert_test.*" \ + "leaving convert" diff --git a/gold/configure b/gold/configure index a2674d6..f4cb3f8 100755 --- a/gold/configure +++ b/gold/configure @@ -8832,287 +8832,6 @@ $as_echo "$LINGUAS" >&6; } fi - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - rm -f messages.po - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; } - GMSGFMT=":" - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - rm -f messages.po - fi - - ac_config_commands="$ac_config_commands default-2" - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : @@ -14636,13 +14355,6 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - _ACEOF @@ -14655,7 +14367,6 @@ do "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;; @@ -15448,107 +15159,6 @@ $as_echo X"$file" | ;; esac done ;; - "default-2":C) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.ac is obsolete" || echo "setting ALL_LINGUAS in configure.ac is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.ac. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; esac done # for ac_tag diff --git a/gold/configure.ac b/gold/configure.ac index 36ffc25..ee962b9 100644 --- a/gold/configure.ac +++ b/gold/configure.ac @@ -313,8 +313,8 @@ AC_PROG_RANLIB AC_PROG_INSTALL AC_PROG_LN_S -ZW_GNU_GETTEXT_SISTER_DIR AM_PO_SUBDIRS +ZW_GNU_GETTEXT_SISTER_DIR AC_C_BIGENDIAN diff --git a/gprof/configure b/gprof/configure index 2acae7b..fcc4293 100755 --- a/gprof/configure +++ b/gprof/configure @@ -13373,287 +13373,6 @@ $as_echo "$LINGUAS" >&6; } fi - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - rm -f messages.po - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; } - GMSGFMT=":" - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - rm -f messages.po - fi - - ac_config_commands="$ac_config_commands default-2" - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. @@ -14989,13 +14708,6 @@ fi # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - _ACEOF @@ -15009,7 +14721,6 @@ do "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;; @@ -16441,107 +16152,6 @@ _LT_EOF ;; esac done ;; - "default-2":C) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.ac is obsolete" || echo "setting ALL_LINGUAS in configure.ac is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.ac. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; esac done # for ac_tag diff --git a/gprof/configure.ac b/gprof/configure.ac index 166e16c..a32bf93 100644 --- a/gprof/configure.ac +++ b/gprof/configure.ac @@ -43,8 +43,8 @@ AC_CHECK_HEADERS(sys/time.h) AC_CHECK_FUNCS(setitimer) ALL_LINGUAS="bg da de eo es fi fr ga hu id it ja ms nl pt_BR ro ru rw sr sv tr uk vi" -ZW_GNU_GETTEXT_SISTER_DIR AM_PO_SUBDIRS +ZW_GNU_GETTEXT_SISTER_DIR AM_MAINTAINER_MODE AM_CONDITIONAL(GENINSRC_NEVER, false) diff --git a/include/elf/aarch64.h b/include/elf/aarch64.h index e218e07..74bd7b4 100644 --- a/include/elf/aarch64.h +++ b/include/elf/aarch64.h @@ -52,6 +52,8 @@ #define DT_AARCH64_BTI_PLT (DT_LOPROC + 1) #define DT_AARCH64_PAC_PLT (DT_LOPROC + 3) #define DT_AARCH64_VARIANT_PCS (DT_LOPROC + 5) +#define DT_AARCH64_MEMTAG_MODE (DT_LOPROC + 9) +#define DT_AARCH64_MEMTAG_STACK (DT_LOPROC + 12) /* AArch64-specific values for st_other. */ #define STO_AARCH64_VARIANT_PCS 0x80 /* Symbol may follow different call diff --git a/include/elf/common.h b/include/elf/common.h index f395278..0d9a7b7 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -568,6 +568,7 @@ #define SHT_ANDROID_RELR 0x6fffff00 +#define SHT_GNU_SFRAME 0x6ffffff4 /* SFrame stack trace information. */ #define SHT_GNU_ATTRIBUTES 0x6ffffff5 /* Object attributes */ #define SHT_GNU_HASH 0x6ffffff6 /* GNU style symbol hash table */ #define SHT_GNU_LIBLIST 0x6ffffff7 /* List of prelink dependencies */ diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index dab6eac..4425dd4 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -187,6 +187,8 @@ enum aarch64_feature_bit { AARCH64_FEATURE_THE, /* LSE128. */ AARCH64_FEATURE_LSE128, + /* LSUI - Unprivileged Load Store. */ + AARCH64_FEATURE_LSUI, /* ARMv8.9-A RAS Extensions. */ AARCH64_FEATURE_RASv2, /* Delegated SError exceptions for EL3. */ @@ -242,6 +244,12 @@ enum aarch64_feature_bit { AARCH64_FEATURE_F8F32MM, /* F8F16MM instructions. */ AARCH64_FEATURE_F8F16MM, + /* SVE_PMULL128 extension. */ + AARCH64_FEATURE_SVE_AES, + /* SVE AES2 instructions. */ + AARCH64_FEATURE_SVE_AES2, + /* SSVE_AES extension. */ + AARCH64_FEATURE_SSVE_AES, /* RCPC3 instructions. */ AARCH64_FEATURE_RCPC3, /* Enhanced Software Step Extension. */ @@ -296,6 +304,8 @@ enum aarch64_feature_bit { AARCH64_FEATURE_V9_4A, /* Armv9.5-A processors. */ AARCH64_FEATURE_V9_5A, + /* Armv9.6-A processors. */ + AARCH64_FEATURE_V9_6A, /* FPRCVT instructions. */ AARCH64_FEATURE_FPRCVT, /* Point of Physical Storage. */ @@ -303,6 +313,8 @@ enum aarch64_feature_bit { /* Virtual features. These are used to gate instructions that are enabled by either of two (or more) sets of command line flags. */ + /* +sve2 or +ssve-aes */ + AARCH64_FEATURE_SVE2_SSVE_AES, /* +fp8fma+sve or +ssve-fp8fma */ AARCH64_FEATURE_FP8FMA_SVE, /* +fp8dot4+sve or +ssve-fp8dot4 */ @@ -463,6 +475,12 @@ static_assert ((AA64_REPLICATE (REP_PLUS, AA64_REPVAL, | AARCH64_FEATBIT (X, SPMU2) \ | AARCH64_FEATBIT (X, STEP2) \ ) +#define AARCH64_ARCH_V9_6A_FEATURES(X) (AARCH64_FEATBIT (X, V9_6A) \ + | AARCH64_FEATBIT (X, CMPBR) \ + | AARCH64_FEATBIT (X, FPRCVT) \ + | AARCH64_FEATBIT (X, LSUI) \ + | AARCH64_FEATBIT (X, OCCMO) \ + | AARCH64_FEATBIT (X, SVE2p2)) /* Architectures are the sum of the base and extensions. */ #define AARCH64_ARCH_V8A(X) (AARCH64_FEATBIT (X, V8) \ @@ -502,6 +520,8 @@ static_assert ((AA64_REPLICATE (REP_PLUS, AA64_REPVAL, | AARCH64_ARCH_V9_4A_FEATURES (X)) #define AARCH64_ARCH_V9_5A(X) (AARCH64_ARCH_V9_4A (X) \ | AARCH64_ARCH_V9_5A_FEATURES (X)) +#define AARCH64_ARCH_V9_6A(X) (AARCH64_ARCH_V9_5A (X) \ + | AARCH64_ARCH_V9_6A_FEATURES (X)) #define AARCH64_ARCH_NONE(X) 0 @@ -783,6 +803,7 @@ enum aarch64_opnd AARCH64_OPND_BARRIER_PSB, /* Barrier operand for PSB. */ AARCH64_OPND_BARRIER_GCSB, /* Barrier operand for GCSB. */ AARCH64_OPND_BTI_TARGET, /* BTI {<target>}. */ + AARCH64_OPND_STSHH_POLICY, /* STSHH {<policy>}. */ AARCH64_OPND_BRBOP, /* BRB operation IALL or INJ in bit 5. */ AARCH64_OPND_Rt_IN_SYS_ALIASES, /* Defaulted and omitted Rt used in SYS aliases such as brb. */ AARCH64_OPND_LSE128_Rt, /* LSE128 <Xt1>. */ @@ -974,6 +995,7 @@ enum aarch64_opnd AARCH64_OPND_SME_Zn_INDEX1_16, /* Zn[index], bits [9:5] and [16:16]. */ AARCH64_OPND_SME_Zn_INDEX2_15, /* Zn[index], bits [9:5] and [16:15]. */ AARCH64_OPND_SME_Zn_INDEX2_16, /* Zn[index], bits [9:5] and [17:16]. */ + AARCH64_OPND_SME_Zn_INDEX2_19, /* Zn[index], bits [9:5] and [20:19]. */ AARCH64_OPND_SME_Zn_INDEX3_14, /* Zn[index], bits [9:5] and [16:14]. */ AARCH64_OPND_SME_Zn_INDEX3_15, /* Zn[index], bits [9:5] and [17:15]. */ AARCH64_OPND_SME_Zn_INDEX4_14, /* Zn[index], bits [9:5] and [17:14]. */ @@ -1529,7 +1551,24 @@ extern const aarch64_opcode aarch64_opcode_table[]; /* For LSFE instructions with size[30:31] field. */ #define F_LSFE_SZ (1ULL << 41) -/* Next bit is 42. */ + +/* When parsing immediate values, register names should not be misinterpreted + as symbols. However, for backwards compatibility we need to permit some + newer register names within older instructions. These flags specify which + register names are invalid immediate value, and are required for all + instructions with immediate operands (and are otherwise ignored). */ +#define F_INVALID_IMM_SYMS (3ULL << 42) + +/* Any GP or SIMD register except WSP/SP. */ +#define F_INVALID_IMM_SYMS_1 (1ULL << 42) + +/* As above, plus WSP/SP, and Z and P registers. */ +#define F_INVALID_IMM_SYMS_2 (2ULL << 42) + +/* As above, plus PN registers. */ +#define F_INVALID_IMM_SYMS_3 (3ULL << 42) + +/* Next bit is 44. */ /* Instruction constraints. */ /* This instruction has a predication constraint on the instruction at PC+4. */ @@ -1878,6 +1917,8 @@ struct aarch64_inst #define HINT_OPD_C 0x22 #define HINT_OPD_J 0x24 #define HINT_OPD_JC 0x26 +#define HINT_OPD_KEEP 0x30 +#define HINT_OPD_STRM 0x31 #define HINT_OPD_NULL 0x00 diff --git a/include/sframe-api.h b/include/sframe-api.h index 3dc18b6..8c26257 100644 --- a/include/sframe-api.h +++ b/include/sframe-api.h @@ -153,14 +153,6 @@ sframe_decoder_get_fixed_fp_offset (sframe_decoder_ctx *dctx); extern int8_t sframe_decoder_get_fixed_ra_offset (sframe_decoder_ctx *dctx); -/* Find the function descriptor entry which contains the specified address. - - Note: This function is deprecated and will be removed from future release - X+2 of the library. */ -extern void * -sframe_get_funcdesc_with_addr (sframe_decoder_ctx *dctx, int32_t addr, - int *errp); - /* Find the SFrame Frame Row Entry which contains the PC. Returns SFRAME_ERR if failure. */ @@ -214,12 +206,20 @@ extern int32_t sframe_fre_get_cfa_offset (sframe_decoder_ctx *dtcx, sframe_frame_row_entry *fre, int *errp); -/* Get the FP offset from the FRE. If the offset is invalid, sets errp. */ +/* Get the FP offset from the FRE. If the offset is invalid, sets errp. + + For s390x the offset may be an encoded register number, indicated by + LSB set to one, which is only valid in the topmost frame. */ extern int32_t sframe_fre_get_fp_offset (sframe_decoder_ctx *dctx, sframe_frame_row_entry *fre, int *errp); -/* Get the RA offset from the FRE. If the offset is invalid, sets errp. */ +/* Get the RA offset from the FRE. If the offset is invalid, sets errp. + + For s390x an RA offset value of SFRAME_FRE_RA_OFFSET_INVALID indicates + that the RA is not saved, which is only valid in the topmost frame. + For s390x the offset may be an encoded register number, indicated by + LSB set to one, which is only valid in the topmost frame. */ extern int32_t sframe_fre_get_ra_offset (sframe_decoder_ctx *dctx, sframe_frame_row_entry *fre, int *errp); diff --git a/include/sframe.h b/include/sframe.h index c0375ba..7523adb 100644 --- a/include/sframe.h +++ b/include/sframe.h @@ -104,6 +104,7 @@ extern "C" #define SFRAME_ABI_AARCH64_ENDIAN_BIG 1 /* AARCH64 big endian. */ #define SFRAME_ABI_AARCH64_ENDIAN_LITTLE 2 /* AARCH64 little endian. */ #define SFRAME_ABI_AMD64_ENDIAN_LITTLE 3 /* AMD64 little endian. */ +#define SFRAME_ABI_S390X_ENDIAN_BIG 4 /* s390x big endian. */ /* SFrame FRE types. */ #define SFRAME_FRE_TYPE_ADDR1 0 @@ -201,7 +202,7 @@ typedef struct sframe_func_desc_entry - 2-bits: Unused. ------------------------------------------------------------------------ | Unused | PAC auth A/B key (aarch64) | FDE type | FRE type | - | | Unused (amd64) | | | + | | Unused (amd64, s390x) | | | ------------------------------------------------------------------------ 8 6 5 4 0 */ uint8_t sfde_func_info; @@ -247,6 +248,10 @@ typedef struct sframe_func_desc_entry may or may not be tracked. */ #define SFRAME_FRE_FP_OFFSET_IDX 2 +/* Invalid RA offset. Currently used for s390x as padding to represent FP + without RA saved. */ +#define SFRAME_FRE_RA_OFFSET_INVALID 0 + typedef struct sframe_fre_info { /* Information about @@ -259,7 +264,7 @@ typedef struct sframe_fre_info - 1 bit: Mangled RA state bit (aarch64 only). ---------------------------------------------------------------------------------- | Mangled-RA (aarch64) | Size of offsets | Number of offsets | base_reg | - | Unused (amd64) | | | | + | Unused (amd64, s390x)| | | | ---------------------------------------------------------------------------------- 8 7 5 1 0 @@ -285,7 +290,7 @@ typedef struct sframe_fre_info /* SFrame Frame Row Entry definitions. - Used for both AMD64 and AARCH64. + Used for AMD64, AARCH64, and s390x. An SFrame Frame Row Entry is a self-sufficient record which contains information on how to generate the stack trace for the specified range of @@ -309,6 +314,24 @@ typedef struct sframe_fre_info fi Note that in AAPCS64, a frame record, if created, will save both FP and LR on stack. + + s390x: + offset1 (interpreted as CFA = BASE_REG + offset1) + if RA is being tracked + offset2 (interpreted as RA = CFA + offset2; an offset value of + SFRAME_FRE_RA_OFFSET_INVALID indicates a dummy padding RA offset + to represent FP without RA saved on stack) + if FP is being tracked + offset3 (intrepreted as FP = CFA + offset3) + fi + else + if FP is being tracked + offset2 (intrepreted as FP = CFA + offset2) + fi + fi + Note that in s390x, if a FP/RA offset2/offset3 value has the least- + significant bit set it represents a DWARF register number shifted to the + left by 1 to restore the FP/RA value from. */ /* Used when SFRAME_FRE_TYPE_ADDR1 is specified as FRE type. */ @@ -353,6 +376,36 @@ typedef struct sframe_frame_row_entry_addr4 #define SFRAME_FRE_TYPE_ADDR4_LIMIT \ (1ULL << ((SFRAME_FRE_TYPE_ADDR4 * 2) * 8)) +/* On s390x, the CFA offset from CFA base register is by definition a minimum + of 160. Store it adjusted by -160 to enable use of 8-bit SFrame offsets. + Additionally scale by an alignment factor of 8, as the SP and thus CFA + offset on s390x is always 8-byte aligned. */ +#define SFRAME_S390X_CFA_OFFSET_ADJUSTMENT SFRAME_S390X_SP_VAL_OFFSET +#define SFRAME_S390X_CFA_OFFSET_ALIGNMENT_FACTOR 8 +#define SFRAME_V2_S390X_CFA_OFFSET_ENCODE(offset) \ + (((offset) + SFRAME_S390X_CFA_OFFSET_ADJUSTMENT) \ + / SFRAME_S390X_CFA_OFFSET_ALIGNMENT_FACTOR) +#define SFRAME_V2_S390X_CFA_OFFSET_DECODE(offset) \ + (((offset) * SFRAME_S390X_CFA_OFFSET_ALIGNMENT_FACTOR) \ + - SFRAME_S390X_CFA_OFFSET_ADJUSTMENT) + +/* On s390x, the CFA is defined as SP at call site + 160. Therefore the + SP value offset from CFA is -160. */ +#define SFRAME_S390X_SP_VAL_OFFSET (-160) + +/* On s390x, the FP and RA registers can be saved either on the stack or, + in case of leaf functions, in registers. Store DWARF register numbers + encoded as offset by using the least-significant bit (LSB) as indicator: + - LSB=0: Stack offset. The s390x ELF ABI mandates that stack register + slots must be 8-byte aligned. + - LSB=1: DWARF register number shifted to the left by one. */ +#define SFRAME_V2_S390X_OFFSET_IS_REGNUM(offset) \ + ((offset) & 1) +#define SFRAME_V2_S390X_OFFSET_ENCODE_REGNUM(regnum) \ + (((regnum) << 1) | 1) +#define SFRAME_V2_S390X_OFFSET_DECODE_REGNUM(offset) \ + ((offset) >> 1) + #ifdef __cplusplus } #endif @@ -1,10 +1,16 @@ -*- text -*- +* On s390 64-bit (s390x), generate SFrame stack trace information (.sframe) + for the linker generated .plt section. Enabled by default. Can be disabled + using linker option --no-ld-generated-unwind-info. + * All SFrame sections generated by the linker have the header flag SFRAME_F_FDE_FUNC_START_PCREL set to indicate the new encoding for sfde_func_start_address field in the SFrame section. Relocatable SFrame links are now fixed. + ELF SFrame sections now have section type set to SHT_GNU_SFRAME. + * On RISC-V, add new PLT formats, and GNU property merge rules for zicfiss and zicfilp extensions. @@ -31,6 +37,12 @@ * On s390, add support for linker option --[no-]ld-generated-unwind-info. +* On LoongArch, linker relaxation time complexity is no longer quadratic with + respect to relocation counts. Linking time of large software should be + improved. + +* On LoongArch, R_LARCH_32_PCREL records are now checked for overflow. + Changes in 2.44: * Support for Nios II target has been removed, as this architecture has been diff --git a/ld/configure b/ld/configure index 64b42f1..fe5167a 100755 --- a/ld/configure +++ b/ld/configure @@ -17960,287 +17960,6 @@ fi - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - rm -f messages.po - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; } - GMSGFMT=":" - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - rm -f messages.po - fi - - ac_config_commands="$ac_config_commands default-2" - - - - - for ac_prog in 'bison -y' byacc do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -20482,13 +20201,6 @@ fi # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - _ACEOF @@ -20503,7 +20215,6 @@ do "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;; @@ -22106,107 +21817,6 @@ _LT_EOF ;; esac done ;; - "default-2":C) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.ac is obsolete" || echo "setting ALL_LINGUAS in configure.ac is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.ac. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; "default":C) case "$srcdir" in .) srcdirpre= ;; diff --git a/ld/configure.ac b/ld/configure.ac index e5f56dd..5476d30 100644 --- a/ld/configure.ac +++ b/ld/configure.ac @@ -388,8 +388,8 @@ fi # host-specific stuff: ALL_LINGUAS="bg da de es fi fr ga id it ja pt_BR ru sr sv tr uk vi zh_CN zh_TW" -ZW_GNU_GETTEXT_SISTER_DIR AM_PO_SUBDIRS +ZW_GNU_GETTEXT_SISTER_DIR AC_EXEEXT diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em index afa91af..66eaf1c 100644 --- a/ld/emultempl/aarch64elf.em +++ b/ld/emultempl/aarch64elf.em @@ -42,6 +42,11 @@ static aarch64_protection_opts sw_protections = { .gcs_report_dynamic = MARKING_UNSET, }; +static aarch64_memtag_opts memtag_opts = { + .memtag_mode = AARCH64_MEMTAG_MODE_NONE, + .memtag_stack = 0, +}; + #define COMPILE_TIME_STRLEN(s) \ (sizeof(s) - 1) @@ -335,7 +340,8 @@ aarch64_elf_create_output_section_statements (void) pic_veneer, fix_erratum_835769, fix_erratum_843419, no_apply_dynamic_relocs, - &sw_protections); + &sw_protections, + &memtag_opts); stub_file = lang_add_input_file ("linker stubs", lang_input_file_is_fake_enum, @@ -440,6 +446,31 @@ aarch64_parse_gcs_option (const char *_optarg) #undef GCS #undef GCS_LEN } + +static bool +aarch64_parse_memtag_mode_option (const char *optarg) +{ + #define MEMTAG_MODE "memtag-mode" + #define MEMTAG_MODE_LEN COMPILE_TIME_STRLEN (MEMTAG_MODE) + + if (strncmp (optarg, MEMTAG_MODE, MEMTAG_MODE_LEN) != 0) + return false; + + if (strcmp (optarg + MEMTAG_MODE_LEN, "=none") == 0) + memtag_opts.memtag_mode = AARCH64_MEMTAG_MODE_NONE; + else if (strcmp (optarg + MEMTAG_MODE_LEN, "=sync") == 0) + memtag_opts.memtag_mode = AARCH64_MEMTAG_MODE_SYNC; + else if (strcmp (optarg + MEMTAG_MODE_LEN, "=async") == 0) + memtag_opts.memtag_mode = AARCH64_MEMTAG_MODE_ASYNC; + else + einfo (_("%X%P: error: unrecognized value '-z %s'\n"), optarg); + + return true; + + #undef MEMTAG_MODE + #undef MEMTAG_MODE_LEN +} + EOF # Define some shell vars to insert bits of code into the standard elf @@ -518,6 +549,17 @@ PARSE_AND_LIST_OPTIONS=' and output have GCS marking.\n\ error: Emit error when the input objects are missing GCS markings\n\ and output have GCS marking.\n")); + fprintf (file, _("\ + -z memtag-mode[=none|sync|async] Select Memory Tagging Extension mode of operation to use.\n\ + Emits a DT_AARCH64_MEMTAG_MODE dynamic tag for the binary.\n\ + This entry is only valid on the main executable. It is\n\ + ignored in the dynamically loaded objects by the loader.\n\ + none (default): Disable MTE checking of memory reads and writes.\n\ + sync: Enable precise exceptions when mismatched address and\n\ + allocation tags detected on load/store operations.\n\ + async: Enable imprecise exceptions.\n")); + fprintf (file, _("\ + -z memtag-stack Mark program stack with MTE protection.\n")); ' PARSE_AND_LIST_ARGS_CASE_Z_AARCH64=' @@ -533,6 +575,10 @@ PARSE_AND_LIST_ARGS_CASE_Z_AARCH64=' {} else if (aarch64_parse_gcs_option (optarg)) {} + else if (aarch64_parse_memtag_mode_option (optarg)) + {} + else if (strcmp (optarg, "memtag-stack") == 0) + memtag_opts.memtag_stack = 1; ' PARSE_AND_LIST_ARGS_CASE_Z="$PARSE_AND_LIST_ARGS_CASE_Z $PARSE_AND_LIST_ARGS_CASE_Z_AARCH64" @@ -8374,6 +8374,21 @@ GCS markings. If issues are found, a maximum of 20 messages will be emitted, and then a summary with the total number of issues will be displayed at the end. +@kindex -z memtag-mode=@var{mode} +@cindex MTE modes of operation +The @samp{-z memtag-mode=mode} specifies the MTE mode of operation. +The value of @samp{mode} can be one of @samp{none}, @samp{sync} or +@samp{async}. The specified modes determine the value of the +@samp{DT_AARCH64_MEMTAG_MODE} dynamic tag. The @samp{sync} mode +implies precise exceptions, with the runtime providing the exact +instruction where the fault occurred, and the exact faulting address. +The @samp{async} mode implies imprecise exceptions. + +@kindex -z memtag-stack +@cindex Mark program stack for MTE protection +The @samp{-z memtag-stack} specifies that output object uses MTE +instructions for stack memory usage. + @ifclear GENERIC @lowersections @end ifclear diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp index 4de498f..8d56beb 100644 --- a/ld/testsuite/ld-aarch64/aarch64-elf.exp +++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp @@ -376,6 +376,10 @@ run_dump_test_lp64 "variant_pcs-r" run_dump_test_lp64 "variant_pcs-shared" run_dump_test_lp64 "variant_pcs-now" +run_dump_test_lp64 "mte-tagged-frame" +run_dump_test_lp64 "dt-memtag-mode" +run_dump_test_lp64 "dt-memtag-stack" + set aarch64elflinktests { {"ld-aarch64/so with global symbol" "-shared" "" "" {copy-reloc-so.s} {} "copy-reloc-so.so"} diff --git a/ld/testsuite/ld-aarch64/dt-memtag-mode.d b/ld/testsuite/ld-aarch64/dt-memtag-mode.d new file mode 100644 index 0000000..21670bc --- /dev/null +++ b/ld/testsuite/ld-aarch64/dt-memtag-mode.d @@ -0,0 +1,7 @@ +#source: dt-memtag.s +#ld: -shared -z memtag-mode=async +#readelf: -d + +#... + 0x0000000070000009 \(AARCH64_MEMTAG_MODE\) 0x1 +#... diff --git a/ld/testsuite/ld-aarch64/dt-memtag-stack.d b/ld/testsuite/ld-aarch64/dt-memtag-stack.d new file mode 100644 index 0000000..242f61f --- /dev/null +++ b/ld/testsuite/ld-aarch64/dt-memtag-stack.d @@ -0,0 +1,7 @@ +#source: dt-memtag.s +#ld: -shared -z memtag-stack +#readelf: -d + +#... + 0x000000007000000c \(AARCH64_MEMTAG_STACK\) 0x1 +#... diff --git a/ld/testsuite/ld-aarch64/dt-memtag.s b/ld/testsuite/ld-aarch64/dt-memtag.s new file mode 100644 index 0000000..51f3ba5 --- /dev/null +++ b/ld/testsuite/ld-aarch64/dt-memtag.s @@ -0,0 +1,7 @@ +// Test DT_AARCH64_MEMTAG_MODE. + +.text +.p2align 3 +.global foo +foo: +.xword foo diff --git a/ld/testsuite/ld-aarch64/mte-tagged-frame-bar.s b/ld/testsuite/ld-aarch64/mte-tagged-frame-bar.s new file mode 100644 index 0000000..0bd5619 --- /dev/null +++ b/ld/testsuite/ld-aarch64/mte-tagged-frame-bar.s @@ -0,0 +1,17 @@ + .text + .global bar + .type bar, %function +bar: + .cfi_startproc + .cfi_mte_tagged_frame + stp x19, x20, [sp, -144]! + .cfi_def_cfa_offset 144 + .cfi_offset 19, -144 + .cfi_offset 20, -136 + ldp x19, x20, [sp], 144 + .cfi_restore 20 + .cfi_restore 19 + .cfi_def_cfa_offset 0 + ret + .cfi_endproc + .size bar, .-bar diff --git a/ld/testsuite/ld-aarch64/mte-tagged-frame-foo.s b/ld/testsuite/ld-aarch64/mte-tagged-frame-foo.s new file mode 100644 index 0000000..af5a8c4 --- /dev/null +++ b/ld/testsuite/ld-aarch64/mte-tagged-frame-foo.s @@ -0,0 +1,16 @@ + .text + .global foo + .type foo, %function +foo: + .cfi_startproc + stp x19, x20, [sp, -32]! + .cfi_def_cfa_offset 32 + .cfi_offset 19, -32 + .cfi_offset 20, -16 + ldp x19, x20, [sp], 32 + .cfi_restore 20 + .cfi_restore 19 + .cfi_def_cfa_offset 0 + ret + .cfi_endproc + .size foo, .-foo diff --git a/ld/testsuite/ld-aarch64/mte-tagged-frame.d b/ld/testsuite/ld-aarch64/mte-tagged-frame.d new file mode 100644 index 0000000..dd667fe --- /dev/null +++ b/ld/testsuite/ld-aarch64/mte-tagged-frame.d @@ -0,0 +1,35 @@ +#source: mte-tagged-frame-foo.s +#source: mte-tagged-frame-bar.s +#ld: -shared +#objdump: -Wf +#name: MTE tagged EH Frame FDE + +#... +Contents of the .eh_frame section: + +00000000 0000000000000010 00000000 CIE + Version: 1 + Augmentation: "zR" + Code alignment factor: 4 + Data alignment factor: -8 + Return address column: 30 + Augmentation data: 1b + DW_CFA_def_cfa: r31 \(sp\) ofs 0 + +00000014 0000000000000020 00000018 FDE cie=00000000 pc=[a-f0-9]+\.\.[a-f0-9]+ +#... + +00000038 0000000000000014 00000000 CIE + Version: 1 + Augmentation: "zRG" + Code alignment factor: 4 + Data alignment factor: -8 + Return address column: 30 + Augmentation data: 1b + DW_CFA_def_cfa: r31 \(sp\) ofs 0 + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + +00000050 000000000000001c 0000001c FDE cie=00000038 pc=[a-f0-9]+\.\.[a-f0-9]+ +#... diff --git a/ld/testsuite/ld-loongarch-elf/relax-after-alignment.d b/ld/testsuite/ld-loongarch-elf/relax-after-alignment.d index 844c518..08def25 100644 --- a/ld/testsuite/ld-loongarch-elf/relax-after-alignment.d +++ b/ld/testsuite/ld-loongarch-elf/relax-after-alignment.d @@ -2,6 +2,7 @@ #as: #ld: --defsym _start=0 #objdump: -d --no-show-raw-insn +#xfail: *-*-* .*:\s+file format .* diff --git a/ld/testsuite/ld-mips-elf/micromips-hilo-n32.d b/ld/testsuite/ld-mips-elf/micromips-hilo-n32.d deleted file mode 100644 index 1cb3d87..0000000 --- a/ld/testsuite/ld-mips-elf/micromips-hilo-n32.d +++ /dev/null @@ -1,8 +0,0 @@ -#name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs n32 -#source: ../../../gas/testsuite/gas/mips/mips-hilo.s -#source: mips-hilo.s -#as: -mmicromips -march=mips64r2 -#objdump: -d -#ld: -Tmips-hilo.ld -e 0x500000 -N -#notarget: mips*el-ps2-elf* -#dump: micromips-hilo.d diff --git a/ld/testsuite/ld-mips-elf/micromips-hilo-n64.d b/ld/testsuite/ld-mips-elf/micromips-hilo-n64.d index 1243e91..b3d34a1 100644 --- a/ld/testsuite/ld-mips-elf/micromips-hilo-n64.d +++ b/ld/testsuite/ld-mips-elf/micromips-hilo-n64.d @@ -1,4 +1,4 @@ -#name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs n64 +#name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs (n64) #source: ../../../gas/testsuite/gas/mips/mips-hilo-n64.s #source: mips-hilo.s #as: -mmicromips -march=mips64r2 diff --git a/ld/testsuite/ld-mips-elf/micromips-hilo-srec-n32.d b/ld/testsuite/ld-mips-elf/micromips-hilo-srec-n32.d deleted file mode 100644 index 1ea7daa..0000000 --- a/ld/testsuite/ld-mips-elf/micromips-hilo-srec-n32.d +++ /dev/null @@ -1,8 +0,0 @@ -#name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs srec n32 -#source: ../../../gas/testsuite/gas/mips/mips-hilo.s -#source: mips-hilo.s -#as: -mmicromips -march=mips64r2 -#objdump: -m mips:micromips -j .sec1 -D -#ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N -#notarget: mips*el-ps2-elf* -#dump: micromips-hilo.d diff --git a/ld/testsuite/ld-mips-elf/micromips-hilo-srec-n64.d b/ld/testsuite/ld-mips-elf/micromips-hilo-srec-n64.d index c25fbe8..efbaaa5 100644 --- a/ld/testsuite/ld-mips-elf/micromips-hilo-srec-n64.d +++ b/ld/testsuite/ld-mips-elf/micromips-hilo-srec-n64.d @@ -1,4 +1,4 @@ -#name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs srec n64 +#name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs srec (n64) #source: ../../../gas/testsuite/gas/mips/mips-hilo-n64.s #source: mips-hilo.s #as: -mmicromips -march=mips64r2 diff --git a/ld/testsuite/ld-mips-elf/micromips-hilo-srec.d b/ld/testsuite/ld-mips-elf/micromips-hilo-srec.d index e6b8459..c8bee0a 100644 --- a/ld/testsuite/ld-mips-elf/micromips-hilo-srec.d +++ b/ld/testsuite/ld-mips-elf/micromips-hilo-srec.d @@ -1,7 +1,7 @@ #name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs srec #source: ../../../gas/testsuite/gas/mips/mips-hilo.s #source: mips-hilo.s -#as: -mmicromips -march=mips32r2 +#as: -mmicromips -march=mips64r2 #objdump: -m mips:micromips -j .sec1 -D #ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N #notarget: mips*el-ps2-elf* diff --git a/ld/testsuite/ld-mips-elf/micromips-hilo.d b/ld/testsuite/ld-mips-elf/micromips-hilo.d index d518dfb..ec5c9d1 100644 --- a/ld/testsuite/ld-mips-elf/micromips-hilo.d +++ b/ld/testsuite/ld-mips-elf/micromips-hilo.d @@ -1,7 +1,7 @@ #name: R_MICROMIPS_HI16 and R_MICROMIPS_LO16 relocs #source: ../../../gas/testsuite/gas/mips/mips-hilo.s #source: mips-hilo.s -#as: -mmicromips -march=mips32r2 +#as: -mmicromips -march=mips64r2 #objdump: -d #ld: -Tmips-hilo.ld -e 0x500000 -N #notarget: mips*el-ps2-elf* diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index d0919ea..e8a1d42 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -815,42 +815,67 @@ run_dump_test_n32 "jalbal" noarch run_dump_test "mode-change-error-1" run_dump_test_o32 "mips16-hilo" noarch -run_dump_test_n32 "mips16-hilo-n32" noarch +run_dump_test_n32 "mips16-hilo" [list noarch [list name (n32)]] run_dump_test_o32 "mips16-hilo-srec" \ [list noarch \ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] -run_dump_test_n32 "mips16-hilo-srec-n32" \ +run_dump_test_n32 "mips16-hilo-srec" \ [list noarch \ + [list name (n32)] \ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] run_dump_test_o32 "mips16e2-hilo" noarch -run_dump_test_n32 "mips16e2-hilo-n32" noarch +run_dump_test_n32 "mips16e2-hilo" [list noarch [list name (n32)]] run_dump_test_o32 "mips16e2-hilo-srec" \ [list noarch \ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] -run_dump_test_n32 "mips16e2-hilo-srec-n32" \ +run_dump_test_n32 "mips16e2-hilo-srec" \ [list noarch \ + [list name (n32)] \ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] run_dump_test_o32 "mips-hilo" -run_dump_test_n32 "mips-hilo-n32" +run_dump_test_n32 "mips-hilo" [list [list name (n32)]] run_dump_test_n64 "mips-hilo-n64" run_dump_test_o32 "mips-hilo-srec" \ [list [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] -run_dump_test_n32 "mips-hilo-srec-n32" \ - [list [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] +run_dump_test_n32 "mips-hilo-srec" \ + [list [list name (n32)] \ + [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] run_dump_test_n64 "mips-hilo-srec-n64" \ [list [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] run_dump_test_o32 "micromips-hilo" noarch -run_dump_test_n32 "micromips-hilo-n32" noarch +run_dump_test_n32 "micromips-hilo" [list noarch [list name (n32)]] run_dump_test_n64 "micromips-hilo-n64" noarch run_dump_test_o32 "micromips-hilo-srec" \ [list noarch \ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] -run_dump_test_n32 "micromips-hilo-srec-n32" \ +run_dump_test_n32 "micromips-hilo-srec" \ [list noarch \ + [list name (n32)] \ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] run_dump_test_n64 "micromips-hilo-srec-n64" \ [list noarch \ [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] +run_dump_test_o32 "pcrel-hilo" +run_dump_test_n32 "pcrel-hilo" [list [list name (n32)]] +run_dump_test_n64 "pcrel-hilo" [list [list name (n64)]] +run_dump_test_o32 "pcrel-hilo-srec" \ + [list [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] +run_dump_test_n32 "pcrel-hilo-srec" \ + [list [list name (n32)] \ + [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] +run_dump_test_n64 "pcrel-hilo-srec" \ + [list [list name (n64)] \ + [list objdump [expr { [istarget *el-*-*] ? "-EL" : "-EB" }]]] + +run_dump_test_o32 "pr19977" +run_dump_test_n32 "pr19977" [list [list name (n32)]] +run_dump_test_o32 "pr19977-mips16" noarch +run_dump_test_n32 "pr19977-mips16" [list noarch [list name (n32)]] +run_dump_test_o32 "pr19977-micromips" noarch +run_dump_test_n32 "pr19977-micromips" [list noarch [list name (n32)]] +run_dump_test_o32 "pr19977-r" +run_dump_test_o32 "pr19977-r-mips16" noarch +run_dump_test_o32 "pr19977-r-micromips" noarch if { $linux_gnu } { run_dump_test_n32 "textrel-1" diff --git a/ld/testsuite/ld-mips-elf/mips-hilo-n32.d b/ld/testsuite/ld-mips-elf/mips-hilo-n32.d deleted file mode 100644 index 012e1f0..0000000 --- a/ld/testsuite/ld-mips-elf/mips-hilo-n32.d +++ /dev/null @@ -1,6 +0,0 @@ -#name: R_MIPS_HI16 and R_MIPS_LO16 relocs n32 -#source: ../../../gas/testsuite/gas/mips/mips-hilo.s -#source: mips-hilo.s -#objdump: -d -#ld: -Tmips-hilo.ld -e 0x500000 -N -#dump: mips-hilo.d diff --git a/ld/testsuite/ld-mips-elf/mips-hilo-n64.d b/ld/testsuite/ld-mips-elf/mips-hilo-n64.d index 5a3f919..9cac1b3 100644 --- a/ld/testsuite/ld-mips-elf/mips-hilo-n64.d +++ b/ld/testsuite/ld-mips-elf/mips-hilo-n64.d @@ -1,4 +1,4 @@ -#name: R_MIPS_HI16 and R_MIPS_LO16 relocs n64 +#name: R_MIPS_HI16 and R_MIPS_LO16 relocs (n64) #source: ../../../gas/testsuite/gas/mips/mips-hilo-n64.s #source: mips-hilo.s #objdump: -d diff --git a/ld/testsuite/ld-mips-elf/mips-hilo-srec-n32.d b/ld/testsuite/ld-mips-elf/mips-hilo-srec-n32.d deleted file mode 100644 index ccd0195..0000000 --- a/ld/testsuite/ld-mips-elf/mips-hilo-srec-n32.d +++ /dev/null @@ -1,6 +0,0 @@ -#name: R_MIPS_HI16 and R_MIPS_LO16 relocs srec n32 -#source: ../../../gas/testsuite/gas/mips/mips-hilo.s -#source: mips-hilo.s -#objdump: -m mips:4000 -j .sec1 -D -#ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N -#dump: mips-hilo.d diff --git a/ld/testsuite/ld-mips-elf/mips-hilo-srec-n64.d b/ld/testsuite/ld-mips-elf/mips-hilo-srec-n64.d index b02983e..19ba44c 100644 --- a/ld/testsuite/ld-mips-elf/mips-hilo-srec-n64.d +++ b/ld/testsuite/ld-mips-elf/mips-hilo-srec-n64.d @@ -1,4 +1,4 @@ -#name: R_MIPS_HI16 and R_MIPS_LO16 relocs srec n64 +#name: R_MIPS_HI16 and R_MIPS_LO16 relocs srec (n64) #source: ../../../gas/testsuite/gas/mips/mips-hilo-n64.s #source: mips-hilo.s #objdump: -m mips:4000 -j .sec1 -D diff --git a/ld/testsuite/ld-mips-elf/mips-hilo-srec.d b/ld/testsuite/ld-mips-elf/mips-hilo-srec.d index 59e5717..a6afb3f 100644 --- a/ld/testsuite/ld-mips-elf/mips-hilo-srec.d +++ b/ld/testsuite/ld-mips-elf/mips-hilo-srec.d @@ -1,6 +1,6 @@ #name: R_MIPS_HI16 and R_MIPS_LO16 relocs srec #source: ../../../gas/testsuite/gas/mips/mips-hilo.s #source: mips-hilo.s -#objdump: -m mips:3000 -j .sec1 -D +#objdump: -m mips:4000 -j .sec1 -D #ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N #dump: mips-hilo.d diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo-n32.d b/ld/testsuite/ld-mips-elf/mips16-hilo-n32.d deleted file mode 100644 index 08b591c..0000000 --- a/ld/testsuite/ld-mips-elf/mips16-hilo-n32.d +++ /dev/null @@ -1,7 +0,0 @@ -#name: R_MIPS16_HI16 and R_MIPS16_LO16 relocs n32 -#source: ../../../gas/testsuite/gas/mips/mips16-hilo.s -#source: mips-hilo.s -#as: -march=mips3 -#objdump: -mmips:16 -dr -#ld: -Tmips-hilo.ld -e 0x500000 -N -#dump: mips16-hilo.d diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo-srec-n32.d b/ld/testsuite/ld-mips-elf/mips16-hilo-srec-n32.d deleted file mode 100644 index 724adcb..0000000 --- a/ld/testsuite/ld-mips-elf/mips16-hilo-srec-n32.d +++ /dev/null @@ -1,7 +0,0 @@ -#name: R_MIPS16_HI16 and R_MIPS16_LO16 relocs srec n32 -#source: ../../../gas/testsuite/gas/mips/mips16-hilo.s -#source: mips-hilo.s -#as: -march=mips3 -#objdump: -mmips:16 -j .sec1 -D -#ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N -#dump: mips16-hilo.d diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo-srec.d b/ld/testsuite/ld-mips-elf/mips16-hilo-srec.d index 9c41d9a..cd20d98 100644 --- a/ld/testsuite/ld-mips-elf/mips16-hilo-srec.d +++ b/ld/testsuite/ld-mips-elf/mips16-hilo-srec.d @@ -1,7 +1,7 @@ #name: R_MIPS16_HI16 and R_MIPS16_LO16 relocs srec #source: ../../../gas/testsuite/gas/mips/mips16-hilo.s #source: mips-hilo.s -#as: -march=mips1 +#as: -march=mips3 #objdump: -mmips:16 -j .sec1 -D #ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N #dump: mips16-hilo.d diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo.d b/ld/testsuite/ld-mips-elf/mips16-hilo.d index 1f01ca2..3a8dc71 100644 --- a/ld/testsuite/ld-mips-elf/mips16-hilo.d +++ b/ld/testsuite/ld-mips-elf/mips16-hilo.d @@ -1,8 +1,8 @@ #name: R_MIPS16_HI16 and R_MIPS16_LO16 relocs #source: ../../../gas/testsuite/gas/mips/mips16-hilo.s #source: mips-hilo.s -#as: -march=mips1 -#objdump: -mmips:16 -dr +#as: -march=mips3 +#objdump: -mmips:16 -d #ld: -Tmips-hilo.ld -e 0x500000 -N .*: file format (:?elf.*mips.*|srec) diff --git a/ld/testsuite/ld-mips-elf/mips16e2-hilo-n32.d b/ld/testsuite/ld-mips-elf/mips16e2-hilo-n32.d deleted file mode 100644 index e900e87..0000000 --- a/ld/testsuite/ld-mips-elf/mips16e2-hilo-n32.d +++ /dev/null @@ -1,8 +0,0 @@ -#name: MIPS16e2 R_MIPS16_HI16 and R_MIPS16_LO16 relocs n32 -#source: ../../../gas/testsuite/gas/mips/mips-hilo.s -#source: mips-hilo.s -#as: -mips16 -mmips16e2 -march=mips64r2 -#objdump: -d -#ld: -Tmips-hilo.ld -e 0x500000 -N -#notarget: mips*el-ps2-elf* -#dump: mips16e2-hilo.d diff --git a/ld/testsuite/ld-mips-elf/mips16e2-hilo-srec-n32.d b/ld/testsuite/ld-mips-elf/mips16e2-hilo-srec-n32.d deleted file mode 100644 index 0132fa8..0000000 --- a/ld/testsuite/ld-mips-elf/mips16e2-hilo-srec-n32.d +++ /dev/null @@ -1,8 +0,0 @@ -#name: MIPS16e2 R_MIPS16_HI16 and R_MIPS16_LO16 relocs srec n32 -#source: ../../../gas/testsuite/gas/mips/mips-hilo.s -#source: mips-hilo.s -#as: -mips16 -mmips16e2 -march=mips64r2 -#objdump: -mmips:16 -j .sec1 -D -#ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N -#notarget: mips*el-ps2-elf* -#dump: mips16e2-hilo.d diff --git a/ld/testsuite/ld-mips-elf/mips16e2-hilo-srec.d b/ld/testsuite/ld-mips-elf/mips16e2-hilo-srec.d index e46708b..12a2d28 100644 --- a/ld/testsuite/ld-mips-elf/mips16e2-hilo-srec.d +++ b/ld/testsuite/ld-mips-elf/mips16e2-hilo-srec.d @@ -1,7 +1,7 @@ #name: MIPS16e2 R_MIPS16_HI16 and R_MIPS16_LO16 relocs srec #source: ../../../gas/testsuite/gas/mips/mips-hilo.s #source: mips-hilo.s -#as: -mips16 -mmips16e2 -march=mips32r2 +#as: -mips16 -mmips16e2 -march=mips64r2 #objdump: -mmips:16 -j .sec1 -D #ld: --oformat=srec -Tmips-hilo.ld -e 0x500000 -N #notarget: mips*el-ps2-elf* diff --git a/ld/testsuite/ld-mips-elf/mips16e2-hilo.d b/ld/testsuite/ld-mips-elf/mips16e2-hilo.d index eb93873..5aa1624 100644 --- a/ld/testsuite/ld-mips-elf/mips16e2-hilo.d +++ b/ld/testsuite/ld-mips-elf/mips16e2-hilo.d @@ -1,7 +1,7 @@ #name: MIPS16e2 R_MIPS16_HI16 and R_MIPS16_LO16 relocs #source: ../../../gas/testsuite/gas/mips/mips-hilo.s #source: mips-hilo.s -#as: -mips16 -mmips16e2 -march=mips32r2 +#as: -mips16 -mmips16e2 -march=mips64r2 #objdump: -d #ld: -Tmips-hilo.ld -e 0x500000 -N #notarget: mips*el-ps2-elf* diff --git a/ld/testsuite/ld-mips-elf/pcrel-hilo-srec.d b/ld/testsuite/ld-mips-elf/pcrel-hilo-srec.d new file mode 100644 index 0000000..e9b0956 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pcrel-hilo-srec.d @@ -0,0 +1,6 @@ +#name: MIPSr6 PCHI16/PCLO16 relocations srec +#as: -mno-pdr +#ld: -e 0 --defsym=baz=0xfedcba98 -T pcrel-hilo.ld --oformat=srec +#objdump: -m mips:isa64r6 -D -j .sec1 +#source: ../../../gas/testsuite/gas/mips/pcrel-hilo.s +#dump: pcrel-hilo.d diff --git a/ld/testsuite/ld-mips-elf/pcrel-hilo.d b/ld/testsuite/ld-mips-elf/pcrel-hilo.d new file mode 100644 index 0000000..ae5d052 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pcrel-hilo.d @@ -0,0 +1,42 @@ +#name: MIPSr6 PCHI16/PCLO16 relocations +#as: -mno-pdr +#ld: -e 0 --defsym=baz=0xfedcba98 -T pcrel-hilo.ld +#objdump: -m mips:isa64r6 -d +#source: ../../../gas/testsuite/gas/mips/pcrel-hilo.s + +.*: +file format (?:.*mips.*|srec) + +Disassembly of section \.(?:text|sec1): + +0*10000000 <[^>]*>: + *10000000: ec9e2456 auipc a0,0x2456 + *10000004: 3c05fedd lui a1,0xfedd + *10000008: ecde2456 auipc a2,0x2456 + *1000000c: ecfe2457 auipc a3,0x2457 + *10000010: 24847fec addiu a0,a0,32748 + *10000014: 24a5ba98 addiu a1,a1,-17768 + *10000018: 24c67ff0 addiu a2,a2,32752 + *1000001c: 24e7ffe4 addiu a3,a3,-28 + *10000020: ec9e2456 auipc a0,0x2456 + *10000024: 3c05fedd lui a1,0xfedd + *10000028: ecde2456 auipc a2,0x2456 + *1000002c: ecfe2457 auipc a3,0x2457 + \.\.\. + *10030030: 24847fec addiu a0,a0,32748 + *10030034: 24a5ba98 addiu a1,a1,-17768 + *10030038: 24c67ff0 addiu a2,a2,32752 + *1003003c: 24e7ffe4 addiu a3,a3,-28 + *10030040: 24107fec li s0,32748 + *10030044: 2411ba98 li s1,-17768 + *10030048: 24127ff0 li s2,32752 + *1003004c: 2413ffe4 li s3,-28 + *10030050: ec9e2456 auipc a0,0x2456 + *10030054: 3c05fedd lui a1,0xfedd + *10030058: ecde2456 auipc a2,0x2456 + *1003005c: ecfe2457 auipc a3,0x2457 + *10030060: 00902021 addu a0,a0,s0 + *10030064: 00b12821 addu a1,a1,s1 + *10030068: 00d23021 addu a2,a2,s2 + *1003006c: 00f33821 addu a3,a3,s3 + *10030070: d81f0000 jrc ra + \.\.\. diff --git a/ld/testsuite/ld-mips-elf/pcrel-hilo.ld b/ld/testsuite/ld-mips-elf/pcrel-hilo.ld new file mode 100644 index 0000000..77d361d --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pcrel-hilo.ld @@ -0,0 +1,14 @@ +MEMORY +{ + text (rx) : ORIGIN = 0x10000000, LENGTH = 0x40000 + data (w) : ORIGIN = 0x34560000, LENGTH = 0x40000 +} +SECTIONS +{ + .text : { *(.text) } >text + .data : { *(.data) } >data + .symtab : { *(.symtab) } + .strtab : { *(.strtab) } + .shstrtab : { *(.shstrtab) } + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-mips-elf/pr19977-micromips.d b/ld/testsuite/ld-mips-elf/pr19977-micromips.d new file mode 100644 index 0000000..021b29c --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pr19977-micromips.d @@ -0,0 +1,25 @@ +#name: pr19977 microMIPS +#source: ../../../gas/testsuite/gas/mips/pr19977.s +#as: -mmicromips -march=mips64r2 +#objdump: -d +#ld: -Tpr19977.ld -e 0 -N +#notarget: mips*el-ps2-elf* + +.*: file format elf.*mips.* + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000: 3060 1122 li v1,4386 +10000004: 0063 8000 sll v1,v1,0x10 +10000008: 3063 2988 addiu v1,v1,10632 +1000000c: 3060 1122 li v1,4386 +10000010: 0063 8000 sll v1,v1,0x10 +10000014: 3063 1988 addiu v1,v1,6536 +10000018: 3060 1122 li v1,4386 +1000001c: 0063 8000 sll v1,v1,0x10 +10000020: 3063 a988 addiu v1,v1,-22136 +10000024: 3060 1122 li v1,4386 +10000028: 0063 8000 sll v1,v1,0x10 +1000002c: 3063 9988 addiu v1,v1,-26232 +#pass diff --git a/ld/testsuite/ld-mips-elf/pr19977-mips16.d b/ld/testsuite/ld-mips-elf/pr19977-mips16.d new file mode 100644 index 0000000..c927357 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pr19977-mips16.d @@ -0,0 +1,24 @@ +#name: pr19977 MIPS16 +#source: ../../../gas/testsuite/gas/mips/pr19977.s +#as: -mips16 -march=mips3 +#objdump: -d +#ld: -Tpr19977.ld -e 0 -N + +.*: file format elf.*mips.* + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000: f122 6b02 li v1,4386 +10000004: f400 3360 sll v1,16 +10000008: f185 4b08 addiu v1,10632 +1000000c: f122 6b02 li v1,4386 +10000010: f400 3360 sll v1,16 +10000014: f183 4b08 addiu v1,6536 +10000018: f122 6b02 li v1,4386 +1000001c: f400 3360 sll v1,16 +10000020: f195 4b08 addiu v1,-22136 +10000024: f122 6b02 li v1,4386 +10000028: f400 3360 sll v1,16 +1000002c: f193 4b08 addiu v1,-26232 +#pass diff --git a/ld/testsuite/ld-mips-elf/pr19977-r-micromips.d b/ld/testsuite/ld-mips-elf/pr19977-r-micromips.d new file mode 100644 index 0000000..db99b97 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pr19977-r-micromips.d @@ -0,0 +1,8 @@ +#name: pr19977 microMIPS -r +#source: pr19977-r.s +#source: ../../../gas/testsuite/gas/mips/pr19977.s +#as: -mmicromips -march=mips64r2 +#objdump: -dr +#ld: -r +#notarget: mips*el-ps2-elf* +#dump: pr19977-r.d diff --git a/ld/testsuite/ld-mips-elf/pr19977-r-mips16.d b/ld/testsuite/ld-mips-elf/pr19977-r-mips16.d new file mode 100644 index 0000000..dafa793 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pr19977-r-mips16.d @@ -0,0 +1,7 @@ +#name: pr19977 MIPS16 -r +#source: pr19977-r.s +#source: ../../../gas/testsuite/gas/mips/pr19977.s +#as: -mips16 -march=mips3 +#objdump: -dr +#ld: -r +#dump: pr19977-r.d diff --git a/ld/testsuite/ld-mips-elf/pr19977-r.d b/ld/testsuite/ld-mips-elf/pr19977-r.d new file mode 100644 index 0000000..166194b --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pr19977-r.d @@ -0,0 +1,32 @@ +#name: pr19977 MIPS -r +#source: pr19977-r.s +#source: ../../../gas/testsuite/gas/mips/pr19977.s +#objdump: -dr +#ld: -r + +.* + +Disassembly of section \.text: + +0+ <foo>: + 0: .* li v1,4387 + 0: R_(|MICRO)MIPS(|16)_TLS_TPREL_HI16 \$loc0 + 4: .* sll .* + 8: .* addiu v1(|,v1),-26232 + 8: R_(|MICRO)MIPS(|16)_TLS_TPREL_LO16 \$loc0 + c: .* li v1,4387 + c: R_(|MICRO)MIPS(|16)_TLS_DTPREL_HI16 \$loc0 + 10: .* sll .* + 14: .* addiu v1(|,v1),-26232 + 14: R_(|MICRO)MIPS(|16)_TLS_DTPREL_LO16 \$loc0 + 18: .* li v1,4387 + 18: R_(|MICRO)MIPS(|16)_TLS_TPREL_HI16 \.tdata + 1c: .* sll .* + 20: .* addiu v1(|,v1),-30328 + 20: R_(|MICRO)MIPS(|16)_TLS_TPREL_LO16 \.tdata + 24: .* li v1,4387 + 24: R_(|MICRO)MIPS(|16)_TLS_DTPREL_HI16 \.tdata + 28: .* sll .* + 2c: .* addiu v1(|,v1),-30328 + 2c: R_(|MICRO)MIPS(|16)_TLS_DTPREL_LO16 \.tdata +#pass diff --git a/ld/testsuite/ld-mips-elf/pr19977-r.s b/ld/testsuite/ld-mips-elf/pr19977-r.s new file mode 100644 index 0000000..4a46b30 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pr19977-r.s @@ -0,0 +1,2 @@ + .section .tdata,"awT",%progbits + .space 28672 diff --git a/ld/testsuite/ld-mips-elf/pr19977.d b/ld/testsuite/ld-mips-elf/pr19977.d new file mode 100644 index 0000000..145f697 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pr19977.d @@ -0,0 +1,23 @@ +#name: pr19977 MIPS +#source: ../../../gas/testsuite/gas/mips/pr19977.s +#objdump: -d +#ld: -Tpr19977.ld -e 0 -N + +.*: file format elf.*mips.* + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000: 24031122 li v1,4386 +10000004: 00031c00 sll v1,v1,0x10 +10000008: 24632988 addiu v1,v1,10632 +1000000c: 24031122 li v1,4386 +10000010: 00031c00 sll v1,v1,0x10 +10000014: 24631988 addiu v1,v1,6536 +10000018: 24031122 li v1,4386 +1000001c: 00031c00 sll v1,v1,0x10 +10000020: 2463a988 addiu v1,v1,-22136 +10000024: 24031122 li v1,4386 +10000028: 00031c00 sll v1,v1,0x10 +1000002c: 24639988 addiu v1,v1,-26232 +#pass diff --git a/ld/testsuite/ld-mips-elf/pr19977.ld b/ld/testsuite/ld-mips-elf/pr19977.ld new file mode 100644 index 0000000..0b2f7c1 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/pr19977.ld @@ -0,0 +1,14 @@ +MEMORY +{ + text (rx) : ORIGIN = 0x10000000, LENGTH = 0x40000 + data (w) : ORIGIN = 0x34560000, LENGTH = 0x40000 +} +SECTIONS +{ + .text : { *(.text) } >text + .tdata : { *(.tdata) } >data + .symtab : { *(.symtab) } + .strtab : { *(.strtab) } + .shstrtab : { *(.shstrtab) } + /DISCARD/ : { *(*) } +} diff --git a/ld/testsuite/ld-s390/s390.exp b/ld/testsuite/ld-s390/s390.exp index aaba88d..452811d 100644 --- a/ld/testsuite/ld-s390/s390.exp +++ b/ld/testsuite/ld-s390/s390.exp @@ -135,18 +135,20 @@ set s390xtests { "pr32969_64-2"} } -if [istarget "s390-*-*"] { +if { [istarget "s390-*-*"] || [istarget "s390x-*-*"] } { run_ld_link_tests $s390tests + + run_dump_test "pr26918-1" + run_dump_test "reloccheck-1" + run_dump_test "reloctlsle-1" + } if [istarget "s390x-*-*"] { - run_ld_link_tests $s390tests run_ld_link_tests $s390xtests -} -set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] -foreach t $test_list { - # We need to strip the ".d", but can leave the dirname. - verbose [file rootname $t] - run_dump_test [file rootname $t] + if { ![skip_sframe_tests] } { + run_dump_test "sframe-simple-1" + run_dump_test "sframe-plt-1" + } } diff --git a/ld/testsuite/ld-s390/sframe-bar.s b/ld/testsuite/ld-s390/sframe-bar.s new file mode 100644 index 0000000..f707569 --- /dev/null +++ b/ld/testsuite/ld-s390/sframe-bar.s @@ -0,0 +1,21 @@ + .text + .globl bar + .type bar, @function +bar: + .cfi_startproc + stmg %r14,%r15,112(%r15) + .cfi_rel_offset %r14, 112 + .cfi_rel_offset %r15, 120 + lay %r15,-160(%r15) + .cfi_adjust_cfa_offset 160 + clgfi %r2,1000 + jle .Lreturn + brasl %r14,foo@PLT +.Lreturn: + lay %r15,160(%r15) + .cfi_adjust_cfa_offset -160 + lg %r14,112(%r15) + .cfi_restore %r14 + br %r14 + .cfi_endproc + .size bar, .-bar diff --git a/ld/testsuite/ld-s390/sframe-foo.s b/ld/testsuite/ld-s390/sframe-foo.s new file mode 100644 index 0000000..75657e9 --- /dev/null +++ b/ld/testsuite/ld-s390/sframe-foo.s @@ -0,0 +1,9 @@ + .text + .globl foo + .type foo, @function +foo: + .cfi_startproc + msgfi %r2,42 + br %r14 + .cfi_endproc + .size foo, .-foo diff --git a/ld/testsuite/ld-s390/sframe-plt-1.d b/ld/testsuite/ld-s390/sframe-plt-1.d new file mode 100644 index 0000000..db09030 --- /dev/null +++ b/ld/testsuite/ld-s390/sframe-plt-1.d @@ -0,0 +1,29 @@ +#as: --gsframe +#source: sframe-foo.s +#source: sframe-bar.s +#objdump: --sframe=.sframe +#ld: -shared --no-rosegment +#name: SFrame for plt0 and pltN + +.*: +file format .* + +Contents of the SFrame section .sframe: + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_SORTED, + SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 4 + Num FREs: 8 + + Function Index : + + func idx \[0\]: pc = 0x1e8, size = 32 bytes + STARTPC +CFA +FP +RA + + 0+1e8 +sp\+160 +u +u + + + func idx \[1\]: pc = 0x208, size = 32 bytes + STARTPC\[m\] +CFA +FP +RA + + 0+0 +sp\+160 +u +u + + +#... diff --git a/ld/testsuite/ld-s390/sframe-simple-1.d b/ld/testsuite/ld-s390/sframe-simple-1.d new file mode 100644 index 0000000..1c1bf32 --- /dev/null +++ b/ld/testsuite/ld-s390/sframe-simple-1.d @@ -0,0 +1,32 @@ +#as: --gsframe +#source: sframe-foo.s +#source: sframe-bar.s +#objdump: --sframe=.sframe +#ld: -shared --no-rosegment +#name: SFrame simple link + +.*: +file format .* + +Contents of the SFrame section .sframe: + Header : + + Version: SFRAME_VERSION_2 + Flags: SFRAME_F_FDE_SORTED, + SFRAME_F_FDE_FUNC_START_PCREL + Num FDEs: 4 + Num FREs: 8 + + Function Index : + +#... + func idx \[2\]: pc = 0x228, size = 8 bytes + STARTPC +CFA +FP +RA + + 0+228 +sp\+160 +u +u + + + func idx \[3\]: pc = 0x230, size = 42 bytes + STARTPC +CFA +FP +RA + + 0+230 +sp\+160 +u +u + + 0+236 +sp\+160 +u +c-48 + + 0+23c +sp\+320 +u +c-48 + + 0+252 +sp\+160 +u +c-48 + + 0+258 +sp\+160 +u +u + diff --git a/libsframe/Makefile.in b/libsframe/Makefile.in index 13f4c26..fa705dd 100644 --- a/libsframe/Makefile.in +++ b/libsframe/Makefile.in @@ -118,7 +118,8 @@ check_PROGRAMS = $(am__EXEEXT_1) @HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.encode/encode-1 \ @HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.find/findfre-1 \ @HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.find/findfunc-1 \ -@HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.find/plt-findfre-1 +@HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.find/plt-findfre-1 \ +@HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.find/plt-findfre-2 subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \ @@ -193,7 +194,8 @@ libsframe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ @HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.encode/encode-1$(EXEEXT) \ @HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.find/findfre-1$(EXEEXT) \ @HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.find/findfunc-1$(EXEEXT) \ -@HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.find/plt-findfre-1$(EXEEXT) +@HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.find/plt-findfre-1$(EXEEXT) \ +@HAVE_COMPAT_DEJAGNU_TRUE@ testsuite/libsframe.find/plt-findfre-2$(EXEEXT) am__dirstamp = $(am__leading_dot)dirstamp am_testsuite_libsframe_decode_be_flipping_OBJECTS = testsuite/libsframe.decode/testsuite_libsframe_decode_be_flipping-be-flipping.$(OBJEXT) testsuite_libsframe_decode_be_flipping_OBJECTS = \ @@ -230,6 +232,11 @@ testsuite_libsframe_find_plt_findfre_1_OBJECTS = \ $(am_testsuite_libsframe_find_plt_findfre_1_OBJECTS) testsuite_libsframe_find_plt_findfre_1_DEPENDENCIES = \ ${top_builddir}/libsframe.la +am_testsuite_libsframe_find_plt_findfre_2_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.$(OBJEXT) +testsuite_libsframe_find_plt_findfre_2_OBJECTS = \ + $(am_testsuite_libsframe_find_plt_findfre_2_OBJECTS) +testsuite_libsframe_find_plt_findfre_2_DEPENDENCIES = \ + ${top_builddir}/libsframe.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -271,7 +278,8 @@ SOURCES = $(libsframe_la_SOURCES) \ $(testsuite_libsframe_encode_encode_1_SOURCES) \ $(testsuite_libsframe_find_findfre_1_SOURCES) \ $(testsuite_libsframe_find_findfunc_1_SOURCES) \ - $(testsuite_libsframe_find_plt_findfre_1_SOURCES) + $(testsuite_libsframe_find_plt_findfre_1_SOURCES) \ + $(testsuite_libsframe_find_plt_findfre_2_SOURCES) DIST_SOURCES = $(libsframe_la_SOURCES) \ $(testsuite_libsframe_decode_be_flipping_SOURCES) \ $(testsuite_libsframe_decode_frecnt_1_SOURCES) \ @@ -279,7 +287,8 @@ DIST_SOURCES = $(libsframe_la_SOURCES) \ $(testsuite_libsframe_encode_encode_1_SOURCES) \ $(testsuite_libsframe_find_findfre_1_SOURCES) \ $(testsuite_libsframe_find_findfunc_1_SOURCES) \ - $(testsuite_libsframe_find_plt_findfre_1_SOURCES) + $(testsuite_libsframe_find_plt_findfre_1_SOURCES) \ + $(testsuite_libsframe_find_plt_findfre_2_SOURCES) AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) am__v_DVIPS_0 = @echo " DVIPS " $@; @@ -569,6 +578,9 @@ testsuite_libsframe_find_findfunc_1_CPPFLAGS = -I${top_srcdir}/../include -Wall testsuite_libsframe_find_plt_findfre_1_SOURCES = testsuite/libsframe.find/plt-findfre-1.c testsuite_libsframe_find_plt_findfre_1_LDADD = ${top_builddir}/libsframe.la testsuite_libsframe_find_plt_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall +testsuite_libsframe_find_plt_findfre_2_SOURCES = testsuite/libsframe.find/plt-findfre-2.c +testsuite_libsframe_find_plt_findfre_2_LDADD = ${top_builddir}/libsframe.la +testsuite_libsframe_find_plt_findfre_2_CPPFLAGS = -I${top_srcdir}/../include -Wall all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am @@ -748,6 +760,13 @@ testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.$( testsuite/libsframe.find/plt-findfre-1$(EXEEXT): $(testsuite_libsframe_find_plt_findfre_1_OBJECTS) $(testsuite_libsframe_find_plt_findfre_1_DEPENDENCIES) $(EXTRA_testsuite_libsframe_find_plt_findfre_1_DEPENDENCIES) testsuite/libsframe.find/$(am__dirstamp) @rm -f testsuite/libsframe.find/plt-findfre-1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(testsuite_libsframe_find_plt_findfre_1_OBJECTS) $(testsuite_libsframe_find_plt_findfre_1_LDADD) $(LIBS) +testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.$(OBJEXT): \ + testsuite/libsframe.find/$(am__dirstamp) \ + testsuite/libsframe.find/$(DEPDIR)/$(am__dirstamp) + +testsuite/libsframe.find/plt-findfre-2$(EXEEXT): $(testsuite_libsframe_find_plt_findfre_2_OBJECTS) $(testsuite_libsframe_find_plt_findfre_2_DEPENDENCIES) $(EXTRA_testsuite_libsframe_find_plt_findfre_2_DEPENDENCIES) testsuite/libsframe.find/$(am__dirstamp) + @rm -f testsuite/libsframe.find/plt-findfre-2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(testsuite_libsframe_find_plt_findfre_2_OBJECTS) $(testsuite_libsframe_find_plt_findfre_2_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -768,6 +787,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfre_1-findfre-1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfunc_1-findfunc-1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @@ -912,6 +932,20 @@ testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.ob @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.obj `if test -f 'testsuite/libsframe.find/plt-findfre-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/plt-findfre-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/plt-findfre-1.c'; fi` +testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.o: testsuite/libsframe.find/plt-findfre-2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_2_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.o -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.Tpo -c -o testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.o `test -f 'testsuite/libsframe.find/plt-findfre-2.c' || echo '$(srcdir)/'`testsuite/libsframe.find/plt-findfre-2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.Tpo testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testsuite/libsframe.find/plt-findfre-2.c' object='testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_2_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.o `test -f 'testsuite/libsframe.find/plt-findfre-2.c' || echo '$(srcdir)/'`testsuite/libsframe.find/plt-findfre-2.c + +testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.obj: testsuite/libsframe.find/plt-findfre-2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_2_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.obj -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.Tpo -c -o testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.obj `if test -f 'testsuite/libsframe.find/plt-findfre-2.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/plt-findfre-2.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/plt-findfre-2.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.Tpo testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testsuite/libsframe.find/plt-findfre-2.c' object='testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_2_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.obj `if test -f 'testsuite/libsframe.find/plt-findfre-2.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/plt-findfre-2.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/plt-findfre-2.c'; fi` + mostlyclean-libtool: -rm -f *.lo diff --git a/libsframe/doc/sframe-spec.texi b/libsframe/doc/sframe-spec.texi index 69fe873..7307789 100644 --- a/libsframe/doc/sframe-spec.texi +++ b/libsframe/doc/sframe-spec.texi @@ -77,12 +77,13 @@ Appendices @section Overview @cindex Overview -The SFrame stack trace information is provided in a loaded section, known as the -@code{.sframe} section. When available, the @code{.sframe} section appears in -a new segment of its own, PT_GNU_SFRAME. +The SFrame stack trace information is provided in a loaded section, known as +the @code{.sframe} section. When available, the @code{.sframe} section appears +in segment of type PT_GNU_SFRAME. An ELF SFrame section will have the type +SHT_GNU_SFRAME. -The SFrame format is currently supported only for select ABIs, namely, AMD64 -and AAPCS64. +The SFrame format is currently supported only for select ABIs, namely, AMD64, +AAPCS64, and s390x. A portion of the SFrame format follows an unaligned on-disk representation. Some data structures, however, (namely the SFrame header and the SFrame @@ -139,6 +140,31 @@ bytes to the start PC of the associated function from the field itself. bytes to the start PC of the associated function from the start of the SFrame section. @end itemize +@item +Add a new ABI/arch identifier SFRAME_ABI_S390X_ENDIAN_BIG for the s390 +architecture (64-bit) s390x ABI. Other s390x-specific backward compatible +changes including the following helper definitions have been incrementally +added to SFrame version 2 only: + @itemize @minus + @item SFRAME_S390X_SP_VAL_OFFSET: SP value offset from CFA. + @item SFRAME_V2_S390X_OFFSET_IS_REGNUM: Test whether FP/RA offset is an encoded +DWARF register number. + @item SFRAME_V2_S390X_OFFSET_ENCODE_REGNUM: Encode a DWARF register number as an +FP/RA offset. + @item SFRAME_V2_S390X_OFFSET_DECODE_REGNUM: Decode a DWARF register number from +an FP/RA offset. + @item SFRAME_FRE_RA_OFFSET_INVALID: Invalid RA offset value (like +SFRAME_CFA_FIXED_RA_INVALID). Used on s390x as padding offset to represent +FP without RA saved. + @item SFRAME_S390X_CFA_OFFSET_ADJUSTMENT: CFA offset (from CFA base register) +adjustment value. Used to enable use of 8-bit SFrame offsets on s390x. + @item SFRAME_S390X_CFA_OFFSET_ALIGNMENT_FACTOR: CFA offset alignment factor. +Used to scale down the CFA offset to improve the use of 8-bit SFrame offsets. + @item SFRAME_V2_S390X_CFA_OFFSET_ENCODE: Encode CFA offset (i.e., apply +CFA offset adjustment and then scale down by CFA offset alignment factor). + @item SFRAME_V2_S390X_CFA_OFFSET_DECODE: Decode CFA offset (i.e., scale up +by CFA offset alignment factor and then revert CFA offset adjustment). + @end itemize @end itemize SFrame version 1 is now obsolete and should not be used. @@ -421,6 +447,10 @@ in the format. @item @code{SFRAME_ABI_AMD64_ENDIAN_LITTLE} @tab 3 @tab AMD64 little-endian +@tindex SFRAME_ABI_S390X_ENDIAN_BIG +@item @code{SFRAME_ABI_S390X_ENDIAN_BIG} +@tab 4 @tab s390x big-endian + @end multitable The presence of an explicit identification of ABI/arch in SFrame may allow @@ -780,10 +810,11 @@ This section covers the ABI/arch-specific definition of the SFrame file format. Currently, the only part of the SFrame file format definition that is ABI/arch-specific is the interpretation of the variable number of bytes at the -tail end of each SFrame FRE. Currently, these bytes are only used for -representing stack offsets (for all the currently supported ABIs). It is -recommended to peruse this section along with @xref{SFrame Frame Row Entries} -for clarity of context. +tail end of each SFrame FRE. Currently, these bytes are used for representing +stack offsets (for AMD64 and AARCH64 ABIs). For s390x ABI, the interpretation +of these bytes may be stack offsets or even register numbers. It is recommended +to peruse this section along with @xref{SFrame Frame Row Entries} for clarity of +context. Future ABIs must specify the algorithm for identifying the appropriate SFrame FRE stack offsets in this chapter. This should inevitably include the @@ -794,6 +825,7 @@ auxiliary SFrame header, etc., if used, must also be outlined here. @menu * AMD64:: * AArch64:: +* s390x:: @end menu @node AMD64 @@ -850,6 +882,77 @@ Hence, in summary: @item 3 @tab FP = CFA + offset3 @end multitable +@node s390x +@section s390x + +A stack tracer implementation must initialize the SP to the designated SP +register value, the FP to the preferred FP register value, and the RA to the +designated RA register value in the topmost stack frame of the callchain. This +is required, as either the SP or FP is used as CFA base register and as the FP +and/or RA are not necessarily saved on the stack. For RA this may only be the +case in the topmost stack frame of the callchain. For FP this may be the case +in any stack frame. + +Irrespective of the ABI, the first stack offset is always used to locate the +CFA. On s390x the value of the offset is stored adjusted by the s390x-specific +@code{SFRAME_S390X_CFA_OFFSET_ADJUSTMENT} and scaled down by the s390x-specific +@code{SFRAME_S390X_CFA_OFFSET_ALIGNMENT_FACTOR}, to enable and improve the use +of signed 8-bit offsets on s390x. +s390x-specific helpers @code{SFRAME_V2_S390X_CFA_OFFSET_ENCODE} and +@code{SFRAME_V2_S390X_CFA_OFFSET_DECODE} are provided to perform or undo +the adjustment and scaling. The CFA offset can therefore be interpreted as: +CFA = @code{BASE_REG} + offset1 - @code{SFRAME_S390X_CFA_OFFSET_ADJUSTMENT} +or +CFA = @code{BASE_REG} + + (offset1 * @code{SFRAME_S390X_CFA_OFFSET_ALIGNMENT_FACTOR}) + - @code{SFRAME_S390X_CFA_OFFSET_ADJUSTMENT}. +The identification of the @code{BASE_REG} is done by using the +@code{fre_cfa_base_reg_id} field in the SFrame FRE info word. + +The (64-bit) s390x ELF ABI does not mandate the precise location in a function +where the return address (RA) and frame pointer (FP) are saved, if at all. +Hence the need to track RA in the SFrame stack trace format. As RA is being +tracked in this ABI, the second stack offset is always used to locate the RA +stack slot, by interpreting it as: RA = CFA + offset2, unless the offset has a +value of @code{SFRAME_FRE_RA_OFFSET_INVALID}. RA remains unchanged, if the +offset is not available or has a value of @code{SFRAME_FRE_RA_OFFSET_INVALID}. +Stack tracers are recommended to validate that the "unchanged RA" pattern, when +present, is seen only for the topmost stack frame. The third stack offset is +used to locate the FP stack slot, by interpreting it as: FP = CFA + offset3. +FP remains unchanged, if the offset is not available. + +In leaf functions the RA and FP may be saved in other registers, such as +floating-point registers (FPRs), instead of on the stack. To represent this +in the SFrame stack trace format the DWARF register number is encoded as +RA/FP offset using the least-significant bit (LSB) as indication: +offset = (regnum << 1) | 1. A LSB of zero indicates a stack slot offset. +A LSB of one indicates a DWARF register number, which is interpreted as: +regnum = offset >> 1. Given the nature of leaf functions, this can only occur +in the topmost frame during stack tracing. It is recommended that a stack +tracer implementation performs the required checks to ensure that restoring +FP and RA from the said register locations is done only for topmost stack +frame in the callchain. + +Given the nature of things, the number of stack offsets and/or register numbers +seen on s390x per SFrame FRE is either 1, 2, or 3. + +Hence, in summary: + +@multitable @columnfractions .15 .85 +@headitem Offset ID @tab Interpretation in s390x +@item 1 @tab CFA = @code{BASE_REG} + offset1 +@item 2 @tab RA stack slot = CFA + offset2, if (offset2 & 1 == 0) + @*RA register number = offset2 >> 1, if (offset2 & 1 == 1) + @*RA not saved if (offset2 == @code{SFRAME_FRE_RA_OFFSET_INVALID}) +@item 3 @tab FP stack slot = CFA + offset3, if (offset3 & 1 == 0) + @*FP register number = offset3 >> 1, if (offset3 & 1 == 1) +@end multitable + +The s390x ELF ABI defines the CFA as stack pointer (SP) at call site +160. The +SP can therefore be obtained using the SP value offset from CFA +@code{SFRAME_S390X_SP_VAL_OFFSET} of -160 as follows: +SP = CFA + @code{SFRAME_S390X_SP_VAL_OFFSET} + @node Generating Stack Traces using SFrame @appendix Generating Stack Traces using SFrame @@ -913,7 +1016,7 @@ SFrame section. fp_offset = sframe_fre_get_fp_offset (fre); cfa = base_reg_val + cfa_offset; - next_frame->sp = cfa; + next_frame->sp = cfa [+ SFRAME_S390X_SP_VAL_OFFSET on s390x]; ra_stack_loc = cfa + ra_offset; // Get the address stored in the stack location. diff --git a/libsframe/libsframe.ver b/libsframe/libsframe.ver index 06324ee..8cc80da 100644 --- a/libsframe/libsframe.ver +++ b/libsframe/libsframe.ver @@ -1,6 +1,6 @@ LIBSFRAME_0.0 { }; -LIBSFRAME_1.0 { +LIBSFRAME_2.0 { global: sframe_decoder_free; sframe_fde_create_func_info; @@ -11,12 +11,13 @@ LIBSFRAME_1.0 { sframe_fre_get_ra_offset; sframe_fre_get_ra_mangled_p; sframe_decode; + sframe_decoder_get_flags; sframe_decoder_get_hdr_size; sframe_decoder_get_abi_arch; sframe_decoder_get_version; + sframe_decoder_get_offsetof_fde_start_addr; sframe_decoder_get_fixed_fp_offset; sframe_decoder_get_fixed_ra_offset; - sframe_get_funcdesc_with_addr; sframe_find_fre; sframe_decoder_get_num_fidx; sframe_decoder_get_funcdesc; @@ -24,9 +25,11 @@ LIBSFRAME_1.0 { sframe_decoder_get_fre; sframe_encode; sframe_encoder_free; + sframe_encoder_get_flags; sframe_encoder_get_hdr_size; sframe_encoder_get_abi_arch; sframe_encoder_get_version; + sframe_encoder_get_offsetof_fde_start_addr; sframe_encoder_get_num_fidx; sframe_encoder_add_fre; sframe_encoder_add_funcdesc; @@ -38,10 +41,3 @@ LIBSFRAME_1.0 { local: *; } LIBSFRAME_0.0; - -LIBSFRAME_1.1 { - sframe_decoder_get_flags; - sframe_decoder_get_offsetof_fde_start_addr; - sframe_encoder_get_flags; - sframe_encoder_get_offsetof_fde_start_addr; -} LIBSFRAME_1.0; diff --git a/libsframe/libtool-version b/libsframe/libtool-version index 9dcbe48..e06835d 100644 --- a/libsframe/libtool-version +++ b/libsframe/libtool-version @@ -27,4 +27,4 @@ # then set age to 0. # # CURRENT:REVISION:AGE -1:0:0 +2:0:0 diff --git a/libsframe/sframe-dump.c b/libsframe/sframe-dump.c index 47ac00e..d55d384 100644 --- a/libsframe/sframe-dump.c +++ b/libsframe/sframe-dump.c @@ -38,6 +38,14 @@ is_sframe_abi_arch_aarch64 (sframe_decoder_ctx *sfd_ctx) return aarch64_p; } +/* Return TRUE if the SFrame section is associated with the s390x ABI. */ + +static bool +is_sframe_abi_arch_s390x (sframe_decoder_ctx *sfd_ctx) +{ + return sframe_decoder_get_abi_arch (sfd_ctx) == SFRAME_ABI_S390X_ENDIAN_BIG; +} + static void dump_sframe_header_flags (sframe_decoder_ctx *sfd_ctx) { @@ -186,7 +194,13 @@ dump_sframe_func_with_fres (sframe_decoder_ctx *sfd_ctx, /* Dump SP/FP info. */ if (err[1] == 0) - sprintf (temp, "c%+d", fp_offset); + { + if (is_sframe_abi_arch_s390x (sfd_ctx) + && SFRAME_V2_S390X_OFFSET_IS_REGNUM (fp_offset)) + sprintf (temp, "r%d", SFRAME_V2_S390X_OFFSET_DECODE_REGNUM (fp_offset)); + else + sprintf (temp, "c%+d", fp_offset); + } else strcpy (temp, "u"); printf ("%-10s", temp); @@ -197,8 +211,18 @@ dump_sframe_func_with_fres (sframe_decoder_ctx *sfd_ctx, if (sframe_decoder_get_fixed_ra_offset (sfd_ctx) != SFRAME_CFA_FIXED_RA_INVALID) strcpy (temp, "f"); + /* If an ABI does track RA offset, e.g. s390x, it can be a padding + to represent FP without RA being saved on stack. */ + else if (err[2] == 0 && ra_offset == SFRAME_FRE_RA_OFFSET_INVALID) + sprintf (temp, "U"); else if (err[2] == 0) - sprintf (temp, "c%+d", ra_offset); + { + if (is_sframe_abi_arch_s390x (sfd_ctx) + && SFRAME_V2_S390X_OFFSET_IS_REGNUM (ra_offset)) + sprintf (temp, "r%d", SFRAME_V2_S390X_OFFSET_DECODE_REGNUM (ra_offset)); + else + sprintf (temp, "c%+d", ra_offset); + } else strcpy (temp, "u"); diff --git a/libsframe/sframe.c b/libsframe/sframe.c index ea0e1c7..7357fc1 100644 --- a/libsframe/sframe.c +++ b/libsframe/sframe.c @@ -166,6 +166,7 @@ need_swapping (int endian) case SFRAME_ABI_AMD64_ENDIAN_LITTLE: return !is_little; case SFRAME_ABI_AARCH64_ENDIAN_BIG: + case SFRAME_ABI_S390X_ENDIAN_BIG: return is_little; default: break; @@ -520,7 +521,7 @@ flip_sframe (char *frame_buf, size_t buf_size, uint32_t to_foreign) fre_offset = fdep->sfde_func_start_fre_off; } - fp = frame_buf + sframe_get_hdr_size (ihp) + ihp->sfh_freoff; + fp = frame_buf + hdrsz + ihp->sfh_freoff; fp += fre_offset; for (; j < prev_frep_index + num_fres; j++) { @@ -535,8 +536,12 @@ flip_sframe (char *frame_buf, size_t buf_size, uint32_t to_foreign) prev_frep_index = j; } /* All FDEs and FREs must have been endian flipped by now. */ - if ((j != ihp->sfh_num_fres) || (bytes_flipped != (buf_size - hdrsz))) + if ((j != ihp->sfh_num_fres) || (bytes_flipped > (buf_size - hdrsz))) goto bad; + /* Optional trailing section padding. */ + for (fp = frame_buf + hdrsz + bytes_flipped; fp < frame_buf + buf_size; fp++) + if (*fp != '\0') + goto bad; /* Success. */ return 0; @@ -690,13 +695,22 @@ sframe_fre_get_base_reg_id (sframe_frame_row_entry *fre, int *errp) /* Get the CFA offset from the FRE. If the offset is invalid, sets errp. */ int32_t -sframe_fre_get_cfa_offset (sframe_decoder_ctx *dctx ATTRIBUTE_UNUSED, +sframe_fre_get_cfa_offset (sframe_decoder_ctx *dctx, sframe_frame_row_entry *fre, int *errp) { - return sframe_get_fre_offset (fre, SFRAME_FRE_CFA_OFFSET_IDX, errp); + int32_t offset = sframe_get_fre_offset (fre, SFRAME_FRE_CFA_OFFSET_IDX, errp); + + /* For s390x undo adjustment of CFA offset (to enable 8-bit offsets). */ + if (sframe_decoder_get_abi_arch (dctx) == SFRAME_ABI_S390X_ENDIAN_BIG) + offset = SFRAME_V2_S390X_CFA_OFFSET_DECODE (offset); + + return offset; } -/* Get the FP offset from the FRE. If the offset is invalid, sets errp. */ +/* Get the FP offset from the FRE. If the offset is invalid, sets errp. + + For s390x the offset may be an encoded register number, indicated by + LSB set to one, which is only valid in the topmost frame. */ int32_t sframe_fre_get_fp_offset (sframe_decoder_ctx *dctx, @@ -723,7 +737,12 @@ sframe_fre_get_fp_offset (sframe_decoder_ctx *dctx, return sframe_get_fre_offset (fre, fp_offset_idx, errp); } -/* Get the RA offset from the FRE. If the offset is invalid, sets errp. */ +/* Get the RA offset from the FRE. If the offset is invalid, sets errp. + + For s390x an RA offset value of SFRAME_FRE_RA_OFFSET_INVALID indicates + that the RA is not saved, which is only valid in the topmost frame. + For s390x the offset may be an encoded register number, indicated by + LSB set to one, which is only valid in the topmost frame. */ int32_t sframe_fre_get_ra_offset (sframe_decoder_ctx *dctx, @@ -857,7 +876,7 @@ sframe_decode_fre (const char *fre_buf, sframe_frame_row_entry *fre, return 0; } -/* Decode the specified SFrame buffer CF_BUF of size CF_SIZE and return the +/* Decode the specified SFrame buffer SF_BUF of size SF_SIZE and return the new SFrame decoder context. Sets ERRP for the caller if any error. Frees up the allocated memory in @@ -1060,18 +1079,6 @@ sframe_decoder_get_offsetof_fde_start_addr (sframe_decoder_ctx *dctx, + offsetof (sframe_func_desc_entry, sfde_func_start_address)); } -/* Find the function descriptor entry which contains the specified address - ADDR. - This function is deprecated and will be removed from libsframe.so.2. */ - -void * -sframe_get_funcdesc_with_addr (sframe_decoder_ctx *ctx __attribute__ ((unused)), - int32_t addr __attribute__ ((unused)), - int *errp) -{ - return sframe_ret_set_errno (errp, SFRAME_ERR_INVAL); -} - /* Find the function descriptor entry starting which contains the specified address ADDR. */ @@ -1620,7 +1627,7 @@ sframe_encoder_add_funcdesc (sframe_encoder_ctx *encoder, int32_t start_addr, uint32_t func_size, unsigned char func_info, - uint32_t num_fres __attribute__ ((unused))) + uint32_t num_fres ATTRIBUTE_UNUSED) { sframe_header *ehp; sf_fde_tbl *fd_info; @@ -1702,7 +1709,7 @@ sframe_encoder_add_funcdesc_v2 (sframe_encoder_ctx *encoder, uint32_t func_size, unsigned char func_info, uint8_t rep_block_size, - uint32_t num_fres __attribute__ ((unused))) + uint32_t num_fres ATTRIBUTE_UNUSED) { sf_fde_tbl *fd_info; int err; diff --git a/libsframe/testsuite/libsframe.find/find.exp b/libsframe/testsuite/libsframe.find/find.exp index d1be070..62471a3 100644 --- a/libsframe/testsuite/libsframe.find/find.exp +++ b/libsframe/testsuite/libsframe.find/find.exp @@ -26,6 +26,7 @@ if [string equal $COMPAT_DEJAGNU "no"] { unsupported findfre-1 unsupported findfunc-1 unsupported plt-findfre-1 + unsupported plt-findfre-2 return; } @@ -40,3 +41,7 @@ if { [host_execute "testsuite/libsframe.find/findfunc-1"] ne "" } { if { [host_execute "testsuite/libsframe.find/plt-findfre-1"] ne "" } { fail "plt-findfre-1" } + +if { [host_execute "testsuite/libsframe.find/plt-findfre-2"] ne "" } { + fail "plt-findfre-2" +} diff --git a/libsframe/testsuite/libsframe.find/local.mk b/libsframe/testsuite/libsframe.find/local.mk index 03206b1..52741e8 100644 --- a/libsframe/testsuite/libsframe.find/local.mk +++ b/libsframe/testsuite/libsframe.find/local.mk @@ -1,5 +1,6 @@ if HAVE_COMPAT_DEJAGNU check_PROGRAMS += %D%/findfre-1 %D%/findfunc-1 %D%/plt-findfre-1 + check_PROGRAMS += %D%/plt-findfre-2 endif %C%_findfre_1_SOURCES = %D%/findfre-1.c @@ -13,3 +14,7 @@ endif %C%_plt_findfre_1_SOURCES = %D%/plt-findfre-1.c %C%_plt_findfre_1_LDADD = ${top_builddir}/libsframe.la %C%_plt_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall + +%C%_plt_findfre_2_SOURCES = %D%/plt-findfre-2.c +%C%_plt_findfre_2_LDADD = ${top_builddir}/libsframe.la +%C%_plt_findfre_2_CPPFLAGS = -I${top_srcdir}/../include -Wall diff --git a/libsframe/testsuite/libsframe.find/plt-findfre-2.c b/libsframe/testsuite/libsframe.find/plt-findfre-2.c new file mode 100644 index 0000000..00a5b2a --- /dev/null +++ b/libsframe/testsuite/libsframe.find/plt-findfre-2.c @@ -0,0 +1,201 @@ +/* plt-findfre-2.c -- Test for sframe_find_fre for SFrame FDE of type + PCMASK with with one SFrame FRE only. + + Copyright (C) 2025 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include "config.h" + +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> + +#include "sframe-api.h" + +/* DejaGnu should not use gnulib's vsnprintf replacement here. */ +#undef vsnprintf +#include <dejagnu.h> + +/* s390x-specific size in bytes of plt0 and pltN. */ +#define PLT_SIZE 32 + +/* Magic values added to CFA offsets to make them distingishable. Must + be multiple of 8 due to s390x-specific CFA alignment factor. */ +#define PLT0_CFA_OFFSET_MAGIC 0 +#define PLTN_CFA_OFFSET_MAGIC 8 + +static int +add_plt0_fde (sframe_encoder_ctx *ectx, uint32_t plt_vaddr, + uint32_t sframe_vaddr, int idx) +{ + /* 1 single FRE. */ + sframe_frame_row_entry fre + = { 0x0, + { SFRAME_V2_S390X_CFA_OFFSET_ENCODE (160 + PLT0_CFA_OFFSET_MAGIC) }, + SFRAME_V1_FRE_INFO (SFRAME_BASE_REG_SP, 1, SFRAME_FRE_OFFSET_1B) }; + + unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1, + SFRAME_FDE_TYPE_PCINC); + uint32_t offsetof_fde_in_sec + = sframe_encoder_get_offsetof_fde_start_addr (ectx, idx, NULL); + + int32_t func_start_addr = (plt_vaddr + - (sframe_vaddr + offsetof_fde_in_sec)); + + /* 1 PCINC-type FDE for 1 plt0 entry of 32 bytes. */ + int err = sframe_encoder_add_funcdesc_v2 (ectx, func_start_addr, + PLT_SIZE /* func size. */, + finfo, + 0 /* rep block size. */, + 1 /* num FREs. */); + if (err == -1) + return err; + + if (sframe_encoder_add_fre (ectx, idx, &fre) == SFRAME_ERR) + return -1; + + return 0; +} + +static int +add_pltn_fde (sframe_encoder_ctx *ectx, uint32_t plt_vaddr, + uint32_t sframe_vaddr, int idx) +{ + /* 1 single FRE. */ + sframe_frame_row_entry fre + = { 0x0, + { SFRAME_V2_S390X_CFA_OFFSET_ENCODE (160 + PLTN_CFA_OFFSET_MAGIC) }, + SFRAME_V1_FRE_INFO (SFRAME_BASE_REG_SP, 1, SFRAME_FRE_OFFSET_1B) }; + + unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1, + SFRAME_FDE_TYPE_PCMASK); + uint32_t offsetof_fde_in_sec + = sframe_encoder_get_offsetof_fde_start_addr (ectx, idx, NULL); + + int32_t func_start_addr = (plt_vaddr + - (sframe_vaddr + offsetof_fde_in_sec)); + + /* 1 PCMASK-type FDE for 5 pltN entries of 32 bytes each. */ + int err = sframe_encoder_add_funcdesc_v2 (ectx, func_start_addr, + 5 * PLT_SIZE /* func size. */, + finfo, + PLT_SIZE /* rep block size. */, + 1 /* num FREs. */); + if (err == -1) + return err; + + if (sframe_encoder_add_fre (ectx, idx, &fre) == SFRAME_ERR) + return -1; + + return 0; +} + +static +void test_plt_findfre (const char suffix, const uint32_t plt_vaddr, + const uint32_t sframe_vaddr) +{ + sframe_encoder_ctx *ectx; + sframe_decoder_ctx *dctx; + sframe_frame_row_entry frep; + char *sframe_buf; + size_t sf_size; + int err = 0; + unsigned int fde_cnt = 0; + int i; + +#define TEST(cond, ...) \ + do \ + { \ + if (cond) \ + pass (__VA_ARGS__); \ + else \ + fail (__VA_ARGS__); \ + } \ + while (0) + + ectx = sframe_encode (SFRAME_VERSION, SFRAME_F_FDE_FUNC_START_PCREL, + SFRAME_ABI_S390X_ENDIAN_BIG, + SFRAME_CFA_FIXED_FP_INVALID, + SFRAME_CFA_FIXED_RA_INVALID, + &err); + TEST (ectx != NULL && err == 0, "plt-findfre-2%c: Creating SFrame encoder", suffix); + + err = add_plt0_fde (ectx, plt_vaddr, sframe_vaddr, 0); + TEST (err == 0, "plt-findfre-2%c: Adding FDE for plt0", suffix); + + fde_cnt = sframe_encoder_get_num_fidx (ectx); + TEST (fde_cnt == 1, "plt-findfre-2%c: Test FDE count after adding FDE for plt0", suffix); + + err = add_pltn_fde (ectx, plt_vaddr + PLT_SIZE, sframe_vaddr, 1); + TEST (err == 0, "plt-findfre-2%c: Adding FDE for pltN", suffix); + + fde_cnt = sframe_encoder_get_num_fidx (ectx); + TEST (fde_cnt == 2, "plt-findfre-2%c: Test FDE count after adding FDE for pltN", suffix); + + sframe_buf = sframe_encoder_write (ectx, &sf_size, &err); + TEST (err == 0, "plt-findfre-2%c: Encoder write", suffix); + + dctx = sframe_decode (sframe_buf, sf_size, &err); + TEST (dctx != NULL, "plt-findfre-2%c: Decoder setup", suffix); + + /* Find the only FRE in PLT0 at offset 0. */ + err = sframe_find_fre (dctx, (plt_vaddr + 0 - sframe_vaddr), &frep); + TEST (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 160 + PLT0_CFA_OFFSET_MAGIC, + "plt-findfre-2%c: Find only FRE in PLT0 at offset 0", suffix); + + /* Find the only FRE in PLT0 at offset PLT_SIZE-1. */ + err = sframe_find_fre (dctx, (plt_vaddr + (PLT_SIZE-1) - sframe_vaddr), &frep); + TEST (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 160 + PLT0_CFA_OFFSET_MAGIC, + "plt-findfre-2%c: Find only FRE in PLT0 at offset PLT_SIZE-1", suffix); + + /* Find the only FRE in PLT1-5 at offset 0 and PLT_SIZE-1. */ + for (i = 1; i < 5; i++) + { + /* Find the only FRE in PLTN at offset 0. */ + err = sframe_find_fre (dctx, (plt_vaddr + i * PLT_SIZE + 0 - sframe_vaddr), &frep); + TEST (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 160 + PLTN_CFA_OFFSET_MAGIC, + "plt-findfre-2%c: Find only FRE in PLT%d at offset 0", suffix, i); + + /* Find the only FRE in PLTN at offset 31. */ + err = sframe_find_fre (dctx, (plt_vaddr + i * PLT_SIZE + (PLT_SIZE-1) - sframe_vaddr), &frep); + TEST (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 160 + PLTN_CFA_OFFSET_MAGIC, + "plt-findfre-2%c: Find only FRE in PLT%d at offset PLT_SIZE-1", suffix, i); + } + + /* Find no FRE in non-existing PLT6 at offset 0. */ + err = sframe_find_fre (dctx, (plt_vaddr + 6 * PLT_SIZE + 0 - sframe_vaddr), &frep); + TEST (err != 0, "plt-findfre-2%c: Find no FRE in out of range PLT6 at offset 0", suffix); + + sframe_encoder_free (&ectx); + sframe_decoder_free (&dctx); +} + +int +main (void) +{ + uint32_t sframe_vaddr = 0x402220; + uint32_t plt_vaddr = 0x401020; + printf ("plt-findfre-2a: Testing with plt_vaddr = %#x; sframe_vaddr = %#x\n", + plt_vaddr, sframe_vaddr); + test_plt_findfre ('a', plt_vaddr, sframe_vaddr); + + sframe_vaddr = 0x401020; + plt_vaddr = 0x402220; + printf ("plt-findfre-2b: Testing with plt_vaddr = %#x; sframe_vaddr = %#x\n", + plt_vaddr, sframe_vaddr); + test_plt_findfre ('b', plt_vaddr, sframe_vaddr); + + return 0; +} diff --git a/opcodes/aarch64-asm-2.c b/opcodes/aarch64-asm-2.c index 9630c04..30ec1e4 100644 --- a/opcodes/aarch64-asm-2.c +++ b/opcodes/aarch64-asm-2.c @@ -482,252 +482,277 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode) case 1188: /* lduminl */ value = 1188; /* --> lduminl. */ break; - case 1269: /* mov */ - case 1268: /* movn */ - value = 1268; /* --> movn. */ - break; - case 1271: /* mov */ - case 1270: /* movz */ - value = 1270; /* --> movz. */ - break; - case 3316: /* clrbhb */ - case 1351: /* autibsp */ - case 1350: /* autibz */ - case 1349: /* autiasp */ - case 1348: /* autiaz */ - case 1347: /* pacibsp */ - case 1346: /* pacibz */ - case 1345: /* paciasp */ - case 1344: /* paciaz */ - case 1323: /* gcsb */ - case 1303: /* clearbhb */ - case 1302: /* tsb */ - case 1301: /* psb */ - case 1300: /* esb */ - case 1299: /* autib1716 */ - case 1298: /* autia1716 */ - case 1297: /* pacib1716 */ - case 1296: /* pacia1716 */ - case 1295: /* xpaclri */ - case 1294: /* dgh */ - case 1293: /* sevl */ - case 1292: /* sev */ - case 1291: /* wfi */ - case 1290: /* wfe */ - case 1289: /* yield */ - case 1288: /* bti */ - case 1287: /* csdb */ - case 1286: /* nop */ - case 1285: /* hint */ - value = 1285; /* --> hint. */ - break; - case 1309: /* pssbb */ - case 1308: /* ssbb */ - case 1307: /* dfb */ - case 1305: /* dsb */ - value = 1305; /* --> dsb. */ - break; - case 1306: /* dsb */ - value = 1306; /* --> dsb. */ - break; - case 3317: /* trcit */ - case 1337: /* brb */ - case 1336: /* cosp */ - case 1335: /* cpp */ - case 1334: /* dvp */ - case 1333: /* cfp */ - case 1329: /* tlbi */ - case 1328: /* ic */ - case 1327: /* dc */ - case 1326: /* at */ - case 1324: /* sys */ - value = 1324; /* --> sys. */ - break; - case 1330: /* tlbip */ - case 1325: /* sysp */ - value = 1325; /* --> sysp. */ - break; - case 1331: /* wfet */ - value = 1331; /* --> wfet. */ - break; - case 1332: /* wfit */ - value = 1332; /* --> wfit. */ - break; - case 2137: /* bic */ - case 1400: /* and */ - value = 1400; /* --> and. */ - break; - case 1383: /* mov */ - case 1402: /* and */ - value = 1402; /* --> and. */ - break; - case 1387: /* movs */ - case 1403: /* ands */ - value = 1403; /* --> ands. */ - break; - case 2138: /* cmple */ - case 1438: /* cmpge */ - value = 1438; /* --> cmpge. */ - break; - case 2141: /* cmplt */ - case 1441: /* cmpgt */ - value = 1441; /* --> cmpgt. */ - break; - case 2139: /* cmplo */ - case 1443: /* cmphi */ - value = 1443; /* --> cmphi. */ - break; - case 2140: /* cmpls */ - case 1446: /* cmphs */ - value = 1446; /* --> cmphs. */ - break; - case 1380: /* mov */ - case 1468: /* cpy */ - value = 1468; /* --> cpy. */ - break; - case 1382: /* mov */ - case 1469: /* cpy */ - value = 1469; /* --> cpy. */ - break; - case 2148: /* fmov */ - case 1385: /* mov */ - case 1470: /* cpy */ - value = 1470; /* --> cpy. */ - break; - case 1374: /* mov */ - case 1482: /* dup */ - value = 1482; /* --> dup. */ - break; - case 1377: /* mov */ - case 1373: /* mov */ - case 1483: /* dup */ - value = 1483; /* --> dup. */ - break; - case 2147: /* fmov */ - case 1379: /* mov */ - case 1484: /* dup */ - value = 1484; /* --> dup. */ - break; - case 1378: /* mov */ - case 1485: /* dupm */ - value = 1485; /* --> dupm. */ - break; - case 2142: /* eon */ - case 1487: /* eor */ - value = 1487; /* --> eor. */ - break; - case 1388: /* not */ - case 1489: /* eor */ - value = 1489; /* --> eor. */ - break; - case 1389: /* nots */ - case 1490: /* eors */ - value = 1490; /* --> eors. */ - break; - case 2143: /* facle */ - case 1495: /* facge */ - value = 1495; /* --> facge. */ - break; - case 2144: /* faclt */ - case 1496: /* facgt */ - value = 1496; /* --> facgt. */ - break; - case 2145: /* fcmle */ - case 1509: /* fcmge */ - value = 1509; /* --> fcmge. */ - break; - case 2146: /* fcmlt */ - case 1511: /* fcmgt */ - value = 1511; /* --> fcmgt. */ + case 1267: /* sttadd */ + case 1266: /* ldtadd */ + value = 1266; /* --> ldtadd. */ + break; + case 1271: /* sttaddl */ + case 1270: /* ldtaddl */ + value = 1270; /* --> ldtaddl. */ + break; + case 1273: /* sttclr */ + case 1272: /* ldtclr */ + value = 1272; /* --> ldtclr. */ + break; + case 1277: /* sttclrl */ + case 1276: /* ldtclrl */ + value = 1276; /* --> ldtclrl. */ + break; + case 1279: /* sttset */ + case 1278: /* ldtset */ + value = 1278; /* --> ldtset. */ + break; + case 1283: /* sttsetl */ + case 1282: /* ldtsetl */ + value = 1282; /* --> ldtsetl. */ + break; + case 1315: /* mov */ + case 1314: /* movn */ + value = 1314; /* --> movn. */ + break; + case 1317: /* mov */ + case 1316: /* movz */ + value = 1316; /* --> movz. */ + break; + case 3373: /* clrbhb */ + case 1398: /* autibsp */ + case 1397: /* autibz */ + case 1396: /* autiasp */ + case 1395: /* autiaz */ + case 1394: /* pacibsp */ + case 1393: /* pacibz */ + case 1392: /* paciasp */ + case 1391: /* paciaz */ + case 1370: /* gcsb */ + case 1350: /* clearbhb */ + case 1349: /* tsb */ + case 1348: /* psb */ + case 1347: /* esb */ + case 1346: /* autib1716 */ + case 1345: /* autia1716 */ + case 1344: /* pacib1716 */ + case 1343: /* pacia1716 */ + case 1342: /* xpaclri */ + case 1341: /* dgh */ + case 1340: /* sevl */ + case 1339: /* sev */ + case 1338: /* wfi */ + case 1337: /* wfe */ + case 1336: /* yield */ + case 1335: /* bti */ + case 1334: /* csdb */ + case 1333: /* nop */ + case 1330: /* stshh */ + case 1332: /* hint */ + value = 1332; /* --> hint. */ + break; + case 1356: /* pssbb */ + case 1355: /* ssbb */ + case 1354: /* dfb */ + case 1352: /* dsb */ + value = 1352; /* --> dsb. */ + break; + case 1353: /* dsb */ + value = 1353; /* --> dsb. */ + break; + case 3374: /* trcit */ + case 1384: /* brb */ + case 1383: /* cosp */ + case 1382: /* cpp */ + case 1381: /* dvp */ + case 1380: /* cfp */ + case 1376: /* tlbi */ + case 1375: /* ic */ + case 1374: /* dc */ + case 1373: /* at */ + case 1371: /* sys */ + value = 1371; /* --> sys. */ + break; + case 1377: /* tlbip */ + case 1372: /* sysp */ + value = 1372; /* --> sysp. */ + break; + case 1378: /* wfet */ + value = 1378; /* --> wfet. */ + break; + case 1379: /* wfit */ + value = 1379; /* --> wfit. */ + break; + case 2184: /* bic */ + case 1447: /* and */ + value = 1447; /* --> and. */ + break; + case 1430: /* mov */ + case 1449: /* and */ + value = 1449; /* --> and. */ + break; + case 1434: /* movs */ + case 1450: /* ands */ + value = 1450; /* --> ands. */ + break; + case 2185: /* cmple */ + case 1485: /* cmpge */ + value = 1485; /* --> cmpge. */ + break; + case 2188: /* cmplt */ + case 1488: /* cmpgt */ + value = 1488; /* --> cmpgt. */ + break; + case 2186: /* cmplo */ + case 1490: /* cmphi */ + value = 1490; /* --> cmphi. */ + break; + case 2187: /* cmpls */ + case 1493: /* cmphs */ + value = 1493; /* --> cmphs. */ + break; + case 1427: /* mov */ + case 1515: /* cpy */ + value = 1515; /* --> cpy. */ + break; + case 1429: /* mov */ + case 1516: /* cpy */ + value = 1516; /* --> cpy. */ + break; + case 2195: /* fmov */ + case 1432: /* mov */ + case 1517: /* cpy */ + value = 1517; /* --> cpy. */ + break; + case 1421: /* mov */ + case 1529: /* dup */ + value = 1529; /* --> dup. */ + break; + case 1424: /* mov */ + case 1420: /* mov */ + case 1530: /* dup */ + value = 1530; /* --> dup. */ + break; + case 2194: /* fmov */ + case 1426: /* mov */ + case 1531: /* dup */ + value = 1531; /* --> dup. */ + break; + case 1425: /* mov */ + case 1532: /* dupm */ + value = 1532; /* --> dupm. */ + break; + case 2189: /* eon */ + case 1534: /* eor */ + value = 1534; /* --> eor. */ + break; + case 1435: /* not */ + case 1536: /* eor */ + value = 1536; /* --> eor. */ + break; + case 1436: /* nots */ + case 1537: /* eors */ + value = 1537; /* --> eors. */ + break; + case 2190: /* facle */ + case 1542: /* facge */ + value = 1542; /* --> facge. */ + break; + case 2191: /* faclt */ + case 1543: /* facgt */ + value = 1543; /* --> facgt. */ + break; + case 2192: /* fcmle */ + case 1556: /* fcmge */ + value = 1556; /* --> fcmge. */ + break; + case 2193: /* fcmlt */ + case 1558: /* fcmgt */ + value = 1558; /* --> fcmgt. */ break; - case 1371: /* fmov */ - case 1517: /* fcpy */ - value = 1517; /* --> fcpy. */ + case 1418: /* fmov */ + case 1564: /* fcpy */ + value = 1564; /* --> fcpy. */ break; - case 1370: /* fmov */ - case 1540: /* fdup */ - value = 1540; /* --> fdup. */ + case 1417: /* fmov */ + case 1587: /* fdup */ + value = 1587; /* --> fdup. */ break; - case 1826: /* ldr */ - case 1825: /* ldr */ - value = 1825; /* --> ldr. */ + case 1873: /* ldr */ + case 1872: /* ldr */ + value = 1872; /* --> ldr. */ break; - case 1372: /* mov */ - case 1856: /* orr */ - value = 1856; /* --> orr. */ + case 1419: /* mov */ + case 1903: /* orr */ + value = 1903; /* --> orr. */ break; - case 2149: /* orn */ - case 1857: /* orr */ - value = 1857; /* --> orr. */ + case 2196: /* orn */ + case 1904: /* orr */ + value = 1904; /* --> orr. */ break; - case 1376: /* mov */ - case 1375: /* mov */ - case 1859: /* orr */ - value = 1859; /* --> orr. */ + case 1423: /* mov */ + case 1422: /* mov */ + case 1906: /* orr */ + value = 1906; /* --> orr. */ break; - case 1386: /* movs */ - case 1860: /* orrs */ - value = 1860; /* --> orrs. */ + case 1433: /* movs */ + case 1907: /* orrs */ + value = 1907; /* --> orrs. */ break; - case 1863: /* pfalse */ - case 1862: /* pfalse */ - value = 1862; /* --> pfalse. */ + case 1910: /* pfalse */ + case 1909: /* pfalse */ + value = 1909; /* --> pfalse. */ break; - case 1381: /* mov */ - case 1923: /* sel */ - value = 1923; /* --> sel. */ + case 1428: /* mov */ + case 1970: /* sel */ + value = 1970; /* --> sel. */ break; - case 1384: /* mov */ - case 1924: /* sel */ - value = 1924; /* --> sel. */ + case 1431: /* mov */ + case 1971: /* sel */ + value = 1971; /* --> sel. */ break; - case 2045: /* str */ - case 2044: /* str */ - value = 2044; /* --> str. */ + case 2092: /* str */ + case 2091: /* str */ + value = 2091; /* --> str. */ break; - case 2472: /* mov */ - case 2474: /* mova */ - value = 2474; /* --> mova. */ + case 2529: /* mov */ + case 2531: /* mova */ + value = 2531; /* --> mova. */ break; - case 2473: /* mov */ - case 2475: /* mova */ - value = 2475; /* --> mova. */ + case 2530: /* mov */ + case 2532: /* mova */ + value = 2532; /* --> mova. */ break; - case 2493: /* psel */ - case 2492: /* psel */ - value = 2492; /* --> psel. */ + case 2550: /* psel */ + case 2549: /* psel */ + value = 2549; /* --> psel. */ break; - case 2698: /* mov */ - case 2706: /* mova */ - value = 2706; /* --> mova. */ + case 2755: /* mov */ + case 2763: /* mova */ + value = 2763; /* --> mova. */ break; - case 2699: /* mov */ - case 2707: /* mova */ - value = 2707; /* --> mova. */ + case 2756: /* mov */ + case 2764: /* mova */ + value = 2764; /* --> mova. */ break; - case 2700: /* mov */ - case 2708: /* mova */ - value = 2708; /* --> mova. */ + case 2757: /* mov */ + case 2765: /* mova */ + value = 2765; /* --> mova. */ break; - case 2701: /* mov */ - case 2709: /* mova */ - value = 2709; /* --> mova. */ + case 2758: /* mov */ + case 2766: /* mova */ + value = 2766; /* --> mova. */ break; - case 2702: /* mov */ - case 2710: /* mova */ - value = 2710; /* --> mova. */ + case 2759: /* mov */ + case 2767: /* mova */ + value = 2767; /* --> mova. */ break; - case 2703: /* mov */ - case 2711: /* mova */ - value = 2711; /* --> mova. */ + case 2760: /* mov */ + case 2768: /* mova */ + value = 2768; /* --> mova. */ break; - case 2704: /* mov */ - case 2712: /* mova */ - value = 2712; /* --> mova. */ + case 2761: /* mov */ + case 2769: /* mova */ + value = 2769; /* --> mova. */ break; - case 2705: /* mov */ - case 2713: /* mova */ - value = 2713; /* --> mova. */ + case 2762: /* mov */ + case 2770: /* mova */ + value = 2770; /* --> mova. */ break; default: return NULL; } @@ -772,10 +797,9 @@ aarch64_insert_operand (const aarch64_operand *self, case 32: case 33: case 34: - case 126: case 127: case 128: - case 191: + case 129: case 192: case 193: case 194: @@ -789,34 +813,35 @@ aarch64_insert_operand (const aarch64_operand *self, case 202: case 203: case 204: - case 220: + case 205: case 221: case 222: case 223: - case 233: + case 224: case 234: case 235: case 236: case 237: - case 248: - case 252: - case 256: + case 238: + case 249: + case 253: case 257: - case 265: + case 258: case 266: case 267: - case 274: + case 268: case 275: case 276: case 277: - case 311: - case 315: + case 278: + case 313: + case 317: return aarch64_ins_regno (self, info, code, inst, errors); case 6: case 122: case 123: - case 321: - case 324: + case 323: + case 326: return aarch64_ins_none (self, info, code, inst, errors); case 17: return aarch64_ins_reg_extended (self, info, code, inst, errors); @@ -831,17 +856,16 @@ aarch64_insert_operand (const aarch64_operand *self, case 37: case 38: case 39: - case 326: + case 328: return aarch64_ins_reglane (self, info, code, inst, errors); case 40: case 41: case 42: - case 238: case 239: - case 242: - case 278: + case 240: + case 243: case 279: - case 294: + case 280: case 295: case 296: case 297: @@ -858,12 +882,14 @@ aarch64_insert_operand (const aarch64_operand *self, case 308: case 309: case 310: + case 311: case 312: - case 313: case 314: + case 315: case 316: - case 317: case 318: + case 319: + case 320: return aarch64_ins_simple_index (self, info, code, inst, errors); case 43: return aarch64_ins_reglist (self, info, code, inst, errors); @@ -904,10 +930,9 @@ aarch64_insert_operand (const aarch64_operand *self, case 94: case 95: case 121: - case 125: - case 188: - case 190: - case 211: + case 126: + case 189: + case 191: case 212: case 213: case 214: @@ -916,14 +941,15 @@ aarch64_insert_operand (const aarch64_operand *self, case 217: case 218: case 219: - case 280: - case 319: - case 320: + case 220: + case 281: + case 321: case 322: - case 323: + case 324: case 325: - case 330: - case 331: + case 327: + case 332: + case 333: return aarch64_ins_imm (self, info, code, inst, errors); case 52: case 53: @@ -933,10 +959,10 @@ aarch64_insert_operand (const aarch64_operand *self, case 56: return aarch64_ins_advsimd_imm_modified (self, info, code, inst, errors); case 60: - case 178: + case 179: return aarch64_ins_fpimm (self, info, code, inst, errors); case 80: - case 186: + case 187: return aarch64_ins_limm (self, info, code, inst, errors); case 81: return aarch64_ins_aimm (self, info, code, inst, errors); @@ -946,11 +972,11 @@ aarch64_insert_operand (const aarch64_operand *self, return aarch64_ins_fbits (self, info, code, inst, errors); case 85: case 86: - case 183: + case 184: return aarch64_ins_imm_rotate2 (self, info, code, inst, errors); case 87: - case 182: - case 184: + case 183: + case 185: return aarch64_ins_imm_rotate1 (self, info, code, inst, errors); case 88: case 89: @@ -994,25 +1020,25 @@ aarch64_insert_operand (const aarch64_operand *self, case 120: return aarch64_ins_prfop (self, info, code, inst, errors); case 124: + case 125: return aarch64_ins_hint (self, info, code, inst, errors); - case 129: case 130: - return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst, errors); case 131: + return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst, errors); case 132: case 133: case 134: - return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst, errors); case 135: - return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst, errors); + return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst, errors); case 136: - return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst, errors); + return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst, errors); case 137: + return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst, errors); case 138: case 139: case 140: - return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst, errors); case 141: + return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst, errors); case 142: case 143: case 144: @@ -1032,8 +1058,8 @@ aarch64_insert_operand (const aarch64_operand *self, case 158: case 159: case 160: - return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst, errors); case 161: + return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst, errors); case 162: case 163: case 164: @@ -1041,115 +1067,116 @@ aarch64_insert_operand (const aarch64_operand *self, case 166: case 167: case 168: - return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst, errors); case 169: + return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst, errors); case 170: case 171: case 172: - return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst, errors); case 173: - return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst, errors); + return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst, errors); case 174: - return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst, errors); + return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst, errors); case 175: - return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst, errors); + return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst, errors); case 176: - return aarch64_ins_sve_aimm (self, info, code, inst, errors); + return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst, errors); case 177: + return aarch64_ins_sve_aimm (self, info, code, inst, errors); + case 178: return aarch64_ins_sve_asimm (self, info, code, inst, errors); - case 179: - return aarch64_ins_sve_float_half_one (self, info, code, inst, errors); case 180: - return aarch64_ins_sve_float_half_two (self, info, code, inst, errors); + return aarch64_ins_sve_float_half_one (self, info, code, inst, errors); case 181: + return aarch64_ins_sve_float_half_two (self, info, code, inst, errors); + case 182: return aarch64_ins_sve_float_zero_one (self, info, code, inst, errors); - case 185: + case 186: return aarch64_ins_inv_limm (self, info, code, inst, errors); - case 187: + case 188: return aarch64_ins_sve_limm_mov (self, info, code, inst, errors); - case 189: + case 190: return aarch64_ins_sve_scale (self, info, code, inst, errors); - case 205: case 206: case 207: - return aarch64_ins_sve_shlimm (self, info, code, inst, errors); case 208: + return aarch64_ins_sve_shlimm (self, info, code, inst, errors); case 209: case 210: - case 293: + case 211: + case 294: return aarch64_ins_sve_shrimm (self, info, code, inst, errors); - case 224: case 225: case 226: case 227: - return aarch64_ins_sme_za_vrs1 (self, info, code, inst, errors); case 228: + return aarch64_ins_sme_za_vrs1 (self, info, code, inst, errors); case 229: case 230: case 231: - return aarch64_ins_sme_za_vrs2 (self, info, code, inst, errors); case 232: + return aarch64_ins_sme_za_vrs2 (self, info, code, inst, errors); + case 233: return aarch64_ins_sme_za_tile_to_vec (self, info, code, inst, errors); - case 240: case 241: - case 243: + case 242: case 244: case 245: case 246: case 247: + case 248: return aarch64_ins_sve_quad_index (self, info, code, inst, errors); - case 249: case 250: - return aarch64_ins_sve_index (self, info, code, inst, errors); case 251: - case 253: - case 273: - return aarch64_ins_sve_reglist (self, info, code, inst, errors); + return aarch64_ins_sve_index (self, info, code, inst, errors); + case 252: case 254: + case 274: + return aarch64_ins_sve_reglist (self, info, code, inst, errors); case 255: - case 258: + case 256: case 259: case 260: case 261: case 262: - case 272: - return aarch64_ins_sve_aligned_reglist (self, info, code, inst, errors); case 263: + case 273: + return aarch64_ins_sve_aligned_reglist (self, info, code, inst, errors); case 264: + case 265: return aarch64_ins_sve_strided_reglist (self, info, code, inst, errors); - case 268: - case 270: - case 281: - return aarch64_ins_sme_za_hv_tiles (self, info, code, inst, errors); case 269: case 271: - return aarch64_ins_sme_za_hv_tiles_range (self, info, code, inst, errors); case 282: + return aarch64_ins_sme_za_hv_tiles (self, info, code, inst, errors); + case 270: + case 272: + return aarch64_ins_sme_za_hv_tiles_range (self, info, code, inst, errors); case 283: case 284: case 285: case 286: case 287: case 288: - return aarch64_ins_sme_za_array (self, info, code, inst, errors); case 289: - return aarch64_ins_sme_addr_ri_u4xvl (self, info, code, inst, errors); + return aarch64_ins_sme_za_array (self, info, code, inst, errors); case 290: - return aarch64_ins_sme_sm_za (self, info, code, inst, errors); + return aarch64_ins_sme_addr_ri_u4xvl (self, info, code, inst, errors); case 291: - return aarch64_ins_sme_pred_reg_with_index (self, info, code, inst, errors); + return aarch64_ins_sme_sm_za (self, info, code, inst, errors); case 292: + return aarch64_ins_sme_pred_reg_with_index (self, info, code, inst, errors); + case 293: return aarch64_ins_plain_shrimm (self, info, code, inst, errors); - case 327: - case 328: case 329: + case 330: + case 331: return aarch64_ins_x0_to_x30 (self, info, code, inst, errors); - case 332: - case 333: case 334: case 335: - return aarch64_ins_rcpc3_addr_opt_offset (self, info, code, inst, errors); case 336: + case 337: + return aarch64_ins_rcpc3_addr_opt_offset (self, info, code, inst, errors); + case 338: return aarch64_ins_rcpc3_addr_offset (self, info, code, inst, errors); default: assert (0); abort (); } diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c index 1460a92..f845625 100644 --- a/opcodes/aarch64-dis-2.c +++ b/opcodes/aarch64-dis-2.c @@ -62,7 +62,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000000100xxxxxxxxxxxxxxxx00xxx fmopa. */ - return 2449; + return 2506; } else { @@ -70,7 +70,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000000100xxxxxxxxxxxxxxxx10xxx fmops. */ - return 2452; + return 2509; } } else @@ -81,7 +81,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000000100xxxxxxxxxxxxxxxx01xxx bmopa. */ - return 2553; + return 2610; } else { @@ -89,7 +89,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000000100xxxxxxxxxxxxxxxx11xxx bmops. */ - return 2554; + return 2611; } } } @@ -102,7 +102,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000000x10xxxxxxxxxxxxxxxx0xxxx fmopa. */ - return 2450; + return 2507; } else { @@ -110,7 +110,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000000x10xxxxxxxxxxxxxxxx1xxxx fmops. */ - return 2453; + return 2510; } } } @@ -128,7 +128,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx00000xxxxxxxxxxxxxxxxx mova. */ - return 2475; + return 2532; } else { @@ -140,7 +140,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x0010000xxxxxxxxxxxxxxxx addha. */ - return 2441; + return 2498; } else { @@ -148,7 +148,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x1010000xxxxxxxxxxxxxxxx addha. */ - return 2442; + return 2499; } } else @@ -159,7 +159,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x0010001xxxxxxxxxxxxxxxx addva. */ - return 2445; + return 2502; } else { @@ -167,7 +167,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x1010001xxxxxxxxxxxxxxxx addva. */ - return 2446; + return 2503; } } } @@ -180,7 +180,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x00x100xxxxxxxxxxxxxxxxx zero. */ - return 2476; + return 2533; } else { @@ -188,7 +188,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x10x100xxxxxxxxxxxxxxxxx zero. */ - return 2983; + return 3040; } } } @@ -202,7 +202,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0x001xxxxxxx0xxxxxxxxx mova. */ - return 2474; + return 2531; } else { @@ -216,7 +216,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000x0010xxxxxx1xxxxxxxxx movaz. */ - return 3448; + return 3505; } else { @@ -224,7 +224,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000100x0010xxxxxx1xxxxxxxxx movaz. */ - return 3450; + return 3507; } } else @@ -235,7 +235,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000010x0010xxxxxx1xxxxxxxxx movaz. */ - return 3449; + return 3506; } else { @@ -243,7 +243,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000110x0010xxxxxx1xxxxxxxxx movaz. */ - return 3451; + return 3508; } } } @@ -253,7 +253,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0x0011xxxxxx1xxxxxxxxx movaz. */ - return 3452; + return 3509; } } } @@ -271,7 +271,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x000101x00xxxxxxxxxxxxxx luti4. */ - return 3588; + return 3645; } else { @@ -279,7 +279,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x000101x10xxxxxxxxxxxxxx luti4. */ - return 2697; + return 2754; } } else @@ -288,7 +288,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x000101xx1xxxxxxxxxxxxxx luti4. */ - return 2696; + return 2753; } } else @@ -297,7 +297,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x100101xxxxxxxxxxxxxxxxx luti4. */ - return 2695; + return 2752; } } else @@ -310,7 +310,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx01101x00xxxxxxxxxxxxxx luti4. */ - return 3589; + return 3646; } else { @@ -318,7 +318,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx01101x10xxxxxxxxxxxxxx luti4. */ - return 3445; + return 3502; } } else @@ -327,7 +327,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx01101xx1xxxxxxxxxxxxxx luti4. */ - return 3444; + return 3501; } } } @@ -347,7 +347,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0x010xxxxx00xxxxxxxxxx mova. */ - return 2712; + return 2769; } else { @@ -357,7 +357,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0x011xxxxx000xxxxxxxxx mova. */ - return 2708; + return 2765; } else { @@ -369,7 +369,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000x011xxxxx001xxxxxxxxx movaz. */ - return 3438; + return 3495; } else { @@ -377,7 +377,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000100x011xxxxx001xxxxxxxxx movaz. */ - return 3440; + return 3497; } } else @@ -388,7 +388,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000010x011xxxxx001xxxxxxxxx movaz. */ - return 3439; + return 3496; } else { @@ -396,7 +396,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000110x011xxxxx001xxxxxxxxx movaz. */ - return 3441; + return 3498; } } } @@ -420,7 +420,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000011000xxx00xxxxxxxxxx zero. */ - return 3453; + return 3510; } else { @@ -428,7 +428,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000011100xxx00xxxxxxxxxx zero. */ - return 3454; + return 3511; } } else @@ -439,7 +439,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000011010xxx00xxxxxxxxxx zero. */ - return 3456; + return 3513; } else { @@ -447,7 +447,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000011110xxx00xxxxxxxxxx zero. */ - return 3459; + return 3516; } } } @@ -461,7 +461,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000011001xxx00xxxxxxxxxx zero. */ - return 3455; + return 3512; } else { @@ -469,7 +469,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000011101xxx00xxxxxxxxxx zero. */ - return 3458; + return 3515; } } else @@ -480,7 +480,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000011011xxx00xxxxxxxxxx zero. */ - return 3457; + return 3514; } else { @@ -488,7 +488,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000011111xxx00xxxxxxxxxx zero. */ - return 3460; + return 3517; } } } @@ -501,7 +501,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000100011xxx0xx00xxxxxxxxxx luti2. */ - return 2694; + return 2751; } else { @@ -509,7 +509,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000100011xxx1xx00xxxxxxxxxx luti2. */ - return 2693; + return 2750; } } } @@ -525,7 +525,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x100000001001100xxxx00xxxxxxxxxx movt. */ - return 2715; + return 2772; } else { @@ -533,7 +533,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x100000001001110xxxx00xxxxxxxxxx movt. */ - return 2714; + return 2771; } } else @@ -542,7 +542,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000010011x1xxxx00xxxxxxxxxx movt. */ - return 3590; + return 3647; } } else @@ -551,7 +551,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000110011xxxxxx00xxxxxxxxxx luti2. */ - return 2692; + return 2749; } } } @@ -563,7 +563,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0111xxx0xx00xxxxxxxxxx luti2. */ - return 3443; + return 3500; } else { @@ -571,7 +571,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0111xxx1xx00xxxxxxxxxx luti2. */ - return 3442; + return 3499; } } } @@ -584,7 +584,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0xx10xxxxx10xxxxxxxxxx mova. */ - return 2710; + return 2767; } else { @@ -594,7 +594,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0xx11xxxxx100xxxxxxxxx mova. */ - return 2706; + return 2763; } else { @@ -602,7 +602,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0xx11xxxxx101xxxxxxxxx movaz. */ - return 3446; + return 3503; } } } @@ -617,7 +617,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0xx10xxxxx01xxxxxxxxxx mova. */ - return 2713; + return 2770; } else { @@ -627,7 +627,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0xx11xxxxx010xxxxxxxxx mova. */ - return 2709; + return 2766; } else { @@ -639,7 +639,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000000xx11xxxxx011xxxxxxxxx movaz. */ - return 3434; + return 3491; } else { @@ -647,7 +647,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000100xx11xxxxx011xxxxxxxxx movaz. */ - return 3436; + return 3493; } } else @@ -658,7 +658,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000010xx11xxxxx011xxxxxxxxx movaz. */ - return 3435; + return 3492; } else { @@ -666,7 +666,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000110xx11xxxxx011xxxxxxxxx movaz. */ - return 3437; + return 3494; } } } @@ -680,7 +680,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0xx10xxxxx11xxxxxxxxxx mova. */ - return 2711; + return 2768; } else { @@ -690,7 +690,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0xx11xxxxx110xxxxxxxxx mova. */ - return 2707; + return 2764; } else { @@ -698,7 +698,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx0xx11xxxxx111xxxxxxxxx movaz. */ - return 3447; + return 3504; } } } @@ -726,7 +726,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx000xxxxxxxxxxxx0 ld1b. */ - return 2631; + return 2688; } else { @@ -734,7 +734,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx100xxxxxxxxxxxx0 ld1b. */ - return 2632; + return 2689; } } else @@ -745,7 +745,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx010xxxxxxxxxxxx0 ld1w. */ - return 2655; + return 2712; } else { @@ -753,7 +753,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx110xxxxxxxxxxxx0 ld1w. */ - return 2656; + return 2713; } } } @@ -767,7 +767,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx001xxxxxxxxxxxx0 ld1h. */ - return 2647; + return 2704; } else { @@ -775,7 +775,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx101xxxxxxxxxxxx0 ld1h. */ - return 2648; + return 2705; } } else @@ -786,7 +786,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx011xxxxxxxxxxxx0 ld1d. */ - return 2639; + return 2696; } else { @@ -794,7 +794,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx111xxxxxxxxxxxx0 ld1d. */ - return 2640; + return 2697; } } } @@ -811,7 +811,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx000xxxxxxxxxxxx1 ldnt1b. */ - return 2663; + return 2720; } else { @@ -819,7 +819,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx100xxxxxxxxxxxx1 ldnt1b. */ - return 2664; + return 2721; } } else @@ -830,7 +830,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx010xxxxxxxxxxxx1 ldnt1w. */ - return 2687; + return 2744; } else { @@ -838,7 +838,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx110xxxxxxxxxxxx1 ldnt1w. */ - return 2688; + return 2745; } } } @@ -852,7 +852,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx001xxxxxxxxxxxx1 ldnt1h. */ - return 2679; + return 2736; } else { @@ -860,7 +860,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx101xxxxxxxxxxxx1 ldnt1h. */ - return 2680; + return 2737; } } else @@ -871,7 +871,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx011xxxxxxxxxxxx1 ldnt1d. */ - return 2671; + return 2728; } else { @@ -879,7 +879,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000000xxxxx111xxxxxxxxxxxx1 ldnt1d. */ - return 2672; + return 2729; } } } @@ -891,7 +891,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100000000xxxxxxxxxxxxxxxxxxxxx ld1b. */ - return 2477; + return 2534; } } else @@ -906,7 +906,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000100xxxxxxxxxxxxxxxx00xxx smopa. */ - return 2456; + return 2513; } else { @@ -914,7 +914,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000100xxxxxxxxxxxxxxxx01xxx smopa. */ - return 2777; + return 2834; } } else @@ -923,7 +923,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100000100xxxxxxxxxxxxxxxx0xxxx ld1w. */ - return 2479; + return 2536; } } else @@ -934,7 +934,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100000100xxxxxxxxxxxxxxxx10xxx smops. */ - return 2458; + return 2515; } else { @@ -942,7 +942,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100000100xxxxxxxxxxxxxxxx11xxx smops. */ - return 2778; + return 2835; } } } @@ -965,7 +965,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx000xxxxxxxxxxxx0 ld1b. */ - return 2627; + return 2684; } else { @@ -973,7 +973,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx100xxxxxxxxxxxx0 ld1b. */ - return 2628; + return 2685; } } else @@ -984,7 +984,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx010xxxxxxxxxxxx0 ld1w. */ - return 2651; + return 2708; } else { @@ -992,7 +992,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx110xxxxxxxxxxxx0 ld1w. */ - return 2652; + return 2709; } } } @@ -1006,7 +1006,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx001xxxxxxxxxxxx0 ld1h. */ - return 2643; + return 2700; } else { @@ -1014,7 +1014,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx101xxxxxxxxxxxx0 ld1h. */ - return 2644; + return 2701; } } else @@ -1025,7 +1025,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx011xxxxxxxxxxxx0 ld1d. */ - return 2635; + return 2692; } else { @@ -1033,7 +1033,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx111xxxxxxxxxxxx0 ld1d. */ - return 2636; + return 2693; } } } @@ -1050,7 +1050,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx000xxxxxxxxxxxx1 ldnt1b. */ - return 2659; + return 2716; } else { @@ -1058,7 +1058,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx100xxxxxxxxxxxx1 ldnt1b. */ - return 2660; + return 2717; } } else @@ -1069,7 +1069,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx010xxxxxxxxxxxx1 ldnt1w. */ - return 2683; + return 2740; } else { @@ -1077,7 +1077,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx110xxxxxxxxxxxx1 ldnt1w. */ - return 2684; + return 2741; } } } @@ -1091,7 +1091,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx001xxxxxxxxxxxx1 ldnt1h. */ - return 2675; + return 2732; } else { @@ -1099,7 +1099,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx101xxxxxxxxxxxx1 ldnt1h. */ - return 2676; + return 2733; } } else @@ -1110,7 +1110,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx011xxxxxxxxxxxx1 ldnt1d. */ - return 2667; + return 2724; } else { @@ -1118,7 +1118,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000010xxxxx111xxxxxxxxxxxx1 ldnt1d. */ - return 2668; + return 2725; } } } @@ -1130,7 +1130,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100000010xxxxxxxxxxxxxxxxxxxxx ld1h. */ - return 2478; + return 2535; } } else @@ -1143,7 +1143,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000110xxxxxxxxxxxxxxxx0xxxx smopa. */ - return 2457; + return 2514; } else { @@ -1151,7 +1151,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100000110xxxxxxxxxxxxxxxx0xxxx ld1d. */ - return 2480; + return 2537; } } else @@ -1160,7 +1160,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100000110xxxxxxxxxxxxxxxx1xxxx smops. */ - return 2459; + return 2516; } } } @@ -1186,7 +1186,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx000xxxxxxxxxxxx0 st1b. */ - return 2803; + return 2860; } else { @@ -1194,7 +1194,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx100xxxxxxxxxxxx0 st1b. */ - return 2804; + return 2861; } } else @@ -1205,7 +1205,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx010xxxxxxxxxxxx0 st1w. */ - return 2827; + return 2884; } else { @@ -1213,7 +1213,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx110xxxxxxxxxxxx0 st1w. */ - return 2828; + return 2885; } } } @@ -1227,7 +1227,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx001xxxxxxxxxxxx0 st1h. */ - return 2819; + return 2876; } else { @@ -1235,7 +1235,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx101xxxxxxxxxxxx0 st1h. */ - return 2820; + return 2877; } } else @@ -1246,7 +1246,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx011xxxxxxxxxxxx0 st1d. */ - return 2811; + return 2868; } else { @@ -1254,7 +1254,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx111xxxxxxxxxxxx0 st1d. */ - return 2812; + return 2869; } } } @@ -1271,7 +1271,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx000xxxxxxxxxxxx1 stnt1b. */ - return 2835; + return 2892; } else { @@ -1279,7 +1279,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx100xxxxxxxxxxxx1 stnt1b. */ - return 2836; + return 2893; } } else @@ -1290,7 +1290,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx010xxxxxxxxxxxx1 stnt1w. */ - return 2859; + return 2916; } else { @@ -1298,7 +1298,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx110xxxxxxxxxxxx1 stnt1w. */ - return 2860; + return 2917; } } } @@ -1312,7 +1312,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx001xxxxxxxxxxxx1 stnt1h. */ - return 2851; + return 2908; } else { @@ -1320,7 +1320,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx101xxxxxxxxxxxx1 stnt1h. */ - return 2852; + return 2909; } } else @@ -1331,7 +1331,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx011xxxxxxxxxxxx1 stnt1d. */ - return 2843; + return 2900; } else { @@ -1339,7 +1339,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx111xxxxxxxxxxxx1 stnt1d. */ - return 2844; + return 2901; } } } @@ -1351,7 +1351,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1x00000001xxxxxxxxxxxxxxxxxxxxx st1b. */ - return 2482; + return 2539; } } else @@ -1366,7 +1366,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000000101xxxxxxxxxxxxxxxx00xxx fmopa. */ - return 3656; + return 3713; } else { @@ -1374,7 +1374,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000000101xxxxxxxxxxxxxxxx01xxx fmopa. */ - return 3655; + return 3712; } } else @@ -1385,7 +1385,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100000101xxxxxxxxxxxxxxxx0xxxx sumopa. */ - return 2460; + return 2517; } else { @@ -1393,7 +1393,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100000101xxxxxxxxxxxxxxxx0xxxx st1w. */ - return 2484; + return 2541; } } } @@ -1403,7 +1403,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx00000101xxxxxxxxxxxxxxxx1xxxx sumops. */ - return 2462; + return 2519; } } } @@ -1425,7 +1425,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx000xxxxxxxxxxxx0 st1b. */ - return 2799; + return 2856; } else { @@ -1433,7 +1433,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx100xxxxxxxxxxxx0 st1b. */ - return 2800; + return 2857; } } else @@ -1444,7 +1444,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx010xxxxxxxxxxxx0 st1w. */ - return 2823; + return 2880; } else { @@ -1452,7 +1452,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx110xxxxxxxxxxxx0 st1w. */ - return 2824; + return 2881; } } } @@ -1466,7 +1466,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx001xxxxxxxxxxxx0 st1h. */ - return 2815; + return 2872; } else { @@ -1474,7 +1474,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx101xxxxxxxxxxxx0 st1h. */ - return 2816; + return 2873; } } else @@ -1485,7 +1485,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx011xxxxxxxxxxxx0 st1d. */ - return 2807; + return 2864; } else { @@ -1493,7 +1493,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx111xxxxxxxxxxxx0 st1d. */ - return 2808; + return 2865; } } } @@ -1510,7 +1510,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx000xxxxxxxxxxxx1 stnt1b. */ - return 2831; + return 2888; } else { @@ -1518,7 +1518,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx100xxxxxxxxxxxx1 stnt1b. */ - return 2832; + return 2889; } } else @@ -1529,7 +1529,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx010xxxxxxxxxxxx1 stnt1w. */ - return 2855; + return 2912; } else { @@ -1537,7 +1537,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx110xxxxxxxxxxxx1 stnt1w. */ - return 2856; + return 2913; } } } @@ -1551,7 +1551,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx001xxxxxxxxxxxx1 stnt1h. */ - return 2847; + return 2904; } else { @@ -1559,7 +1559,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx101xxxxxxxxxxxx1 stnt1h. */ - return 2848; + return 2905; } } else @@ -1570,7 +1570,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx011xxxxxxxxxxxx1 stnt1d. */ - return 2839; + return 2896; } else { @@ -1578,7 +1578,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx111xxxxxxxxxxxx1 stnt1d. */ - return 2840; + return 2897; } } } @@ -1590,7 +1590,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1x00000011xxxxxxxxxxxxxxxxxxxxx st1h. */ - return 2483; + return 2540; } } else @@ -1603,7 +1603,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000111xxxxxxxxxxxxxxxx0xxxx sumopa. */ - return 2461; + return 2518; } else { @@ -1611,7 +1611,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1x00000111xxxxxxxxxxxxxxxx0xxxx st1d. */ - return 2485; + return 2542; } } else @@ -1620,7 +1620,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx00000111xxxxxxxxxxxxxxxx1xxxx sumops. */ - return 2463; + return 2520; } } } @@ -1634,7 +1634,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0xx10000xxxxxxxxxxxxxxxxxxxxxxxx adr. */ - return 1273; + return 1319; } else { @@ -1642,7 +1642,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1xx10000xxxxxxxxxxxxxxxxxxxxxxxx adrp. */ - return 1274; + return 1320; } } } @@ -1670,7 +1670,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010000xxxxxxxxxxxxxxx000xx smlall. */ - return 2753; + return 2810; } else { @@ -1678,7 +1678,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010000xxxxxxxxxxxxxxx010xx smlsll. */ - return 2769; + return 2826; } } else @@ -1687,7 +1687,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010000xxxxxxxxxxxxxxx0x1xx usmlall. */ - return 2958; + return 3015; } } else @@ -1704,7 +1704,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xx0xxxxxx000xxx smlall. */ - return 2754; + return 2811; } else { @@ -1714,7 +1714,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx0xxxxx0000xxx smlall. */ - return 2755; + return 2812; } else { @@ -1722,7 +1722,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx0xxxxx1000xxx fmlall. */ - return 3649; + return 3706; } } } @@ -1734,7 +1734,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xx0xxxxxx001xxx smlsll. */ - return 2770; + return 2827; } else { @@ -1742,7 +1742,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx0xxxxxx001xxx smlsll. */ - return 2771; + return 2828; } } } @@ -1754,7 +1754,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xx1xxxxxx00xxxx fmla. */ - return 3463; + return 3520; } else { @@ -1764,7 +1764,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx1xxxxx000xxxx fmla. */ - return 3464; + return 3521; } else { @@ -1772,7 +1772,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx1xxxxx100xxxx fdot. */ - return 3634; + return 3691; } } } @@ -1787,7 +1787,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xx0xxxxxx10xxxx usmlall. */ - return 2959; + return 3016; } else { @@ -1795,7 +1795,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx0xxxxxx10xxxx usmlall. */ - return 2960; + return 3017; } } else @@ -1806,7 +1806,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xx1xxxxxx10xxxx bfmla. */ - return 3420; + return 3477; } else { @@ -1814,7 +1814,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx1xxxxxx10xxxx bfmla. */ - return 3421; + return 3478; } } } @@ -1832,7 +1832,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010000xxxxxxxxxxxxxxx100xx umlall. */ - return 2916; + return 2973; } else { @@ -1840,7 +1840,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010000xxxxxxxxxxxxxxx110xx umlsll. */ - return 2932; + return 2989; } } else @@ -1849,7 +1849,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010000xxxxxxxxxxxxxxx1x1xx sumlall. */ - return 2874; + return 2931; } } else @@ -1866,7 +1866,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xx0xxxxxx010xxx umlall. */ - return 2917; + return 2974; } else { @@ -1874,7 +1874,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx0xxxxxx010xxx umlall. */ - return 2918; + return 2975; } } else @@ -1885,7 +1885,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xx0xxxxxx011xxx umlsll. */ - return 2933; + return 2990; } else { @@ -1893,7 +1893,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx0xxxxxx011xxx umlsll. */ - return 2934; + return 2991; } } } @@ -1905,7 +1905,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xx1xxxxxx01xxxx fmls. */ - return 3469; + return 3526; } else { @@ -1913,7 +1913,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx1xxxxxx01xxxx fmls. */ - return 3470; + return 3527; } } } @@ -1927,7 +1927,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xx0xxxxxx11xxxx sumlall. */ - return 2875; + return 2932; } else { @@ -1935,7 +1935,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx0xxxxxx11xxxx sumlall. */ - return 2876; + return 2933; } } else @@ -1946,7 +1946,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xx1xxxxxx11xxxx bfmls. */ - return 3426; + return 3483; } else { @@ -1954,7 +1954,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx1xxxxxx11xxxx bfmls. */ - return 3427; + return 3484; } } } @@ -1977,7 +1977,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001000xxxxx000xxxxxxxxx0xxx ld1b. */ - return 2633; + return 2690; } else { @@ -1985,7 +1985,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001000xxxxx010xxxxxxxxx0xxx ld1w. */ - return 2657; + return 2714; } } else @@ -1996,7 +1996,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001000xxxxx001xxxxxxxxx0xxx ld1h. */ - return 2649; + return 2706; } else { @@ -2004,7 +2004,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001000xxxxx011xxxxxxxxx0xxx ld1d. */ - return 2641; + return 2698; } } } @@ -2018,7 +2018,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001000xxxxx000xxxxxxxxx1xxx ldnt1b. */ - return 2665; + return 2722; } else { @@ -2026,7 +2026,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001000xxxxx010xxxxxxxxx1xxx ldnt1w. */ - return 2689; + return 2746; } } else @@ -2037,7 +2037,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001000xxxxx001xxxxxxxxx1xxx ldnt1h. */ - return 2681; + return 2738; } else { @@ -2045,7 +2045,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001000xxxxx011xxxxxxxxx1xxx ldnt1d. */ - return 2673; + return 2730; } } } @@ -2056,7 +2056,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100001000xxxxx0xxxxxxxxxxxxxxx ldr. */ - return 2487; + return 2544; } } else @@ -2073,7 +2073,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001000xxxxx100xxxxxxxxx0xxx ld1b. */ - return 2634; + return 2691; } else { @@ -2081,7 +2081,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100001000xxxxx100xxxxxxxxx0xxx ldr. */ - return 2691; + return 2748; } } else @@ -2090,7 +2090,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001000xxxxx110xxxxxxxxx0xxx ld1w. */ - return 2658; + return 2715; } } else @@ -2101,7 +2101,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001000xxxxx101xxxxxxxxx0xxx ld1h. */ - return 2650; + return 2707; } else { @@ -2109,7 +2109,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001000xxxxx111xxxxxxxxx0xxx ld1d. */ - return 2642; + return 2699; } } } @@ -2123,7 +2123,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001000xxxxx100xxxxxxxxx1xxx ldnt1b. */ - return 2666; + return 2723; } else { @@ -2131,7 +2131,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001000xxxxx110xxxxxxxxx1xxx ldnt1w. */ - return 2690; + return 2747; } } else @@ -2142,7 +2142,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001000xxxxx101xxxxxxxxx1xxx ldnt1h. */ - return 2682; + return 2739; } else { @@ -2150,7 +2150,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001000xxxxx111xxxxxxxxx1xxx ldnt1d. */ - return 2674; + return 2731; } } } @@ -2171,7 +2171,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000001100xxxxxxxxxxxxxxxx00xxx bfmopa. */ - return 2447; + return 2504; } else { @@ -2179,7 +2179,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000001100xxxxxxxxxxxxxxxx01xxx fmopa. */ - return 3461; + return 3518; } } else @@ -2194,7 +2194,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011000xxxxxxx0xxxxxxx00xxx smlall. */ - return 2990; + return 3047; } else { @@ -2206,7 +2206,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx0xx0xxxxxx000xxx smlall. */ - return 2991; + return 3048; } else { @@ -2214,7 +2214,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx1xx0xxxxxx000xxx smlall. */ - return 2992; + return 3049; } } else @@ -2223,7 +2223,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxxxxx0xxxxxx100xxx fmlall. */ - return 3648; + return 3705; } } } @@ -2235,7 +2235,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011000xxxxxxx0xxxxxxx01xxx smlsll. */ - return 2993; + return 3050; } else { @@ -2245,7 +2245,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx0xx0xxxxxxx01xxx smlsll. */ - return 2994; + return 3051; } else { @@ -2253,7 +2253,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx1xx0xxxxxxx01xxx smlsll. */ - return 2995; + return 3052; } } } @@ -2268,7 +2268,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011000xxxxxxx1xxxxxxx00xxx fmlal. */ - return 2594; + return 2651; } else { @@ -2276,7 +2276,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011000xxxxxxx1xxxxxxx01xxx fmlsl. */ - return 2608; + return 2665; } } else @@ -2291,7 +2291,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx0xx1xxxxxx000xxx fmlal. */ - return 2595; + return 2652; } else { @@ -2299,7 +2299,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx1xx1xxxxxx000xxx fmlal. */ - return 2596; + return 2653; } } else @@ -2310,7 +2310,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx0xx1xxxxxx001xxx fmlsl. */ - return 2609; + return 2666; } else { @@ -2318,7 +2318,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx1xx1xxxxxx001xxx fmlsl. */ - return 2610; + return 2667; } } } @@ -2328,7 +2328,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxxxxx1xxxxxx10xxxx fmlal. */ - return 3641; + return 3698; } } } @@ -2342,7 +2342,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001100xxxxxxxxxxxxxxxx00xxx usmopa. */ - return 2468; + return 2525; } else { @@ -2350,7 +2350,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001100xxxxxxxxxxxxxxxx01xxx umopa. */ - return 2940; + return 2997; } } } @@ -2366,7 +2366,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000001100xxxxxxxxxxxxxxxx10xxx bfmops. */ - return 2448; + return 2505; } else { @@ -2374,7 +2374,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000001100xxxxxxxxxxxxxxxx11xxx fmops. */ - return 3462; + return 3519; } } else @@ -2389,7 +2389,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011000xxxxxxx0xxxxxxx10xxx umlall. */ - return 2999; + return 3056; } else { @@ -2399,7 +2399,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx0xx0xxxxxxx10xxx umlall. */ - return 3000; + return 3057; } else { @@ -2407,7 +2407,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx1xx0xxxxxxx10xxx umlall. */ - return 3001; + return 3058; } } } @@ -2419,7 +2419,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011000xxxxxxx0xxxxxxx11xxx umlsll. */ - return 3002; + return 3059; } else { @@ -2429,7 +2429,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx0xx0xxxxxxx11xxx umlsll. */ - return 3003; + return 3060; } else { @@ -2437,7 +2437,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx1xx0xxxxxxx11xxx umlsll. */ - return 3004; + return 3061; } } } @@ -2452,7 +2452,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011000xxxxxxx1xxxxxxx10xxx bfmlal. */ - return 2536; + return 2593; } else { @@ -2460,7 +2460,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011000xxxxxxx1xxxxxxx11xxx bfmlsl. */ - return 2544; + return 2601; } } else @@ -2475,7 +2475,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx0xx1xxxxxx010xxx bfmlal. */ - return 2537; + return 2594; } else { @@ -2483,7 +2483,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx1xx1xxxxxx010xxx bfmlal. */ - return 2538; + return 2595; } } else @@ -2494,7 +2494,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx0xx1xxxxxx011xxx bfmlsl. */ - return 2545; + return 2602; } else { @@ -2502,7 +2502,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx1xx1xxxxxx011xxx bfmlsl. */ - return 2546; + return 2603; } } } @@ -2512,7 +2512,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxxxxx1xxxxxx11xxxx fmlal. */ - return 3640; + return 3697; } } } @@ -2526,7 +2526,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001100xxxxxxxxxxxxxxxx10xxx usmops. */ - return 2470; + return 2527; } else { @@ -2534,7 +2534,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001100xxxxxxxxxxxxxxxx11xxx umops. */ - return 2941; + return 2998; } } } @@ -2554,7 +2554,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010100xxxxxxxxxxxxxxxx0xxx fmlall. */ - return 3647; + return 3704; } else { @@ -2568,7 +2568,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1000010100xxxx000xxxxxxxxx0xxx ld1b. */ - return 2629; + return 2686; } else { @@ -2576,7 +2576,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1000010100xxxx100xxxxxxxxx0xxx ld1b. */ - return 2630; + return 2687; } } else @@ -2587,7 +2587,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1000010100xxxx010xxxxxxxxx0xxx ld1w. */ - return 2653; + return 2710; } else { @@ -2595,7 +2595,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1000010100xxxx110xxxxxxxxx0xxx ld1w. */ - return 2654; + return 2711; } } } @@ -2609,7 +2609,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1000010100xxxx001xxxxxxxxx0xxx ld1h. */ - return 2645; + return 2702; } else { @@ -2617,7 +2617,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1000010100xxxx101xxxxxxxxx0xxx ld1h. */ - return 2646; + return 2703; } } else @@ -2628,7 +2628,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1000010100xxxx011xxxxxxxxx0xxx ld1d. */ - return 2637; + return 2694; } else { @@ -2636,7 +2636,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1000010100xxxx111xxxxxxxxx0xxx ld1d. */ - return 2638; + return 2695; } } } @@ -2656,7 +2656,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx0xxxxxx000xxx fmla. */ - return 2588; + return 2645; } else { @@ -2664,7 +2664,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx000xxx fmla. */ - return 2589; + return 2646; } } else @@ -2675,7 +2675,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx1xxxxxx000xxx sdot. */ - return 2723; + return 2780; } else { @@ -2683,7 +2683,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx000xxx sdot. */ - return 2724; + return 2781; } } } @@ -2697,7 +2697,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx0xxxxxx100xxx svdot. */ - return 2882; + return 2939; } else { @@ -2705,7 +2705,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx100xxx svdot. */ - return 2883; + return 2940; } } else @@ -2716,7 +2716,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx1xxxxxx100xxx sdot. */ - return 2729; + return 2786; } else { @@ -2724,7 +2724,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx100xxx sdot. */ - return 2730; + return 2787; } } } @@ -2741,7 +2741,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx0xxxxxx010xxx fmls. */ - return 2602; + return 2659; } else { @@ -2749,7 +2749,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx010xxx fmls. */ - return 2603; + return 2660; } } else @@ -2760,7 +2760,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx1xxxxxx010xxx udot. */ - return 2888; + return 2945; } else { @@ -2768,7 +2768,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx010xxx udot. */ - return 2889; + return 2946; } } } @@ -2782,7 +2782,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx0xxxxxx110xxx uvdot. */ - return 2969; + return 3026; } else { @@ -2790,7 +2790,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx110xxx uvdot. */ - return 2970; + return 3027; } } else @@ -2801,7 +2801,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx1xxxxxx110xxx udot. */ - return 2894; + return 2951; } else { @@ -2809,7 +2809,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx110xxx udot. */ - return 2895; + return 2952; } } } @@ -2830,7 +2830,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010100xxxx000xxxxxxxxx1xxx ldnt1b. */ - return 2661; + return 2718; } else { @@ -2838,7 +2838,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010100xxxx010xxxxxxxxx1xxx ldnt1w. */ - return 2685; + return 2742; } } else @@ -2849,7 +2849,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010100xxxx001xxxxxxxxx1xxx ldnt1h. */ - return 2677; + return 2734; } else { @@ -2857,7 +2857,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010100xxxx011xxxxxxxxx1xxx ldnt1d. */ - return 2669; + return 2726; } } } @@ -2873,7 +2873,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx0xxxxxx001xxx fvdot. */ - return 2626; + return 2683; } else { @@ -2881,7 +2881,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx1xxxxxx001xxx fdot. */ - return 2566; + return 2623; } } else @@ -2890,7 +2890,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xxxxxxxxx101xxx usdot. */ - return 2952; + return 3009; } } else @@ -2903,7 +2903,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx0xxxxxx011xxx bfvdot. */ - return 2552; + return 2609; } else { @@ -2911,7 +2911,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx1xxxxxx011xxx bfdot. */ - return 2530; + return 2587; } } else @@ -2922,7 +2922,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx0xxxxxx111xxx fdot. */ - return 3627; + return 3684; } else { @@ -2930,7 +2930,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx1xxxxxx111xxx sudot. */ - return 2870; + return 2927; } } } @@ -2948,7 +2948,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010100xxxx100xxxxxxxxx1xxx ldnt1b. */ - return 2662; + return 2719; } else { @@ -2956,7 +2956,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010100xxxx110xxxxxxxxx1xxx ldnt1w. */ - return 2686; + return 2743; } } else @@ -2967,7 +2967,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010100xxxx101xxxxxxxxx1xxx ldnt1h. */ - return 2678; + return 2735; } else { @@ -2975,7 +2975,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010100xxxx111xxxxxxxxx1xxx ldnt1d. */ - return 2670; + return 2727; } } } @@ -2991,7 +2991,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx001xxx fdot. */ - return 3628; + return 3685; } else { @@ -2999,7 +2999,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx001xxx fdot. */ - return 2567; + return 2624; } } else @@ -3010,7 +3010,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx101xxx usvdot. */ - return 2966; + return 3023; } else { @@ -3018,7 +3018,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx101xxx usdot. */ - return 2953; + return 3010; } } } @@ -3030,7 +3030,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xxxxxxxxx011xxx bfdot. */ - return 2531; + return 2588; } else { @@ -3040,7 +3040,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx111xxx suvdot. */ - return 2881; + return 2938; } else { @@ -3048,7 +3048,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx111xxx sudot. */ - return 2871; + return 2928; } } } @@ -3070,7 +3070,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011100xxxxxxx0xxxxxxx0xxxx fmlal. */ - return 3639; + return 3696; } else { @@ -3086,7 +3086,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx0xx00xxxxx000xxx fmla. */ - return 3006; + return 3063; } else { @@ -3094,7 +3094,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx1xx00xxxxx000xxx fmla. */ - return 3007; + return 3064; } } else @@ -3105,7 +3105,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx0xx00xxxxx001xxx sdot. */ - return 2988; + return 3045; } else { @@ -3113,7 +3113,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx1xx00xxxxx001xxx sdot. */ - return 2989; + return 3046; } } } @@ -3125,7 +3125,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx0xx01xxxxx00xxxx fvdotb. */ - return 3658; + return 3715; } else { @@ -3133,7 +3133,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx1xx01xxxxx00xxxx svdot. */ - return 2996; + return 3053; } } } @@ -3143,7 +3143,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxxxxx0xxxxxx10xxxx fdot. */ - return 3633; + return 3690; } } } @@ -3157,7 +3157,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011100xxxxxxx1xxxxxxx00xxx smlal. */ - return 2745; + return 2802; } else { @@ -3165,7 +3165,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011100xxxxxxx1xxxxxxx01xxx smlsl. */ - return 2761; + return 2818; } } else @@ -3180,7 +3180,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx0xx1xxxxxx000xxx smlal. */ - return 2746; + return 2803; } else { @@ -3188,7 +3188,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx1xx1xxxxxx000xxx smlal. */ - return 2747; + return 2804; } } else @@ -3199,7 +3199,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx0xx1xxxxxx001xxx smlsl. */ - return 2762; + return 2819; } else { @@ -3207,7 +3207,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx1xx1xxxxxx001xxx smlsl. */ - return 2763; + return 2820; } } } @@ -3217,7 +3217,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxxxxx1xxxxxx10xxxx fvdot. */ - return 3657; + return 3714; } } } @@ -3230,7 +3230,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001110xxxxxxxxxxxxxxxx0xxxx usmopa. */ - return 2469; + return 2526; } else { @@ -3238,7 +3238,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100001110xxxxxxxxxxxxxxxx0xxxx ld1q. */ - return 2481; + return 2538; } } } @@ -3258,7 +3258,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx0xx00xxxxxx10xxx fmls. */ - return 3008; + return 3065; } else { @@ -3266,7 +3266,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx1xx00xxxxxx10xxx fmls. */ - return 3009; + return 3066; } } else @@ -3277,7 +3277,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx0xx00xxxxxx11xxx udot. */ - return 2997; + return 3054; } else { @@ -3285,7 +3285,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx1xx00xxxxxx11xxx udot. */ - return 2998; + return 3055; } } } @@ -3297,7 +3297,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx0xx01xxxxxx1xxxx fvdott. */ - return 3659; + return 3716; } else { @@ -3305,7 +3305,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx1xx01xxxxxx1xxxx uvdot. */ - return 3005; + return 3062; } } } @@ -3319,7 +3319,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011100xxxxxxx1xxxxxxx10xxx umlal. */ - return 2908; + return 2965; } else { @@ -3329,7 +3329,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx0xx1xxxxxxx10xxx umlal. */ - return 2909; + return 2966; } else { @@ -3337,7 +3337,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx1xx1xxxxxxx10xxx umlal. */ - return 2910; + return 2967; } } } @@ -3349,7 +3349,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011100xxxxxxx1xxxxxxx11xxx umlsl. */ - return 2924; + return 2981; } else { @@ -3359,7 +3359,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx0xx1xxxxxxx11xxx umlsl. */ - return 2925; + return 2982; } else { @@ -3367,7 +3367,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx1xx1xxxxxxx11xxx umlsl. */ - return 2926; + return 2983; } } } @@ -3379,7 +3379,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001110xxxxxxxxxxxxxxxx1xxxx usmops. */ - return 2471; + return 2528; } } } @@ -3399,7 +3399,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000001xx1xxxxxxxxxxxxxxxx00xxx fmopa. */ - return 2451; + return 2508; } else { @@ -3407,7 +3407,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000001xx1xxxxxxxxxxxxxxxx10xxx fmops. */ - return 2454; + return 2511; } } else @@ -3418,7 +3418,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000001xx1xxxxxxxxxxxxxxxx01xxx bfmopa. */ - return 3432; + return 3489; } else { @@ -3426,7 +3426,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0000001xx1xxxxxxxxxxxxxxxx11xxx bfmops. */ - return 3433; + return 3490; } } } @@ -3456,7 +3456,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx000xxxxx0000x smlall. */ - return 2757; + return 2814; } else { @@ -3464,7 +3464,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx000xxxxx0000x smlall. */ - return 2758; + return 2815; } } else @@ -3477,7 +3477,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx000xxxx00000x smlall. */ - return 2759; + return 2816; } else { @@ -3485,7 +3485,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx000xxxx00000x smlall. */ - return 2760; + return 2817; } } else @@ -3496,7 +3496,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx000xxxx10000x fmlall. */ - return 3653; + return 3710; } else { @@ -3504,7 +3504,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx000xxxx10000x fmlall. */ - return 3654; + return 3711; } } } @@ -3519,7 +3519,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx000xxxxx0010x usmlall. */ - return 2962; + return 3019; } else { @@ -3527,7 +3527,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx000xxxxx0010x usmlall. */ - return 2963; + return 3020; } } else @@ -3538,7 +3538,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx000xxxxx0010x usmlall. */ - return 2964; + return 3021; } else { @@ -3546,7 +3546,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx000xxxxx0010x usmlall. */ - return 2965; + return 3022; } } } @@ -3559,7 +3559,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xxxx0xx000xxxxx00x1x fmlall. */ - return 3651; + return 3708; } else { @@ -3567,7 +3567,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx000xxxxx00x1x fmlall. */ - return 3652; + return 3709; } } } @@ -3581,7 +3581,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx100xxxxx00xxx fdot. */ - return 2568; + return 2625; } else { @@ -3589,7 +3589,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx100xxxxx00xxx fdot. */ - return 2569; + return 2626; } } else @@ -3602,7 +3602,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx100xxxx000xxx fdot. */ - return 2570; + return 2627; } else { @@ -3610,7 +3610,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx100xxxx000xxx fdot. */ - return 2571; + return 2628; } } else @@ -3621,7 +3621,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx100xxxx100xxx fdot. */ - return 3637; + return 3694; } else { @@ -3629,7 +3629,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx100xxxx100xxx fdot. */ - return 3638; + return 3695; } } } @@ -3651,7 +3651,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010xxxx0xx010xxxxx000xx fmlal. */ - return 2598; + return 2655; } else { @@ -3659,7 +3659,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010011xxxx0xx010xxxxx000xx fmlal. */ - return 2599; + return 2656; } } else @@ -3672,7 +3672,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx00xx010xxxx0000xx fmlal. */ - return 2600; + return 2657; } else { @@ -3680,7 +3680,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx10xx010xxxx0000xx fmlal. */ - return 2601; + return 2658; } } else @@ -3691,7 +3691,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx00xx010xxxx1000xx fmlal. */ - return 3645; + return 3702; } else { @@ -3699,7 +3699,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx10xx010xxxx1000xx fmlal. */ - return 3646; + return 3703; } } } @@ -3714,7 +3714,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx010xxxxx000xx smlal. */ - return 2749; + return 2806; } else { @@ -3722,7 +3722,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010111xxxx0xx010xxxxx000xx smlal. */ - return 2750; + return 2807; } } else @@ -3733,7 +3733,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx00xx010xxxxx000xx smlal. */ - return 2751; + return 2808; } else { @@ -3741,7 +3741,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx10xx010xxxxx000xx smlal. */ - return 2752; + return 2809; } } } @@ -3754,7 +3754,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xxxx0xx010xxxxx001xx fmlal. */ - return 3643; + return 3700; } else { @@ -3762,7 +3762,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx010xxxxx001xx fmlal. */ - return 3644; + return 3701; } } } @@ -3776,7 +3776,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx110xxxxx00xxx fmla. */ - return 2590; + return 2647; } else { @@ -3784,7 +3784,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx110xxxxx00xxx fmla. */ - return 2591; + return 2648; } } else @@ -3795,7 +3795,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx110xxxxx00xxx fmla. */ - return 2592; + return 2649; } else { @@ -3803,7 +3803,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx110xxxxx00xxx fmla. */ - return 2593; + return 2650; } } } @@ -3823,7 +3823,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xxxx0xx001xxxxx000xx smlall. */ - return 2756; + return 2813; } else { @@ -3831,7 +3831,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx001xxxxx000xx fmlall. */ - return 3650; + return 3707; } } else @@ -3840,7 +3840,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx0xx001xxxxx001xx usmlall. */ - return 2961; + return 3018; } } else @@ -3853,7 +3853,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx101xxxxx00xxx sdot. */ - return 2731; + return 2788; } else { @@ -3861,7 +3861,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx101xxxxx00xxx sdot. */ - return 2732; + return 2789; } } else @@ -3872,7 +3872,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx101xxxxx00xxx sdot. */ - return 2733; + return 2790; } else { @@ -3880,7 +3880,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx101xxxxx00xxx sdot. */ - return 2734; + return 2791; } } } @@ -3897,7 +3897,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x010xxxx0xx011xxxxx00xxx fmlal. */ - return 2597; + return 2654; } else { @@ -3905,7 +3905,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x110xxxx0xx011xxxxx00xxx smlal. */ - return 2748; + return 2805; } } else @@ -3914,7 +3914,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx011xxxxx00xxx fmlal. */ - return 3642; + return 3699; } } else @@ -3929,7 +3929,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010xxxx0xx111xxxxx00xxx fmla. */ - return 3465; + return 3522; } else { @@ -3937,7 +3937,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx111xxxxx00xxx bfmla. */ - return 3422; + return 3479; } } else @@ -3950,7 +3950,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x10x0x00xx111xxxxx00xxx fadd. */ - return 2556; + return 2613; } else { @@ -3960,7 +3960,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011010x1x00xx111xxxxx00xxx fadd. */ - return 3591; + return 3648; } else { @@ -3968,7 +3968,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011110x1x00xx111xxxxx00xxx bfadd. */ - return 3416; + return 3473; } } } @@ -3980,7 +3980,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x10x0x10xx111xxxxx00xxx fadd. */ - return 2557; + return 2614; } else { @@ -3990,7 +3990,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011010x1x10xx111xxxxx00xxx fadd. */ - return 3592; + return 3649; } else { @@ -3998,7 +3998,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011110x1x10xx111xxxxx00xxx bfadd. */ - return 3417; + return 3474; } } } @@ -4012,7 +4012,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x011xxxx0xx111xxxxx00xxx fmla. */ - return 3466; + return 3523; } else { @@ -4020,7 +4020,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x111xxxx0xx111xxxxx00xxx bfmla. */ - return 3423; + return 3480; } } } @@ -4045,7 +4045,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx000xxxxx100xx umlall. */ - return 2920; + return 2977; } else { @@ -4053,7 +4053,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx000xxxxx100xx umlall. */ - return 2921; + return 2978; } } else @@ -4064,7 +4064,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx000xxxxx100xx umlall. */ - return 2922; + return 2979; } else { @@ -4072,7 +4072,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx000xxxxx100xx umlall. */ - return 2923; + return 2980; } } } @@ -4084,7 +4084,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xxxx0xx000xxxxx101xx sumlall. */ - return 2877; + return 2934; } else { @@ -4092,7 +4092,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx000xxxxx101xx sumlall. */ - return 2878; + return 2935; } } } @@ -4106,7 +4106,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx100xxxxx10xxx bfdot. */ - return 2532; + return 2589; } else { @@ -4114,7 +4114,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx100xxxxx10xxx bfdot. */ - return 2533; + return 2590; } } else @@ -4127,7 +4127,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx100xxxx010xxx bfdot. */ - return 2534; + return 2591; } else { @@ -4135,7 +4135,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx100xxxx010xxx bfdot. */ - return 2535; + return 2592; } } else @@ -4146,7 +4146,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx100xxxx110xxx fdot. */ - return 3631; + return 3688; } else { @@ -4154,7 +4154,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx100xxxx110xxx fdot. */ - return 3632; + return 3689; } } } @@ -4174,7 +4174,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010xxxx0xx010xxxxx10xxx bfmlal. */ - return 2540; + return 2597; } else { @@ -4182,7 +4182,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010011xxxx0xx010xxxxx10xxx bfmlal. */ - return 2541; + return 2598; } } else @@ -4193,7 +4193,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx00xx010xxxxx10xxx bfmlal. */ - return 2542; + return 2599; } else { @@ -4201,7 +4201,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx10xx010xxxxx10xxx bfmlal. */ - return 2543; + return 2600; } } } @@ -4215,7 +4215,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx010xxxxx10xxx umlal. */ - return 2912; + return 2969; } else { @@ -4223,7 +4223,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010111xxxx0xx010xxxxx10xxx umlal. */ - return 2913; + return 2970; } } else @@ -4234,7 +4234,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx00xx010xxxxx10xxx umlal. */ - return 2914; + return 2971; } else { @@ -4242,7 +4242,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx10xx010xxxxx10xxx umlal. */ - return 2915; + return 2972; } } } @@ -4257,7 +4257,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx110xxxxx10xxx add. */ - return 2522; + return 2579; } else { @@ -4265,7 +4265,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx110xxxxx10xxx add. */ - return 2523; + return 2580; } } else @@ -4276,7 +4276,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx110xxxxx10xxx add. */ - return 2524; + return 2581; } else { @@ -4284,7 +4284,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx110xxxxx10xxx add. */ - return 2525; + return 2582; } } } @@ -4300,7 +4300,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx0xx001xxxxx10xxx umlall. */ - return 2919; + return 2976; } else { @@ -4312,7 +4312,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx101xxxxx10xxx udot. */ - return 2896; + return 2953; } else { @@ -4320,7 +4320,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx101xxxxx10xxx udot. */ - return 2897; + return 2954; } } else @@ -4331,7 +4331,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx101xxxxx10xxx udot. */ - return 2898; + return 2955; } else { @@ -4339,7 +4339,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx101xxxxx10xxx udot. */ - return 2899; + return 2956; } } } @@ -4354,7 +4354,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x01xxxxx0xx011xxxxx10xxx bfmlal. */ - return 2539; + return 2596; } else { @@ -4362,7 +4362,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11xxxxx0xx011xxxxx10xxx umlal. */ - return 2911; + return 2968; } } else @@ -4373,7 +4373,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx00xx111xxxxx10xxx add. */ - return 2520; + return 2577; } else { @@ -4381,7 +4381,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx10xx111xxxxx10xxx add. */ - return 2521; + return 2578; } } } @@ -4406,7 +4406,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx000xxxxx01xxx smlsll. */ - return 2773; + return 2830; } else { @@ -4414,7 +4414,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx000xxxxx01xxx smlsll. */ - return 2774; + return 2831; } } else @@ -4425,7 +4425,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx000xxxxx01xxx smlsll. */ - return 2775; + return 2832; } else { @@ -4433,7 +4433,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx000xxxxx01xxx smlsll. */ - return 2776; + return 2833; } } } @@ -4449,7 +4449,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010xxxx0xx100xxxxx01xxx fdot. */ - return 3635; + return 3692; } else { @@ -4457,7 +4457,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010011xxxx0xx100xxxxx01xxx fdot. */ - return 3636; + return 3693; } } else @@ -4468,7 +4468,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx00xx100xxxxx01xxx fmla. */ - return 3467; + return 3524; } else { @@ -4476,7 +4476,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx10xx100xxxxx01xxx fmla. */ - return 3468; + return 3525; } } } @@ -4488,7 +4488,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11xxxx00xx100xxxxx01xxx bfmla. */ - return 3424; + return 3481; } else { @@ -4496,7 +4496,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11xxxx10xx100xxxxx01xxx bfmla. */ - return 3425; + return 3482; } } } @@ -4515,7 +4515,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010xxxx0xx010xxxxx01xxx fmlsl. */ - return 2612; + return 2669; } else { @@ -4523,7 +4523,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010011xxxx0xx010xxxxx01xxx fmlsl. */ - return 2613; + return 2670; } } else @@ -4534,7 +4534,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx00xx010xxxxx01xxx fmlsl. */ - return 2614; + return 2671; } else { @@ -4542,7 +4542,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx10xx010xxxxx01xxx fmlsl. */ - return 2615; + return 2672; } } } @@ -4556,7 +4556,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx010xxxxx01xxx smlsl. */ - return 2765; + return 2822; } else { @@ -4564,7 +4564,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010111xxxx0xx010xxxxx01xxx smlsl. */ - return 2766; + return 2823; } } else @@ -4575,7 +4575,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx00xx010xxxxx01xxx smlsl. */ - return 2767; + return 2824; } else { @@ -4583,7 +4583,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx10xx010xxxxx01xxx smlsl. */ - return 2768; + return 2825; } } } @@ -4598,7 +4598,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx110xxxxx01xxx fmls. */ - return 2604; + return 2661; } else { @@ -4606,7 +4606,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx110xxxxx01xxx fmls. */ - return 2605; + return 2662; } } else @@ -4617,7 +4617,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx110xxxxx01xxx fmls. */ - return 2606; + return 2663; } else { @@ -4625,7 +4625,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx110xxxxx01xxx fmls. */ - return 2607; + return 2664; } } } @@ -4641,7 +4641,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx0xx001xxxxx01xxx smlsll. */ - return 2772; + return 2829; } else { @@ -4655,7 +4655,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010xxxx0xx101xxxxx01xxx usdot. */ - return 2954; + return 3011; } else { @@ -4663,7 +4663,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010011xxxx0xx101xxxxx01xxx usdot. */ - return 2955; + return 3012; } } else @@ -4674,7 +4674,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx00xx101xxxxx01xxx usdot. */ - return 2956; + return 3013; } else { @@ -4682,7 +4682,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx10xx101xxxxx01xxx usdot. */ - return 2957; + return 3014; } } } @@ -4696,7 +4696,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx101xxxxx01xxx sdot. */ - return 2725; + return 2782; } else { @@ -4704,7 +4704,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010111xxxx0xx101xxxxx01xxx sdot. */ - return 2726; + return 2783; } } else @@ -4715,7 +4715,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx00xx101xxxxx01xxx sdot. */ - return 2727; + return 2784; } else { @@ -4723,7 +4723,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx10xx101xxxxx01xxx sdot. */ - return 2728; + return 2785; } } } @@ -4739,7 +4739,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x01xxxxx0xx011xxxxx01xxx fmlsl. */ - return 2611; + return 2668; } else { @@ -4747,7 +4747,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11xxxxx0xx011xxxxx01xxx smlsl. */ - return 2764; + return 2821; } } else @@ -4762,7 +4762,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010xxxx0xx111xxxxx01xxx fmls. */ - return 3471; + return 3528; } else { @@ -4770,7 +4770,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx111xxxxx01xxx bfmls. */ - return 3428; + return 3485; } } else @@ -4783,7 +4783,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x10x0x00xx111xxxxx01xxx fsub. */ - return 2624; + return 2681; } else { @@ -4793,7 +4793,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011010x1x00xx111xxxxx01xxx fsub. */ - return 3593; + return 3650; } else { @@ -4801,7 +4801,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011110x1x00xx111xxxxx01xxx bfsub. */ - return 3418; + return 3475; } } } @@ -4813,7 +4813,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x10x0x10xx111xxxxx01xxx fsub. */ - return 2625; + return 2682; } else { @@ -4823,7 +4823,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011010x1x10xx111xxxxx01xxx fsub. */ - return 3594; + return 3651; } else { @@ -4831,7 +4831,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011110x1x10xx111xxxxx01xxx bfsub. */ - return 3419; + return 3476; } } } @@ -4845,7 +4845,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x011xxxx0xx111xxxxx01xxx fmls. */ - return 3472; + return 3529; } else { @@ -4853,7 +4853,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x111xxxx0xx111xxxxx01xxx bfmls. */ - return 3429; + return 3486; } } } @@ -4876,7 +4876,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx000xxxxx11xxx umlsll. */ - return 2936; + return 2993; } else { @@ -4884,7 +4884,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx000xxxxx11xxx umlsll. */ - return 2937; + return 2994; } } else @@ -4895,7 +4895,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx000xxxxx11xxx umlsll. */ - return 2938; + return 2995; } else { @@ -4903,7 +4903,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx000xxxxx11xxx umlsll. */ - return 2939; + return 2996; } } } @@ -4919,7 +4919,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010xxxx0xx100xxxxx11xxx fdot. */ - return 3629; + return 3686; } else { @@ -4927,7 +4927,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010011xxxx0xx100xxxxx11xxx fdot. */ - return 3630; + return 3687; } } else @@ -4938,7 +4938,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx00xx100xxxxx11xxx fmls. */ - return 3473; + return 3530; } else { @@ -4946,7 +4946,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx10xx100xxxxx11xxx fmls. */ - return 3474; + return 3531; } } } @@ -4958,7 +4958,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11xxxx00xx100xxxxx11xxx bfmls. */ - return 3430; + return 3487; } else { @@ -4966,7 +4966,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11xxxx10xx100xxxxx11xxx bfmls. */ - return 3431; + return 3488; } } } @@ -4985,7 +4985,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010xxxx0xx010xxxxx11xxx bfmlsl. */ - return 2548; + return 2605; } else { @@ -4993,7 +4993,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010011xxxx0xx010xxxxx11xxx bfmlsl. */ - return 2549; + return 2606; } } else @@ -5004,7 +5004,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx00xx010xxxxx11xxx bfmlsl. */ - return 2550; + return 2607; } else { @@ -5012,7 +5012,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx10xx010xxxxx11xxx bfmlsl. */ - return 2551; + return 2608; } } } @@ -5026,7 +5026,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx010xxxxx11xxx umlsl. */ - return 2928; + return 2985; } else { @@ -5034,7 +5034,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010111xxxx0xx010xxxxx11xxx umlsl. */ - return 2929; + return 2986; } } else @@ -5045,7 +5045,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx00xx010xxxxx11xxx umlsl. */ - return 2930; + return 2987; } else { @@ -5053,7 +5053,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx10xx010xxxxx11xxx umlsl. */ - return 2931; + return 2988; } } } @@ -5068,7 +5068,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx110xxxxx11xxx sub. */ - return 2866; + return 2923; } else { @@ -5076,7 +5076,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx110xxxxx11xxx sub. */ - return 2867; + return 2924; } } else @@ -5087,7 +5087,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx110xxxxx11xxx sub. */ - return 2868; + return 2925; } else { @@ -5095,7 +5095,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx110xxxxx11xxx sub. */ - return 2869; + return 2926; } } } @@ -5111,7 +5111,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx0xx001xxxxx11xxx umlsll. */ - return 2935; + return 2992; } else { @@ -5123,7 +5123,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x010xxxx0xx101xxxxx11xxx sudot. */ - return 2872; + return 2929; } else { @@ -5131,7 +5131,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x011xxxx0xx101xxxxx11xxx sudot. */ - return 2873; + return 2930; } } else @@ -5144,7 +5144,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx101xxxxx11xxx udot. */ - return 2890; + return 2947; } else { @@ -5152,7 +5152,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010111xxxx0xx101xxxxx11xxx udot. */ - return 2891; + return 2948; } } else @@ -5163,7 +5163,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx00xx101xxxxx11xxx udot. */ - return 2892; + return 2949; } else { @@ -5171,7 +5171,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx10xx101xxxxx11xxx udot. */ - return 2893; + return 2950; } } } @@ -5187,7 +5187,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x01xxxxx0xx011xxxxx11xxx bfmlsl. */ - return 2547; + return 2604; } else { @@ -5195,7 +5195,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11xxxxx0xx011xxxxx11xxx umlsl. */ - return 2927; + return 2984; } } else @@ -5206,7 +5206,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx00xx111xxxxx11xxx sub. */ - return 2864; + return 2921; } else { @@ -5214,7 +5214,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx10xx111xxxxx11xxx sub. */ - return 2865; + return 2922; } } } @@ -5234,7 +5234,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx0100xxxxxxxxxxxxx sel. */ - return 2735; + return 2792; } else { @@ -5242,7 +5242,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx1100xxxxxxxxxxxxx sel. */ - return 2736; + return 2793; } } else @@ -5259,7 +5259,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110000xxxxxxxxx0 fclamp. */ - return 2558; + return 2615; } else { @@ -5267,7 +5267,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110100xxxxxxxxx0 zip. */ - return 2984; + return 3041; } } else @@ -5276,7 +5276,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110x00xxxxxxxxx1 uzp. */ - return 2971; + return 3028; } } else @@ -5287,7 +5287,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110010xxxxxxxxxx fclamp. */ - return 2559; + return 2616; } else { @@ -5299,7 +5299,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110110xxx00xxxxx sqrshr. */ - return 2790; + return 2847; } else { @@ -5307,7 +5307,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110110xxx10xxxxx sqrshru. */ - return 2793; + return 2850; } } else @@ -5316,7 +5316,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110110xxxx1xxxxx uqrshr. */ - return 2946; + return 3003; } } } @@ -5333,7 +5333,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110001xxxxxxxxx0 sclamp. */ - return 2719; + return 2776; } else { @@ -5341,7 +5341,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110001xxxxxxxxx1 uclamp. */ - return 2884; + return 2941; } } else @@ -5354,7 +5354,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x01xxxxx110101xxxxxxxxx0 zip. */ - return 2985; + return 3042; } else { @@ -5362,7 +5362,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x01xxxxx110101xxxxxxxxx1 uzp. */ - return 2972; + return 3029; } } else @@ -5375,7 +5375,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x110xxxx110101xxxx0xxxxx sqrshr. */ - return 2789; + return 2846; } else { @@ -5383,7 +5383,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x111xxxx110101xxxx0xxxxx sqrshru. */ - return 2792; + return 2849; } } else @@ -5392,7 +5392,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11xxxxx110101xxxx1xxxxx uqrshr. */ - return 2945; + return 3002; } } } @@ -5407,7 +5407,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110011xxxxxxxxx0 sclamp. */ - return 2720; + return 2777; } else { @@ -5415,7 +5415,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110011xxxxxxxxx1 uclamp. */ - return 2885; + return 2942; } } else @@ -5428,7 +5428,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110111xxx00xxxxx sqrshrn. */ - return 2791; + return 2848; } else { @@ -5436,7 +5436,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110111xxx10xxxxx sqrshrun. */ - return 2794; + return 2851; } } else @@ -5445,7 +5445,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx110111xxxx1xxxxx uqrshrn. */ - return 2947; + return 3004; } } } @@ -5474,7 +5474,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101000x00x0xxxx0 smax. */ - return 2737; + return 2794; } else { @@ -5484,7 +5484,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101000010x0xxxx0 fmax. */ - return 2572; + return 2629; } else { @@ -5492,7 +5492,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101000110x0xxxx0 add. */ - return 2526; + return 2583; } } } @@ -5502,7 +5502,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101000xx1x0xxxx0 bfscale. */ - return 3011; + return 3068; } } else @@ -5515,7 +5515,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx10100000xx1xxxx0 smin. */ - return 2741; + return 2798; } else { @@ -5523,7 +5523,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx10100010xx1xxxx0 srshl. */ - return 2795; + return 2852; } } else @@ -5532,7 +5532,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101000x1xx1xxxx0 fmaxnm. */ - return 2576; + return 2633; } } } @@ -5546,7 +5546,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101000x0xx0xxxx1 umax. */ - return 2900; + return 2957; } else { @@ -5554,7 +5554,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101000x1xx0xxxx1 fmin. */ - return 2580; + return 2637; } } else @@ -5567,7 +5567,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx10100000xx1xxxx1 umin. */ - return 2904; + return 2961; } else { @@ -5575,7 +5575,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx10100010xx1xxxx1 urshl. */ - return 2948; + return 3005; } } else @@ -5584,7 +5584,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101000x1xx1xxxx1 fminnm. */ - return 2584; + return 2641; } } } @@ -5609,7 +5609,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001001x0000111000xxxx0xxxxx fcvt. */ - return 2560; + return 2617; } else { @@ -5617,7 +5617,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001001x0000111000xxxx1xxxxx fcvtn. */ - return 2561; + return 2618; } } else @@ -5628,7 +5628,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101x0000111000xxxxxxxxx0 fcvt. */ - return 3475; + return 3532; } else { @@ -5636,7 +5636,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101x0000111000xxxxxxxxx1 fcvtl. */ - return 3476; + return 3533; } } } @@ -5648,7 +5648,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11x0000111000xxxx0xxxxx bfcvt. */ - return 2528; + return 2585; } else { @@ -5656,7 +5656,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11x0000111000xxxx1xxxxx bfcvtn. */ - return 2529; + return 2586; } } } @@ -5668,7 +5668,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx101000111000xxxxxxxxxx frintn. */ - return 2620; + return 2677; } else { @@ -5676,7 +5676,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx111000111000xxxxxxxxxx frintn. */ - return 2621; + return 2678; } } } @@ -5694,7 +5694,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x0100100111000xxxx0xxxxx fcvt. */ - return 3562; + return 3619; } else { @@ -5702,7 +5702,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x1100100111000xxxx0xxxxx bfcvt. */ - return 3557; + return 3614; } } else @@ -5711,7 +5711,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx110100111000xxxx0xxxxx fcvt. */ - return 3563; + return 3620; } } else @@ -5722,7 +5722,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx101100111000xxxx0xxxxx frinta. */ - return 2616; + return 2673; } else { @@ -5730,7 +5730,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx111100111000xxxx0xxxxx frinta. */ - return 2617; + return 2674; } } } @@ -5740,7 +5740,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xx100111000xxxx1xxxxx fcvtn. */ - return 3564; + return 3621; } } } @@ -5760,7 +5760,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx100010111000xxxx0xxxx0 scvtf. */ - return 2721; + return 2778; } else { @@ -5768,7 +5768,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx110010111000xxxx0xxxx0 scvtf. */ - return 2722; + return 2779; } } else @@ -5779,7 +5779,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx101010111000xxxx0xxxx0 frintm. */ - return 2618; + return 2675; } else { @@ -5787,7 +5787,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx111010111000xxxx0xxxx0 frintm. */ - return 2619; + return 2676; } } } @@ -5799,7 +5799,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10x010111000xxxx1xxxx0 ucvtf. */ - return 2886; + return 2943; } else { @@ -5807,7 +5807,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11x010111000xxxx1xxxx0 ucvtf. */ - return 2887; + return 2944; } } } @@ -5823,7 +5823,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010x110111000xxxxxxxxx0 f1cvt. */ - return 3558; + return 3615; } else { @@ -5831,7 +5831,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011010x110111000xxxxxxxxx0 f2cvt. */ - return 3559; + return 3616; } } else @@ -5842,7 +5842,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110x110111000xxxxxxxxx0 bf1cvt. */ - return 3553; + return 3610; } else { @@ -5850,7 +5850,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011110x110111000xxxxxxxxx0 bf2cvt. */ - return 3554; + return 3611; } } } @@ -5862,7 +5862,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11x110111000xxxxxxxx00 zip. */ - return 2986; + return 3043; } else { @@ -5870,7 +5870,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11x110111000xxxxxxxx10 uzp. */ - return 2973; + return 3030; } } } @@ -5885,7 +5885,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001001xxx10111000xxxxxxxxx1 f1cvtl. */ - return 3560; + return 3617; } else { @@ -5893,7 +5893,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxx10111000xxxxxxxxx1 f2cvtl. */ - return 3561; + return 3618; } } else @@ -5904,7 +5904,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001011xxx10111000xxxxxxxxx1 bf1cvtl. */ - return 3555; + return 3612; } else { @@ -5912,7 +5912,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxx10111000xxxxxxxxx1 bf2cvtl. */ - return 3556; + return 3613; } } } @@ -5936,7 +5936,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx100001111000xxxx0xxxx0 fcvtzs. */ - return 2562; + return 2619; } else { @@ -5944,7 +5944,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx110001111000xxxx0xxxx0 fcvtzs. */ - return 2563; + return 2620; } } else @@ -5955,7 +5955,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx101001111000xxxx0xxxx0 frintp. */ - return 2622; + return 2679; } else { @@ -5963,7 +5963,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx111001111000xxxx0xxxx0 frintp. */ - return 2623; + return 2680; } } } @@ -5975,7 +5975,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10x001111000xxxx1xxxx0 fcvtzu. */ - return 2564; + return 2621; } else { @@ -5983,7 +5983,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11x001111000xxxx1xxxx0 fcvtzu. */ - return 2565; + return 2622; } } } @@ -5995,7 +5995,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10x101111000xxxxxxxxx0 sunpk. */ - return 2879; + return 2936; } else { @@ -6003,7 +6003,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11x101111000xxxxxxxxx0 sunpk. */ - return 2880; + return 2937; } } } @@ -6015,7 +6015,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xx01111000xxxxxxxxx1 uunpk. */ - return 2967; + return 3024; } else { @@ -6023,7 +6023,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xx01111000xxxxxxxxx1 uunpk. */ - return 2968; + return 3025; } } } @@ -6041,7 +6041,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x010x011111000xxxx0xxxxx sqcvt. */ - return 2779; + return 2836; } else { @@ -6049,7 +6049,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x110x011111000xxxx0xxxxx sqcvtu. */ - return 2782; + return 2839; } } else @@ -6062,7 +6062,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x011x011111000xxx00xxxxx sqcvt. */ - return 2780; + return 2837; } else { @@ -6070,7 +6070,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x111x011111000xxx00xxxxx sqcvtu. */ - return 2783; + return 2840; } } else @@ -6081,7 +6081,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x011x011111000xxx10xxxxx sqcvtn. */ - return 2781; + return 2838; } else { @@ -6089,7 +6089,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x111x011111000xxx10xxxxx sqcvtun. */ - return 2784; + return 2841; } } } @@ -6102,7 +6102,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xx111111000xxxx0xxx0x zip. */ - return 2987; + return 3044; } else { @@ -6110,7 +6110,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xx111111000xxxx0xxx1x uzp. */ - return 2974; + return 3031; } } } @@ -6122,7 +6122,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xx11111000xxxx1xxxxx uqcvt. */ - return 2942; + return 2999; } else { @@ -6132,7 +6132,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xx11111000xxx01xxxxx uqcvt. */ - return 2943; + return 3000; } else { @@ -6140,7 +6140,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xx11111000xxx11xxxxx uqcvtn. */ - return 2944; + return 3001; } } } @@ -6164,7 +6164,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100x0000xxxx0 smax. */ - return 2739; + return 2796; } else { @@ -6172,7 +6172,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100x1000xxxx0 fmax. */ - return 2574; + return 2631; } } else @@ -6181,7 +6181,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100xx100xxxx0 bfscale. */ - return 3013; + return 3070; } } else @@ -6190,7 +6190,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100xxx10xxxx0 famax. */ - return 1264; + return 1310; } } else @@ -6203,7 +6203,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x110000xx1xxxx0 smin. */ - return 2743; + return 2800; } else { @@ -6211,7 +6211,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x110010xx1xxxx0 srshl. */ - return 2797; + return 2854; } } else @@ -6220,7 +6220,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100x1xx1xxxx0 fmaxnm. */ - return 2578; + return 2635; } } } @@ -6236,7 +6236,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100x0x00xxxx1 umax. */ - return 2902; + return 2959; } else { @@ -6244,7 +6244,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100x1x00xxxx1 fmin. */ - return 2582; + return 2639; } } else @@ -6253,7 +6253,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100xxx10xxxx1 famin. */ - return 1266; + return 1312; } } else @@ -6266,7 +6266,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x110000xx1xxxx1 umin. */ - return 2906; + return 2963; } else { @@ -6274,7 +6274,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x110010xx1xxxx1 urshl. */ - return 2950; + return 3007; } } else @@ -6283,7 +6283,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100x1xx1xxxx1 fminnm. */ - return 2586; + return 2643; } } } @@ -6307,7 +6307,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101010x00x0xxxx0 smax. */ - return 2738; + return 2795; } else { @@ -6317,7 +6317,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101010010x0xxxx0 fmax. */ - return 2573; + return 2630; } else { @@ -6325,7 +6325,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101010110x0xxxx0 add. */ - return 2527; + return 2584; } } } @@ -6335,7 +6335,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101010xx1x0xxxx0 bfscale. */ - return 3012; + return 3069; } } else @@ -6346,7 +6346,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx0111010xxxx0xxxx0 bfmul. */ - return 3015; + return 3072; } else { @@ -6354,7 +6354,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx1111010xxxx0xxxx0 bfmul. */ - return 3016; + return 3073; } } } @@ -6370,7 +6370,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1110x0000xxxx0 smax. */ - return 2740; + return 2797; } else { @@ -6378,7 +6378,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1110x1000xxxx0 fmax. */ - return 2575; + return 2632; } } else @@ -6387,7 +6387,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1110xx100xxxx0 bfscale. */ - return 3014; + return 3071; } } else @@ -6396,7 +6396,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1110xxx10xxxx0 famax. */ - return 1265; + return 1311; } } } @@ -6412,7 +6412,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x101000xx1xxxx0 smin. */ - return 2742; + return 2799; } else { @@ -6420,7 +6420,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x111000xx1xxxx0 smin. */ - return 2744; + return 2801; } } else @@ -6431,7 +6431,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x101010xx1xxxx0 srshl. */ - return 2796; + return 2853; } else { @@ -6439,7 +6439,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x111010xx1xxxx0 srshl. */ - return 2798; + return 2855; } } } @@ -6451,7 +6451,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1010x1xx1xxxx0 fmaxnm. */ - return 2577; + return 2634; } else { @@ -6459,7 +6459,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1110x1xx1xxxx0 fmaxnm. */ - return 2579; + return 2636; } } } @@ -6478,7 +6478,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1010x0x00xxxx1 umax. */ - return 2901; + return 2958; } else { @@ -6486,7 +6486,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1110x0x00xxxx1 umax. */ - return 2903; + return 2960; } } else @@ -6497,7 +6497,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1010x1x00xxxx1 fmin. */ - return 2581; + return 2638; } else { @@ -6505,7 +6505,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1110x1x00xxxx1 fmin. */ - return 2583; + return 2640; } } } @@ -6515,7 +6515,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1x10xxx10xxxx1 famin. */ - return 1267; + return 1313; } } else @@ -6530,7 +6530,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x101000xx1xxxx1 umin. */ - return 2905; + return 2962; } else { @@ -6538,7 +6538,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x111000xx1xxxx1 umin. */ - return 2907; + return 2964; } } else @@ -6549,7 +6549,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x101010xx1xxxx1 urshl. */ - return 2949; + return 3006; } else { @@ -6557,7 +6557,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x111010xx1xxxx1 urshl. */ - return 2951; + return 3008; } } } @@ -6569,7 +6569,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1010x1xx1xxxx1 fminnm. */ - return 2585; + return 2642; } else { @@ -6577,7 +6577,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1110x1xx1xxxx1 fminnm. */ - return 2587; + return 2644; } } } @@ -6596,7 +6596,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101001xxxxxxxxxx sqdmulh. */ - return 2785; + return 2842; } else { @@ -6606,7 +6606,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx0111001xxxxxxxxxx bfmul. */ - return 3017; + return 3074; } else { @@ -6614,7 +6614,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx1111001xxxxxxxxxx bfmul. */ - return 3018; + return 3075; } } } @@ -6624,7 +6624,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1101xxxxxxxxxx sqdmulh. */ - return 2787; + return 2844; } } else @@ -6635,7 +6635,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1011xxxxxxxxxx sqdmulh. */ - return 2786; + return 2843; } else { @@ -6643,7 +6643,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1111xxxxxxxxxx sqdmulh. */ - return 2788; + return 2845; } } } @@ -6671,7 +6671,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx000xxxxxxxxx0xxx st1b. */ - return 2805; + return 2862; } else { @@ -6679,7 +6679,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx010xxxxxxxxx0xxx st1w. */ - return 2829; + return 2886; } } else @@ -6690,7 +6690,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx001xxxxxxxxx0xxx st1h. */ - return 2821; + return 2878; } else { @@ -6698,7 +6698,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx011xxxxxxxxx0xxx st1d. */ - return 2813; + return 2870; } } } @@ -6712,7 +6712,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx000xxxxxxxxx1xxx stnt1b. */ - return 2837; + return 2894; } else { @@ -6720,7 +6720,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx010xxxxxxxxx1xxx stnt1w. */ - return 2861; + return 2918; } } else @@ -6731,7 +6731,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx001xxxxxxxxx1xxx stnt1h. */ - return 2853; + return 2910; } else { @@ -6739,7 +6739,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx011xxxxxxxxx1xxx stnt1d. */ - return 2845; + return 2902; } } } @@ -6750,7 +6750,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100001001xxxxx0xxxxxxxxxxxxxxx str. */ - return 2488; + return 2545; } } else @@ -6767,7 +6767,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx100xxxxxxxxx0xxx st1b. */ - return 2806; + return 2863; } else { @@ -6775,7 +6775,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100001001xxxxx100xxxxxxxxx0xxx str. */ - return 2863; + return 2920; } } else @@ -6784,7 +6784,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx110xxxxxxxxx0xxx st1w. */ - return 2830; + return 2887; } } else @@ -6795,7 +6795,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx101xxxxxxxxx0xxx st1h. */ - return 2822; + return 2879; } else { @@ -6803,7 +6803,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx111xxxxxxxxx0xxx st1d. */ - return 2814; + return 2871; } } } @@ -6817,7 +6817,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx100xxxxxxxxx1xxx stnt1b. */ - return 2838; + return 2895; } else { @@ -6825,7 +6825,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx110xxxxxxxxx1xxx stnt1w. */ - return 2862; + return 2919; } } else @@ -6836,7 +6836,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx101xxxxxxxxx1xxx stnt1h. */ - return 2854; + return 2911; } else { @@ -6844,7 +6844,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx111xxxxxxxxx1xxx stnt1d. */ - return 2846; + return 2903; } } } @@ -6858,7 +6858,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001101xxxxxxxxxxxxxxxx0xxxx umopa. */ - return 2464; + return 2521; } else { @@ -6866,7 +6866,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001101xxxxxxxxxxxxxxxx1xxxx umops. */ - return 2466; + return 2523; } } } @@ -6886,7 +6886,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx000xxxxxxxxx0xxx st1b. */ - return 2801; + return 2858; } else { @@ -6894,7 +6894,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx100xxxxxxxxx0xxx st1b. */ - return 2802; + return 2859; } } else @@ -6905,7 +6905,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx010xxxxxxxxx0xxx st1w. */ - return 2825; + return 2882; } else { @@ -6913,7 +6913,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx110xxxxxxxxx0xxx st1w. */ - return 2826; + return 2883; } } } @@ -6927,7 +6927,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx001xxxxxxxxx0xxx st1h. */ - return 2817; + return 2874; } else { @@ -6935,7 +6935,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx101xxxxxxxxx0xxx st1h. */ - return 2818; + return 2875; } } else @@ -6946,7 +6946,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx011xxxxxxxxx0xxx st1d. */ - return 2809; + return 2866; } else { @@ -6954,7 +6954,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx111xxxxxxxxx0xxx st1d. */ - return 2810; + return 2867; } } } @@ -6971,7 +6971,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx000xxxxxxxxx1xxx stnt1b. */ - return 2833; + return 2890; } else { @@ -6979,7 +6979,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx100xxxxxxxxx1xxx stnt1b. */ - return 2834; + return 2891; } } else @@ -6990,7 +6990,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx010xxxxxxxxx1xxx stnt1w. */ - return 2857; + return 2914; } else { @@ -6998,7 +6998,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx110xxxxxxxxx1xxx stnt1w. */ - return 2858; + return 2915; } } } @@ -7012,7 +7012,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx001xxxxxxxxx1xxx stnt1h. */ - return 2849; + return 2906; } else { @@ -7020,7 +7020,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx101xxxxxxxxx1xxx stnt1h. */ - return 2850; + return 2907; } } else @@ -7031,7 +7031,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx011xxxxxxxxx1xxx stnt1d. */ - return 2841; + return 2898; } else { @@ -7039,7 +7039,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx111xxxxxxxxx1xxx stnt1d. */ - return 2842; + return 2899; } } } @@ -7055,7 +7055,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001111xxxxxxxxxxxxxxxx0xxxx umopa. */ - return 2465; + return 2522; } else { @@ -7063,7 +7063,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100001111xxxxxxxxxxxxxxxx0xxxx st1q. */ - return 2486; + return 2543; } } else @@ -7072,7 +7072,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001111xxxxxxxxxxxxxxxx1xxxx umops. */ - return 2467; + return 2524; } } } @@ -7136,32 +7136,43 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 0000100x000xxxxx0xxxxxxxxxxxxxxx - stxrb. */ - return 989; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001000000xxxxx0xxxxxxxxxxxxxxx + stxrb. */ + return 989; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001000000xxxxx0xxxxxxxxxxxxxxx + stxrh. */ + return 995; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 0100100x000xxxxx0xxxxxxxxxxxxxxx - stxrh. */ - return 995; + 1x001000000xxxxx0xxxxxxxxxxxxxxx + stxr. */ + return 1001; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 1x00100x000xxxxx0xxxxxxxxxxxxxxx - stxr. */ - return 1001; + xx001001000xxxxx0xxxxxxxxxxxxxxx + sttxr. */ + return 1252; } } else @@ -7188,32 +7199,43 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 0000100x000xxxxx1xxxxxxxxxxxxxxx - stlxrb. */ - return 990; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001000000xxxxx1xxxxxxxxxxxxxxx + stlxrb. */ + return 990; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001000000xxxxx1xxxxxxxxxxxxxxx + stlxrh. */ + return 996; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 0100100x000xxxxx1xxxxxxxxxxxxxxx - stlxrh. */ - return 996; + 1x001000000xxxxx1xxxxxxxxxxxxxxx + stlxr. */ + return 1002; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 1x00100x000xxxxx1xxxxxxxxxxxxxxx - stlxr. */ - return 1002; + xx001001000xxxxx1xxxxxxxxxxxxxxx + stltxr. */ + return 1253; } } else @@ -7249,11 +7271,33 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x110100x00xxxxxxxxxxxxxxxxxxxxxx - stgp. */ - return 1032; + if (((word >> 24) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x110100000xxxxxxxxxxxxxxxxxxxxxx + sttnp. */ + return 1286; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0110100100xxxxxxxxxxxxxxxxxxxxxx + stgp. */ + return 1032; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1110100100xxxxxxxxxxxxxxxxxxxxxx + sttp. */ + return 1290; + } + } } } } @@ -7265,21 +7309,43 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 0x00100x100xxxxx0xxxxxxxxxxxxxxx - stllrb. */ - return 1021; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001000100xxxxx0xxxxxxxxxxxxxxx + stllrb. */ + return 1021; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001000100xxxxx0xxxxxxxxxxxxxxx + stllr. */ + return 1020; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 1x00100x100xxxxx0xxxxxxxxxxxxxxx - stllr. */ - return 1020; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001001100xxxxx0xxxxxxxxxxxxxxx + caspt. */ + return 1258; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001001100xxxxx0xxxxxxxxxxxxxxx + cast. */ + return 1254; + } } } else @@ -7317,32 +7383,54 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 0000100x100xxxxx1xxxxxxxxxxxxxxx - stlrb. */ - return 993; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001000100xxxxx1xxxxxxxxxxxxxxx + stlrb. */ + return 993; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001000100xxxxx1xxxxxxxxxxxxxxx + stlrh. */ + return 999; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 0100100x100xxxxx1xxxxxxxxxxxxxxx - stlrh. */ - return 999; + 1x001000100xxxxx1xxxxxxxxxxxxxxx + stlr. */ + return 1009; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 1x00100x100xxxxx1xxxxxxxxxxxxxxx - stlr. */ - return 1009; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001001100xxxxx1xxxxxxxxxxxxxxx + casplt. */ + return 1261; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001001100xxxxx1xxxxxxxxxxxxxxx + caslt. */ + return 1257; + } } } else @@ -7389,11 +7477,22 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x110100x10xxxxxxxxxxxxxxxxxxxxxx - stgp. */ - return 1038; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0110100x10xxxxxxxxxxxxxxxxxxxxxx + stgp. */ + return 1038; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1110100x10xxxxxxxxxxxxxxxxxxxxxx + sttp. */ + return 1294; + } } } } @@ -7408,32 +7507,43 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 0000100x010xxxxx0xxxxxxxxxxxxxxx - ldxrb. */ - return 991; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001000010xxxxx0xxxxxxxxxxxxxxx + ldxrb. */ + return 991; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001000010xxxxx0xxxxxxxxxxxxxxx + ldxrh. */ + return 997; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 0100100x010xxxxx0xxxxxxxxxxxxxxx - ldxrh. */ - return 997; + 1x001000010xxxxx0xxxxxxxxxxxxxxx + ldxr. */ + return 1005; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 1x00100x010xxxxx0xxxxxxxxxxxxxxx - ldxr. */ - return 1005; + xx001001010xxxxx0xxxxxxxxxxxxxxx + ldtxr. */ + return 1250; } } else @@ -7460,32 +7570,43 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 0000100x010xxxxx1xxxxxxxxxxxxxxx - ldaxrb. */ - return 992; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001000010xxxxx1xxxxxxxxxxxxxxx + ldaxrb. */ + return 992; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001000010xxxxx1xxxxxxxxxxxxxxx + ldaxrh. */ + return 998; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 0100100x010xxxxx1xxxxxxxxxxxxxxx - ldaxrh. */ - return 998; + 1x001000010xxxxx1xxxxxxxxxxxxxxx + ldaxr. */ + return 1006; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 1x00100x010xxxxx1xxxxxxxxxxxxxxx - ldaxr. */ - return 1006; + xx001001010xxxxx1xxxxxxxxxxxxxxx + ldatxr. */ + return 1251; } } else @@ -7521,11 +7642,33 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x110100x01xxxxxxxxxxxxxxxxxxxxxx - ldpsw. */ - return 1031; + if (((word >> 24) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x110100001xxxxxxxxxxxxxxxxxxxxxx + ldtnp. */ + return 1284; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0110100101xxxxxxxxxxxxxxxxxxxxxx + ldpsw. */ + return 1031; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1110100101xxxxxxxxxxxxxxxxxxxxxx + ldtp. */ + return 1288; + } + } } } } @@ -7537,32 +7680,54 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 0000100x110xxxxx0xxxxxxxxxxxxxxx - ldlarb. */ - return 1018; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001000110xxxxx0xxxxxxxxxxxxxxx + ldlarb. */ + return 1018; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001000110xxxxx0xxxxxxxxxxxxxxx + ldlarh. */ + return 1019; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 0100100x110xxxxx0xxxxxxxxxxxxxxx - ldlarh. */ - return 1019; + 1x001000110xxxxx0xxxxxxxxxxxxxxx + ldlar. */ + return 1017; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 1x00100x110xxxxx0xxxxxxxxxxxxxxx - ldlar. */ - return 1017; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001001110xxxxx0xxxxxxxxxxxxxxx + caspat. */ + return 1259; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001001110xxxxx0xxxxxxxxxxxxxxx + casat. */ + return 1255; + } } } else @@ -7600,32 +7765,54 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 0000100x110xxxxx1xxxxxxxxxxxxxxx - ldarb. */ - return 994; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001000110xxxxx1xxxxxxxxxxxxxxx + ldarb. */ + return 994; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001000110xxxxx1xxxxxxxxxxxxxxx + ldarh. */ + return 1000; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 0100100x110xxxxx1xxxxxxxxxxxxxxx - ldarh. */ - return 1000; + 1x001000110xxxxx1xxxxxxxxxxxxxxx + ldar. */ + return 1010; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 1x00100x110xxxxx1xxxxxxxxxxxxxxx - ldar. */ - return 1010; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001001110xxxxx1xxxxxxxxxxxxxxx + caspalt. */ + return 1260; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001001110xxxxx1xxxxxxxxxxxxxxx + casalt. */ + return 1256; + } } } else @@ -7672,11 +7859,22 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x110100x11xxxxxxxxxxxxxxxxxxxxxx - ldpsw. */ - return 1037; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0110100x11xxxxxxxxxxxxxxxxxxxxxx + ldpsw. */ + return 1037; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1110100x11xxxxxxxxxxxxxxxxxxxxxx + ldtp. */ + return 1292; + } } } } @@ -8404,7 +8602,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000001xxxxx101000xxxxxxxxxx rcwswp. */ - return 3366; + return 3423; } else { @@ -8414,7 +8612,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01111000001xxxxx101000xxxxxxxxxx rcwsswp. */ - return 3374; + return 3431; } else { @@ -8434,7 +8632,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000101xxxxx101000xxxxxxxxxx rcwswpa. */ - return 3367; + return 3424; } else { @@ -8442,7 +8640,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1111000101xxxxx101000xxxxxxxxxx rcwsswpa. */ - return 3375; + return 3432; } } } @@ -8456,7 +8654,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000011xxxxx101000xxxxxxxxxx rcwswpl. */ - return 3369; + return 3426; } else { @@ -8464,7 +8662,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1111000011xxxxx101000xxxxxxxxxx rcwsswpl. */ - return 3377; + return 3434; } } else @@ -8475,7 +8673,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000111xxxxx101000xxxxxxxxxx rcwswpal. */ - return 3368; + return 3425; } else { @@ -8483,7 +8681,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1111000111xxxxx101000xxxxxxxxxx rcwsswpal. */ - return 3376; + return 3433; } } } @@ -8767,7 +8965,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000001xxxxx100100xxxxxxxxxx rcwclr. */ - return 3334; + return 3391; } else { @@ -8777,7 +8975,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01111000001xxxxx100100xxxxxxxxxx rcwsclr. */ - return 3342; + return 3399; } else { @@ -8797,7 +8995,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000101xxxxx100100xxxxxxxxxx rcwclra. */ - return 3335; + return 3392; } else { @@ -8805,7 +9003,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1111000101xxxxx100100xxxxxxxxxx rcwsclra. */ - return 3343; + return 3400; } } } @@ -8819,7 +9017,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000011xxxxx100100xxxxxxxxxx rcwclrl. */ - return 3337; + return 3394; } else { @@ -8827,7 +9025,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1111000011xxxxx100100xxxxxxxxxx rcwsclrl. */ - return 3345; + return 3402; } } else @@ -8838,7 +9036,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000111xxxxx100100xxxxxxxxxx rcwclral. */ - return 3336; + return 3393; } else { @@ -8846,7 +9044,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1111000111xxxxx100100xxxxxxxxxx rcwsclral. */ - return 3344; + return 3401; } } } @@ -9138,7 +9336,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000001xxxxx101100xxxxxxxxxx rcwset. */ - return 3350; + return 3407; } else { @@ -9148,7 +9346,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01111000001xxxxx101100xxxxxxxxxx rcwsset. */ - return 3358; + return 3415; } else { @@ -9168,7 +9366,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000101xxxxx101100xxxxxxxxxx rcwseta. */ - return 3351; + return 3408; } else { @@ -9176,7 +9374,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1111000101xxxxx101100xxxxxxxxxx rcwsseta. */ - return 3359; + return 3416; } } } @@ -9190,7 +9388,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000011xxxxx101100xxxxxxxxxx rcwsetl. */ - return 3353; + return 3410; } else { @@ -9198,7 +9396,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1111000011xxxxx101100xxxxxxxxxx rcwssetl. */ - return 3361; + return 3418; } } else @@ -9209,7 +9407,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0111000111xxxxx101100xxxxxxxxxx rcwsetal. */ - return 3352; + return 3409; } else { @@ -9217,7 +9415,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1111000111xxxxx101100xxxxxxxxxx rcwssetal. */ - return 3360; + return 3417; } } } @@ -9705,7 +9903,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00011001000xxxxxxxxx00xxxxxxxxxx stlurb. */ - return 3059; + return 3116; } else { @@ -9713,7 +9911,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 10011001000xxxxxxxxx00xxxxxxxxxx stlur. */ - return 3067; + return 3124; } } else @@ -9724,7 +9922,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001000xxxxxxxxx00xxxxxxxxxx stlurh. */ - return 3063; + return 3120; } else { @@ -9732,7 +9930,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11011001000xxxxxxxxx00xxxxxxxxxx stlur. */ - return 3070; + return 3127; } } } @@ -9767,7 +9965,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001001xxxxxxx1000xxxxxxxxxx rcwswpp. */ - return 3370; + return 3427; } else { @@ -9775,7 +9973,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001001xxxxxxx1000xxxxxxxxxx rcwsswpp. */ - return 3378; + return 3435; } } } @@ -9799,7 +9997,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001001xxxxx1x0100xxxxxxxxxx rcwclrp. */ - return 3338; + return 3395; } else { @@ -9807,7 +10005,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001001xxxxx1x0100xxxxxxxxxx rcwsclrp. */ - return 3346; + return 3403; } } } @@ -9829,7 +10027,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001001xxxxx1x1100xxxxxxxxxx rcwsetp. */ - return 3354; + return 3411; } else { @@ -9837,7 +10035,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001001xxxxx1x1100xxxxxxxxxx rcwssetp. */ - return 3362; + return 3419; } } } @@ -9852,7 +10050,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxxxxxx10xxxxxxxxxx stilp. */ - return 1251; + return 1297; } else { @@ -9862,7 +10060,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001001xxxxxxxxx10xxxxxxxxxx rcwcas. */ - return 3318; + return 3375; } else { @@ -9872,7 +10070,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001001xxxxxxxxx10xxxxxxxxxx rcwscas. */ - return 3326; + return 3383; } else { @@ -9904,7 +10102,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx000001xxxxxxxxxx cpyfp. */ - return 3184; + return 3241; } else { @@ -9912,7 +10110,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx100001xxxxxxxxxx cpyfprn. */ - return 3190; + return 3247; } } else @@ -9923,7 +10121,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx010001xxxxxxxxxx cpyfpwn. */ - return 3187; + return 3244; } else { @@ -9931,7 +10129,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx110001xxxxxxxxxx cpyfpn. */ - return 3193; + return 3250; } } } @@ -9945,7 +10143,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx001001xxxxxxxxxx cpyfprt. */ - return 3208; + return 3265; } else { @@ -9953,7 +10151,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx101001xxxxxxxxxx cpyfprtrn. */ - return 3214; + return 3271; } } else @@ -9964,7 +10162,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx011001xxxxxxxxxx cpyfprtwn. */ - return 3211; + return 3268; } else { @@ -9972,7 +10170,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx111001xxxxxxxxxx cpyfprtn. */ - return 3217; + return 3274; } } } @@ -9989,7 +10187,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx000101xxxxxxxxxx cpyfpwt. */ - return 3196; + return 3253; } else { @@ -9997,7 +10195,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx100101xxxxxxxxxx cpyfpwtrn. */ - return 3202; + return 3259; } } else @@ -10008,7 +10206,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx010101xxxxxxxxxx cpyfpwtwn. */ - return 3199; + return 3256; } else { @@ -10016,7 +10214,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx110101xxxxxxxxxx cpyfpwtn. */ - return 3205; + return 3262; } } } @@ -10030,7 +10228,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx001101xxxxxxxxxx cpyfpt. */ - return 3220; + return 3277; } else { @@ -10038,7 +10236,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx101101xxxxxxxxxx cpyfptrn. */ - return 3226; + return 3283; } } else @@ -10049,7 +10247,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx011101xxxxxxxxxx cpyfptwn. */ - return 3223; + return 3280; } else { @@ -10057,7 +10255,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx111101xxxxxxxxxx cpyfptn. */ - return 3229; + return 3286; } } } @@ -10071,7 +10269,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxxxxx011xxxxxxxxxx gcsstr. */ - return 1321; + return 1368; } else { @@ -10079,39 +10277,83 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxxxxx111xxxxxxxxxx gcssttr. */ - return 1322; + return 1369; } } } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011001001xxxxxxxxxx1xxxxxxxxxx - rcwcasp. */ - return 3322; - } - else + if (((word >> 31) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 01011001001xxxxxxxxxx1xxxxxxxxxx - rcwscasp. */ - return 3330; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001001xxxxx0xx001xxxxxxxxxx + ldtadd. */ + return 1266; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001001xxxxx1xx001xxxxxxxxxx + swpt. */ + return 1262; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001001xxxxxxx0101xxxxxxxxxx + ldtclr. */ + return 1272; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001001xxxxxxx1101xxxxxxxxxx + ldtset. */ + return 1278; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 11011001001xxxxxxxxxx1xxxxxxxxxx - stg. */ - return 937; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00011001001xxxxxxxxx11xxxxxxxxxx + rcwcasp. */ + return 3379; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01011001001xxxxxxxxx11xxxxxxxxxx + rcwscasp. */ + return 3387; + } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x011001001xxxxxxxxxx1xxxxxxxxxx + stg. */ + return 937; + } } } } @@ -10164,7 +10406,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00011001010xxxxxxxxx00xxxxxxxxxx ldapurb. */ - return 3060; + return 3117; } else { @@ -10172,7 +10414,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 10011001010xxxxxxxxx00xxxxxxxxxx ldapur. */ - return 3068; + return 3125; } } else @@ -10183,7 +10425,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001010xxxxxxxxx00xxxxxxxxxx ldapurh. */ - return 3064; + return 3121; } else { @@ -10191,7 +10433,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11011001010xxxxxxxxx00xxxxxxxxxx ldapur. */ - return 3071; + return 3128; } } } @@ -10215,7 +10457,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001011xxxxxxx1000xxxxxxxxxx rcwswppl. */ - return 3373; + return 3430; } } else @@ -10236,7 +10478,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001011xxxxx1x0100xxxxxxxxxx rcwclrpl. */ - return 3341; + return 3398; } } else @@ -10255,7 +10497,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001011xxxxx1x1100xxxxxxxxxx rcwsetpl. */ - return 3357; + return 3414; } } } @@ -10270,7 +10512,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001011xxxxxxxx000xxxxxxxxxx rcwsswppl. */ - return 3381; + return 3438; } else { @@ -10280,7 +10522,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001011xxxxxxx0100xxxxxxxxxx rcwsclrpl. */ - return 3349; + return 3406; } else { @@ -10288,7 +10530,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001011xxxxxxx1100xxxxxxxxxx rcwssetpl. */ - return 3365; + return 3422; } } } @@ -10311,7 +10553,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxxxxxx10xxxxxxxxxx ldiapp. */ - return 1250; + return 1296; } else { @@ -10321,7 +10563,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001011xxxxxxxxx10xxxxxxxxxx rcwcasl. */ - return 3321; + return 3378; } else { @@ -10331,7 +10573,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001011xxxxxxxxx10xxxxxxxxxx rcwscasl. */ - return 3329; + return 3386; } else { @@ -10361,7 +10603,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0000x1xxxxxxxxxx cpyfm. */ - return 3185; + return 3242; } else { @@ -10369,7 +10611,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1000x1xxxxxxxxxx cpyfmrn. */ - return 3191; + return 3248; } } else @@ -10380,7 +10622,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0100x1xxxxxxxxxx cpyfmwn. */ - return 3188; + return 3245; } else { @@ -10388,7 +10630,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1100x1xxxxxxxxxx cpyfmn. */ - return 3194; + return 3251; } } } @@ -10402,7 +10644,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0010x1xxxxxxxxxx cpyfmrt. */ - return 3209; + return 3266; } else { @@ -10410,7 +10652,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1010x1xxxxxxxxxx cpyfmrtrn. */ - return 3215; + return 3272; } } else @@ -10421,7 +10663,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0110x1xxxxxxxxxx cpyfmrtwn. */ - return 3212; + return 3269; } else { @@ -10429,7 +10671,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1110x1xxxxxxxxxx cpyfmrtn. */ - return 3218; + return 3275; } } } @@ -10446,7 +10688,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0001x1xxxxxxxxxx cpyfmwt. */ - return 3197; + return 3254; } else { @@ -10454,7 +10696,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1001x1xxxxxxxxxx cpyfmwtrn. */ - return 3203; + return 3260; } } else @@ -10465,7 +10707,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0101x1xxxxxxxxxx cpyfmwtwn. */ - return 3200; + return 3257; } else { @@ -10473,7 +10715,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1101x1xxxxxxxxxx cpyfmwtn. */ - return 3206; + return 3263; } } } @@ -10487,7 +10729,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0011x1xxxxxxxxxx cpyfmt. */ - return 3221; + return 3278; } else { @@ -10495,7 +10737,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1011x1xxxxxxxxxx cpyfmtrn. */ - return 3227; + return 3284; } } else @@ -10506,7 +10748,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0111x1xxxxxxxxxx cpyfmtwn. */ - return 3224; + return 3281; } else { @@ -10514,7 +10756,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1111x1xxxxxxxxxx cpyfmtn. */ - return 3230; + return 3287; } } } @@ -10522,33 +10764,77 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011001011xxxxxxxxxx1xxxxxxxxxx - rcwcaspl. */ - return 3325; - } - else + if (((word >> 31) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 01011001011xxxxxxxxxx1xxxxxxxxxx - rcwscaspl. */ - return 3333; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001011xxxxx0xx001xxxxxxxxxx + ldtaddl. */ + return 1270; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001011xxxxx1xx001xxxxxxxxxx + swptl. */ + return 1265; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001011xxxxxxx0101xxxxxxxxxx + ldtclrl. */ + return 1276; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001011xxxxxxx1101xxxxxxxxxx + ldtsetl. */ + return 1282; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 11011001011xxxxxxxxxx1xxxxxxxxxx - stzg. */ - return 938; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00011001011xxxxxxxxx11xxxxxxxxxx + rcwcaspl. */ + return 3382; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01011001011xxxxxxxxx11xxxxxxxxxx + rcwscaspl. */ + return 3390; + } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x011001011xxxxxxxxxx1xxxxxxxxxx + stzg. */ + return 938; + } } } } @@ -10604,7 +10890,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00011001100xxxxxxxxx00xxxxxxxxxx ldapursb. */ - return 3062; + return 3119; } else { @@ -10612,7 +10898,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 10011001100xxxxxxxxx00xxxxxxxxxx ldapursw. */ - return 3069; + return 3126; } } else @@ -10621,7 +10907,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001100xxxxxxxxx00xxxxxxxxxx ldapursh. */ - return 3066; + return 3123; } } else @@ -10632,7 +10918,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001110xxxxxxxxx00xxxxxxxxxx ldapursb. */ - return 3061; + return 3118; } else { @@ -10640,7 +10926,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001110xxxxxxxxx00xxxxxxxxxx ldapursh. */ - return 3065; + return 3122; } } } @@ -10699,7 +10985,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001101xxxxxxx1000xxxxxxxxxx rcwswppa. */ - return 3371; + return 3428; } else { @@ -10707,7 +10993,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001101xxxxxxx1000xxxxxxxxxx rcwsswppa. */ - return 3379; + return 3436; } } else @@ -10718,7 +11004,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001111xxxxxxx1000xxxxxxxxxx rcwswppal. */ - return 3372; + return 3429; } else { @@ -10726,7 +11012,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001111xxxxxxx1000xxxxxxxxxx rcwsswppal. */ - return 3380; + return 3437; } } } @@ -10764,7 +11050,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001101xxxxx1x0100xxxxxxxxxx rcwclrpa. */ - return 3339; + return 3396; } else { @@ -10772,7 +11058,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001101xxxxx1x0100xxxxxxxxxx rcwsclrpa. */ - return 3347; + return 3404; } } else @@ -10783,7 +11069,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001111xxxxx1x0100xxxxxxxxxx rcwclrpal. */ - return 3340; + return 3397; } else { @@ -10791,7 +11077,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001111xxxxx1x0100xxxxxxxxxx rcwsclrpal. */ - return 3348; + return 3405; } } } @@ -10827,7 +11113,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001101xxxxx1x1100xxxxxxxxxx rcwsetpa. */ - return 3355; + return 3412; } else { @@ -10835,7 +11121,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001101xxxxx1x1100xxxxxxxxxx rcwssetpa. */ - return 3363; + return 3420; } } else @@ -10846,7 +11132,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001111xxxxx1x1100xxxxxxxxxx rcwsetpal. */ - return 3356; + return 3413; } else { @@ -10854,7 +11140,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001111xxxxx1x1100xxxxxxxxxx rcwssetpal. */ - return 3364; + return 3421; } } } @@ -10872,7 +11158,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxxxxxx10xxxxxxxxxx stlr. */ - return 1253; + return 1299; } else { @@ -10880,7 +11166,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxxxxxx10xxxxxxxxxx ldapr. */ - return 1252; + return 1298; } } else @@ -10893,7 +11179,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001101xxxxxxxxx10xxxxxxxxxx rcwcasa. */ - return 3319; + return 3376; } else { @@ -10903,7 +11189,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001101xxxxxxxxx10xxxxxxxxxx rcwscasa. */ - return 3327; + return 3384; } else { @@ -10923,7 +11209,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001111xxxxxxxxx10xxxxxxxxxx rcwcasal. */ - return 3320; + return 3377; } else { @@ -10933,7 +11219,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001111xxxxxxxxx10xxxxxxxxxx rcwscasal. */ - return 3328; + return 3385; } else { @@ -10966,7 +11252,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0000x1xxxxxxxxxx cpyfe. */ - return 3186; + return 3243; } else { @@ -10974,7 +11260,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0000x1xxxxxxxxxx setp. */ - return 3280; + return 3337; } } else @@ -10985,7 +11271,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx1000x1xxxxxxxxxx cpyfern. */ - return 3192; + return 3249; } else { @@ -10993,7 +11279,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx1000x1xxxxxxxxxx sete. */ - return 3282; + return 3339; } } } @@ -11007,7 +11293,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0100x1xxxxxxxxxx cpyfewn. */ - return 3189; + return 3246; } else { @@ -11015,7 +11301,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0100x1xxxxxxxxxx setm. */ - return 3281; + return 3338; } } else @@ -11024,7 +11310,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0110011x0xxxxx1100x1xxxxxxxxxx cpyfen. */ - return 3195; + return 3252; } } } @@ -11040,7 +11326,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0010x1xxxxxxxxxx cpyfert. */ - return 3210; + return 3267; } else { @@ -11048,7 +11334,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0010x1xxxxxxxxxx setpn. */ - return 3286; + return 3343; } } else @@ -11059,7 +11345,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx1010x1xxxxxxxxxx cpyfertrn. */ - return 3216; + return 3273; } else { @@ -11067,7 +11353,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx1010x1xxxxxxxxxx seten. */ - return 3288; + return 3345; } } } @@ -11081,7 +11367,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0110x1xxxxxxxxxx cpyfertwn. */ - return 3213; + return 3270; } else { @@ -11089,7 +11375,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0110x1xxxxxxxxxx setmn. */ - return 3287; + return 3344; } } else @@ -11098,7 +11384,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0110011x0xxxxx1110x1xxxxxxxxxx cpyfertn. */ - return 3219; + return 3276; } } } @@ -11117,7 +11403,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0001x1xxxxxxxxxx cpyfewt. */ - return 3198; + return 3255; } else { @@ -11125,7 +11411,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0001x1xxxxxxxxxx setpt. */ - return 3283; + return 3340; } } else @@ -11136,7 +11422,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx1001x1xxxxxxxxxx cpyfewtrn. */ - return 3204; + return 3261; } else { @@ -11144,7 +11430,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx1001x1xxxxxxxxxx setet. */ - return 3285; + return 3342; } } } @@ -11158,7 +11444,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0101x1xxxxxxxxxx cpyfewtwn. */ - return 3201; + return 3258; } else { @@ -11166,7 +11452,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0101x1xxxxxxxxxx setmt. */ - return 3284; + return 3341; } } else @@ -11175,7 +11461,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0110011x0xxxxx1101x1xxxxxxxxxx cpyfewtn. */ - return 3207; + return 3264; } } } @@ -11191,7 +11477,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0011x1xxxxxxxxxx cpyfet. */ - return 3222; + return 3279; } else { @@ -11199,7 +11485,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0011x1xxxxxxxxxx setptn. */ - return 3289; + return 3346; } } else @@ -11210,7 +11496,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx1011x1xxxxxxxxxx cpyfetrn. */ - return 3228; + return 3285; } else { @@ -11218,7 +11504,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx1011x1xxxxxxxxxx setetn. */ - return 3291; + return 3348; } } } @@ -11232,7 +11518,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0111x1xxxxxxxxxx cpyfetwn. */ - return 3225; + return 3282; } else { @@ -11240,7 +11526,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0111x1xxxxxxxxxx setmtn. */ - return 3290; + return 3347; } } else @@ -11249,7 +11535,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0110011x0xxxxx1111x1xxxxxxxxxx cpyfetn. */ - return 3231; + return 3288; } } } @@ -11259,63 +11545,151 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 22) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011001101xxxxxxxxxx1xxxxxxxxxx - rcwcaspa. */ - return 3323; - } - else + if (((word >> 31) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 01011001101xxxxxxxxxx1xxxxxxxxxx - rcwscaspa. */ - return 3331; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001101xxxxx0xx001xxxxxxxxxx + ldtadda. */ + return 1268; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001101xxxxx1xx001xxxxxxxxxx + swpta. */ + return 1263; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001101xxxxxxx0101xxxxxxxxxx + ldtclra. */ + return 1274; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001101xxxxxxx1101xxxxxxxxxx + ldtseta. */ + return 1280; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 11011001101xxxxxxxxxx1xxxxxxxxxx - st2g. */ - return 939; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00011001101xxxxxxxxx11xxxxxxxxxx + rcwcaspa. */ + return 3380; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01011001101xxxxxxxxx11xxxxxxxxxx + rcwscaspa. */ + return 3388; + } } } - } - else - { - if (((word >> 30) & 0x1) == 0) + else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0011001111xxxxxxxxxx1xxxxxxxxxx - rcwcaspal. */ - return 3324; + 1x011001101xxxxxxxxxx1xxxxxxxxxx + st2g. */ + return 939; } - else + } + else + { + if (((word >> 31) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 01011001111xxxxxxxxxx1xxxxxxxxxx - rcwscaspal. */ - return 3332; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001111xxxxx0xx001xxxxxxxxxx + ldtaddal. */ + return 1269; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001111xxxxx1xx001xxxxxxxxxx + swptal. */ + return 1264; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001111xxxxxxx0101xxxxxxxxxx + ldtclral. */ + return 1275; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x011001111xxxxxxx1101xxxxxxxxxx + ldtsetal. */ + return 1281; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 11011001111xxxxxxxxxx1xxxxxxxxxx - stz2g. */ - return 940; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00011001111xxxxxxxxx11xxxxxxxxxx + rcwcaspal. */ + return 3381; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01011001111xxxxxxxxx11xxxxxxxxxx + rcwscaspal. */ + return 3389; + } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x011001111xxxxxxxxxx1xxxxxxxxxx + stz2g. */ + return 940; + } } } } @@ -11423,7 +11797,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x00x00101xxxxxxxxxxxxxxxxxxxxxxx movn. */ - return 1268; + return 1314; } else { @@ -11431,7 +11805,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10x00101xxxxxxxxxxxxxxxxxxxxxxx movz. */ - return 1270; + return 1316; } } else @@ -11440,7 +11814,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1x00101xxxxxxxxxxxxxxxxxxxxxxx movk. */ - return 1272; + return 1318; } } } @@ -11548,7 +11922,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010000xxxxxx00x10xxxxxxxxxx setf8. */ - return 3057; + return 3114; } else { @@ -11556,7 +11930,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010000xxxxxx10x10xxxxxxxxxx setf16. */ - return 3058; + return 3115; } } } @@ -11566,7 +11940,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010000xxxxxxx0xx1xxxxxxxxxx rmif. */ - return 3056; + return 3113; } } else @@ -11577,7 +11951,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x11010000xxxxxxx1xxxxxxxxxxxxx addpt. */ - return 3569; + return 3626; } else { @@ -11585,7 +11959,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1x11010000xxxxxxx1xxxxxxxxxxxxx subpt. */ - return 3570; + return 3627; } } } @@ -11743,7 +12117,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1x11010110xxxx0x01000xxxxxxxxxx abs. */ - return 3309; + return 3366; } else { @@ -11761,7 +12135,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010110xxxxxx11000xxxxxxxxxx smax. */ - return 3312; + return 3369; } } } @@ -11934,7 +12308,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010110xxxxxx11010xxxxxxxxxx smin. */ - return 3314; + return 3371; } } } @@ -11950,7 +12324,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010110xxxx0x00110xxxxxxxxxx ctz. */ - return 3311; + return 3368; } else { @@ -12056,7 +12430,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010x10xxxxxx11001xxxxxxxxxx umax. */ - return 3313; + return 3370; } } } @@ -12185,7 +12559,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010x10xxxxxx11011xxxxxxxxxx umin. */ - return 3315; + return 3372; } } } @@ -12201,7 +12575,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010x10xxxx0x00111xxxxxxxxxx cnt. */ - return 3310; + return 3367; } else { @@ -12503,7 +12877,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxx1011x11xxxxx0xxxxxxxxxxxxxxx maddpt. */ - return 3571; + return 3628; } else { @@ -12511,7 +12885,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxx1011x11xxxxx1xxxxxxxxxxxxxxx msubpt. */ - return 3572; + return 3629; } } } @@ -12555,7 +12929,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000000000xxxxxxxxxxxxx add. */ - return 1393; + return 1440; } else { @@ -12563,7 +12937,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010000000xxxxxxxxxxxxx mul. */ - return 1847; + return 1894; } } else @@ -12574,7 +12948,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001000000xxxxxxxxxxxxx smax. */ - return 1927; + return 1974; } else { @@ -12582,7 +12956,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011000000xxxxxxxxxxxxx orr. */ - return 1858; + return 1905; } } } @@ -12596,7 +12970,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000100000xxxxxxxxxxxxx addpt. */ - return 3573; + return 3630; } else { @@ -12604,7 +12978,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010100000xxxxxxxxxxxxx sdiv. */ - return 1918; + return 1965; } } else @@ -12613,7 +12987,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0x1100000xxxxxxxxxxxxx sabd. */ - return 1909; + return 1956; } } } @@ -12627,7 +13001,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0x0010000xxxxxxxxxxxxx smulh. */ - return 1932; + return 1979; } else { @@ -12637,7 +13011,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001010000xxxxxxxxxxxxx smin. */ - return 1930; + return 1977; } else { @@ -12645,7 +13019,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011010000xxxxxxxxxxxxx and. */ - return 1401; + return 1448; } } } @@ -12655,7 +13029,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0xx110000xxxxxxxxxxxxx sdivr. */ - return 1919; + return 1966; } } } @@ -12671,7 +13045,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0x0001000xxxxxxxxxxxxx sub. */ - return 2049; + return 2096; } else { @@ -12681,7 +13055,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001001000xxxxxxxxxxxxx umax. */ - return 2077; + return 2124; } else { @@ -12689,7 +13063,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011001000xxxxxxxxxxxxx eor. */ - return 1488; + return 1535; } } } @@ -12703,7 +13077,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000101000xxxxxxxxxxxxx subpt. */ - return 3575; + return 3632; } else { @@ -12711,7 +13085,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010101000xxxxxxxxxxxxx udiv. */ - return 2071; + return 2118; } } else @@ -12720,7 +13094,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0x1101000xxxxxxxxxxxxx uabd. */ - return 2062; + return 2109; } } } @@ -12736,7 +13110,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000011000xxxxxxxxxxxxx subr. */ - return 2051; + return 2098; } else { @@ -12744,7 +13118,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010011000xxxxxxxxxxxxx umulh. */ - return 2082; + return 2129; } } else @@ -12755,7 +13129,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001011000xxxxxxxxxxxxx umin. */ - return 2080; + return 2127; } else { @@ -12763,7 +13137,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011011000xxxxxxxxxxxxx bic. */ - return 1413; + return 1460; } } } @@ -12773,7 +13147,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0xx111000xxxxxxxxxxxxx udivr. */ - return 2072; + return 2119; } } } @@ -12786,7 +13160,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x00x0xxxxx000xxxxxxxxxxxxx ld1sb. */ - return 1675; + return 1722; } else { @@ -12794,7 +13168,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x01x0xxxxx000xxxxxxxxxxxxx ld1sh. */ - return 1686; + return 1733; } } } @@ -12812,7 +13186,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx000000xxxxxxxxxx sdot. */ - return 1920; + return 1967; } else { @@ -12820,7 +13194,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx000010xxxxxxxxxx sqdmlalbt. */ - return 2271; + return 2318; } } else @@ -12831,7 +13205,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx000001xxxxxxxxxx udot. */ - return 2073; + return 2120; } else { @@ -12839,7 +13213,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx000011xxxxxxxxxx sqdmlslbt. */ - return 2278; + return 2325; } } } @@ -12849,7 +13223,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx0001xxxxxxxxxxxx cdot. */ - return 2160; + return 2207; } } else @@ -12860,7 +13234,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x00x0xxxxx000xxxxxxxxxxxxx ld1sb. */ - return 1679; + return 1726; } else { @@ -12868,7 +13242,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x01x0xxxxx000xxxxxxxxxxxxx ld1sh. */ - return 1690; + return 1737; } } } @@ -12889,7 +13263,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx000000xxxxxxxxxx add. */ - return 1391; + return 1438; } else { @@ -12897,7 +13271,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx000100xxxxxxxxxx sqadd. */ - return 1934; + return 1981; } } else @@ -12908,7 +13282,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx000010xxxxxxxxxx addpt. */ - return 3574; + return 3631; } else { @@ -12916,7 +13290,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx000110xxxxxxxxxx sqsub. */ - return 1964; + return 2011; } } } @@ -12930,7 +13304,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx000001xxxxxxxxxx sub. */ - return 2047; + return 2094; } else { @@ -12938,7 +13312,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx000101xxxxxxxxxx uqadd. */ - return 2083; + return 2130; } } else @@ -12949,7 +13323,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx000011xxxxxxxxxx subpt. */ - return 3576; + return 3633; } else { @@ -12957,7 +13331,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx000111xxxxxxxxxx uqsub. */ - return 2113; + return 2160; } } } @@ -12970,7 +13344,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x00x1xxxxx000xxxxxxxxxxxxx prfb. */ - return 1867; + return 1914; } else { @@ -12978,7 +13352,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x01x1xxxxx000xxxxxxxxxxxxx ld1sh. */ - return 1687; + return 1734; } } } @@ -12996,7 +13370,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x00x1xxxxx000x00xxxxxxxxxx sqrdmlah. */ - return 2296; + return 2343; } else { @@ -13004,7 +13378,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x00x1xxxxx000x10xxxxxxxxxx mla. */ - return 2203; + return 2250; } } else @@ -13015,7 +13389,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x00x1xxxxx000x01xxxxxxxxxx sqrdmlsh. */ - return 2300; + return 2347; } else { @@ -13023,7 +13397,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x00x1xxxxx000x11xxxxxxxxxx mls. */ - return 2206; + return 2253; } } } @@ -13033,7 +13407,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x00x1xxxxx000xxxxxxxxxxxxx prfb. */ - return 1868; + return 1915; } } else @@ -13052,7 +13426,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx000000xxxxxxxxxx sdot. */ - return 1921; + return 1968; } else { @@ -13060,7 +13434,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx000000xxxxxxxxxx sdot. */ - return 1922; + return 1969; } } else @@ -13071,7 +13445,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx000100xxxxxxxxxx sqrdmlah. */ - return 2297; + return 2344; } else { @@ -13079,7 +13453,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx000100xxxxxxxxxx sqrdmlah. */ - return 2298; + return 2345; } } } @@ -13093,7 +13467,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx000010xxxxxxxxxx mla. */ - return 2204; + return 2251; } else { @@ -13101,7 +13475,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx000010xxxxxxxxxx mla. */ - return 2205; + return 2252; } } else @@ -13110,7 +13484,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x01x1xxxxx000110xxxxxxxxxx usdot. */ - return 3136; + return 3193; } } } @@ -13126,7 +13500,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx000001xxxxxxxxxx udot. */ - return 2074; + return 2121; } else { @@ -13134,7 +13508,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx000001xxxxxxxxxx udot. */ - return 2075; + return 2122; } } else @@ -13145,7 +13519,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx000101xxxxxxxxxx sqrdmlsh. */ - return 2301; + return 2348; } else { @@ -13153,7 +13527,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx000101xxxxxxxxxx sqrdmlsh. */ - return 2302; + return 2349; } } } @@ -13167,7 +13541,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx000011xxxxxxxxxx mls. */ - return 2207; + return 2254; } else { @@ -13175,7 +13549,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx000011xxxxxxxxxx mls. */ - return 2208; + return 2255; } } else @@ -13184,7 +13558,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x01x1xxxxx000111xxxxxxxxxx sudot. */ - return 3137; + return 3194; } } } @@ -13195,7 +13569,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x01x1xxxxx000xxxxxxxxxxxxx ld1sh. */ - return 1691; + return 1738; } } } @@ -13221,7 +13595,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx000000100xxxxxxxxxxxxx asr. */ - return 1409; + return 1456; } else { @@ -13231,7 +13605,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010000100xxxxxxxxxxxxx asr. */ - return 1407; + return 1454; } else { @@ -13239,7 +13613,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx010000100xxxxxxxxxxxxx shadd. */ - return 2237; + return 2284; } } } @@ -13251,7 +13625,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx001000100xxxxxxxxxxxxx sqshl. */ - return 2315; + return 2362; } else { @@ -13261,7 +13635,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011000100xxxxxxxxxxxxx asr. */ - return 1408; + return 1455; } else { @@ -13269,7 +13643,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx011000100xxxxxxxxxxxxx sqadd. */ - return 2266; + return 2313; } } } @@ -13284,7 +13658,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx000100100xxxxxxxxxxxxx asrd. */ - return 1410; + return 1457; } else { @@ -13294,7 +13668,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010100100xxxxxxxxxxxxx asrr. */ - return 1411; + return 1458; } else { @@ -13302,7 +13676,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx010100100xxxxxxxxxxxxx srhadd. */ - return 2328; + return 2375; } } } @@ -13316,7 +13690,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001100100xxxxxxxxxxxxx srshr. */ - return 2332; + return 2379; } else { @@ -13324,7 +13698,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx001100100xxxxxxxxxxxxx sqshlr. */ - return 2316; + return 2363; } } else @@ -13333,7 +13707,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx011100100xxxxxxxxxxxxx suqadd. */ - return 2352; + return 2399; } } } @@ -13350,7 +13724,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx000010100xxxxxxxxxxxxx srshl. */ - return 2330; + return 2377; } else { @@ -13358,7 +13732,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx010010100xxxxxxxxxxxxx shsub. */ - return 2240; + return 2287; } } else @@ -13369,7 +13743,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx001010100xxxxxxxxxxxxx sqrshl. */ - return 2308; + return 2355; } else { @@ -13377,7 +13751,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx011010100xxxxxxxxxxxxx sqsub. */ - return 2322; + return 2369; } } } @@ -13393,7 +13767,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000110100xxxxxxxxxxxxx sqshl. */ - return 2314; + return 2361; } else { @@ -13401,7 +13775,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx000110100xxxxxxxxxxxxx srshlr. */ - return 2331; + return 2378; } } else @@ -13410,7 +13784,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx010110100xxxxxxxxxxxxx shsubr. */ - return 2241; + return 2288; } } else @@ -13421,7 +13795,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx001110100xxxxxxxxxxxxx sqrshlr. */ - return 2309; + return 2356; } else { @@ -13429,7 +13803,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx011110100xxxxxxxxxxxxx sqsubr. */ - return 2323; + return 2370; } } } @@ -13449,7 +13823,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx000001100xxxxxxxxxxxxx lsr. */ - return 1838; + return 1885; } else { @@ -13459,7 +13833,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010001100xxxxxxxxxxxxx lsr. */ - return 1836; + return 1883; } else { @@ -13467,7 +13841,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx010001100xxxxxxxxxxxxx uhadd. */ - return 2365; + return 2412; } } } @@ -13479,7 +13853,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx001001100xxxxxxxxxxxxx uqshl. */ - return 2395; + return 2442; } else { @@ -13489,7 +13863,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011001100xxxxxxxxxxxxx lsr. */ - return 1837; + return 1884; } else { @@ -13497,7 +13871,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx011001100xxxxxxxxxxxxx uqadd. */ - return 2389; + return 2436; } } } @@ -13512,7 +13886,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0x0101100xxxxxxxxxxxxx lsrr. */ - return 1839; + return 1886; } else { @@ -13520,7 +13894,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0x0101100xxxxxxxxxxxxx urhadd. */ - return 2404; + return 2451; } } else @@ -13533,7 +13907,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001101100xxxxxxxxxxxxx urshr. */ - return 2407; + return 2454; } else { @@ -13541,7 +13915,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx001101100xxxxxxxxxxxxx uqshlr. */ - return 2396; + return 2443; } } else @@ -13550,7 +13924,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx011101100xxxxxxxxxxxxx usqadd. */ - return 2412; + return 2459; } } } @@ -13569,7 +13943,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000011100xxxxxxxxxxxxx lsl. */ - return 1832; + return 1879; } else { @@ -13577,7 +13951,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx000011100xxxxxxxxxxxxx urshl. */ - return 2405; + return 2452; } } else @@ -13588,7 +13962,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010011100xxxxxxxxxxxxx lsl. */ - return 1830; + return 1877; } else { @@ -13596,7 +13970,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx010011100xxxxxxxxxxxxx uhsub. */ - return 2366; + return 2413; } } } @@ -13608,7 +13982,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx001011100xxxxxxxxxxxxx uqrshl. */ - return 2390; + return 2437; } else { @@ -13618,7 +13992,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011011100xxxxxxxxxxxxx lsl. */ - return 1831; + return 1878; } else { @@ -13626,7 +14000,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx011011100xxxxxxxxxxxxx uqsub. */ - return 2399; + return 2446; } } } @@ -13643,7 +14017,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000111100xxxxxxxxxxxxx uqshl. */ - return 2394; + return 2441; } else { @@ -13651,7 +14025,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx000111100xxxxxxxxxxxxx urshlr. */ - return 2406; + return 2453; } } else @@ -13662,7 +14036,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010111100xxxxxxxxxxxxx lslr. */ - return 1833; + return 1880; } else { @@ -13670,7 +14044,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx010111100xxxxxxxxxxxxx uhsubr. */ - return 2367; + return 2414; } } } @@ -13684,7 +14058,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001111100xxxxxxxxxxxxx sqshlu. */ - return 2317; + return 2364; } else { @@ -13692,7 +14066,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx001111100xxxxxxxxxxxxx uqrshlr. */ - return 2391; + return 2438; } } else @@ -13701,7 +14075,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x0001x0xx011111100xxxxxxxxxxxxx uqsubr. */ - return 2400; + return 2447; } } } @@ -13720,7 +14094,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx1000x0xxxxxxxxxx asr. */ - return 1405; + return 1452; } else { @@ -13730,7 +14104,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0x01xxxxx1000x0xxxxxxxxxx smlalb. */ - return 2245; + return 2292; } else { @@ -13738,7 +14112,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0x11xxxxx1000x0xxxxxxxxxx smlalb. */ - return 2246; + return 2293; } } } @@ -13750,7 +14124,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx1001x0xxxxxxxxxx asr. */ - return 1406; + return 1453; } else { @@ -13760,7 +14134,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0x01xxxxx1001x0xxxxxxxxxx umlalb. */ - return 2370; + return 2417; } else { @@ -13768,7 +14142,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0x11xxxxx1001x0xxxxxxxxxx umlalb. */ - return 2371; + return 2418; } } } @@ -13785,7 +14159,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx100001xxxxxxxxxx lsr. */ - return 1834; + return 1881; } else { @@ -13793,7 +14167,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx100011xxxxxxxxxx lsl. */ - return 1828; + return 1875; } } else @@ -13804,7 +14178,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0x01xxxxx1000x1xxxxxxxxxx smlalt. */ - return 2248; + return 2295; } else { @@ -13812,7 +14186,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0x11xxxxx1000x1xxxxxxxxxx smlalt. */ - return 2249; + return 2296; } } } @@ -13826,7 +14200,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx100101xxxxxxxxxx lsr. */ - return 1835; + return 1882; } else { @@ -13834,7 +14208,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx100111xxxxxxxxxx lsl. */ - return 1829; + return 1876; } } else @@ -13845,7 +14219,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0x01xxxxx1001x1xxxxxxxxxx umlalt. */ - return 2373; + return 2420; } else { @@ -13853,7 +14227,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0x11xxxxx1001x1xxxxxxxxxx umlalt. */ - return 2374; + return 2421; } } } @@ -13872,7 +14246,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x0001x0000xxxxx100xxxxxxxxxxxxx ldnt1sb. */ - return 2197; + return 2244; } else { @@ -13880,7 +14254,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x0001x0100xxxxx100xxxxxxxxxxxxx ldnt1sh. */ - return 2198; + return 2245; } } else @@ -13893,7 +14267,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0001xxxxx100xxxxxxxxxxxxx ld1sb. */ - return 1681; + return 1728; } else { @@ -13901,7 +14275,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0001xxxxx100xxxxxxxxxxxxx ld1sb. */ - return 1685; + return 1732; } } else @@ -13912,7 +14286,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0101xxxxx100xxxxxxxxxxxxx ld1sh. */ - return 1694; + return 1741; } else { @@ -13920,7 +14294,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0101xxxxx100xxxxxxxxxxxxx ld1sh. */ - return 1697; + return 1744; } } } @@ -13935,7 +14309,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x001xxxxxx100xxxxxxxxxxxxx ld1rb. */ - return 1651; + return 1698; } else { @@ -13945,7 +14319,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0010xxxxx100xxxxxxxxxxxxx ld1sb. */ - return 1680; + return 1727; } else { @@ -13953,7 +14327,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0011xxxxx100xxxxxxxxxxxxx prfb. */ - return 1869; + return 1916; } } } @@ -13965,7 +14339,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x011xxxxxx100xxxxxxxxxxxxx ld1rsw. */ - return 1672; + return 1719; } else { @@ -13975,7 +14349,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0110xxxxx100xxxxxxxxxxxxx ld1sh. */ - return 1692; + return 1739; } else { @@ -13983,7 +14357,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0111xxxxx100xxxxxxxxxxxxx ld1sh. */ - return 1693; + return 1740; } } } @@ -14005,7 +14379,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0xxxxx010xxxxxxxxxxxxx mla. */ - return 1841; + return 1888; } else { @@ -14015,7 +14389,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x00x0xxxxx010xxxxxxxxxxxxx ld1b. */ - return 1617; + return 1664; } else { @@ -14023,7 +14397,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x01x0xxxxx010xxxxxxxxxxxxx ld1h. */ - return 1637; + return 1684; } } } @@ -14041,7 +14415,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx010000xxxxxxxxxx smlalb. */ - return 2247; + return 2294; } else { @@ -14049,7 +14423,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx010100xxxxxxxxxx smlslb. */ - return 2253; + return 2300; } } else @@ -14060,7 +14434,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx010010xxxxxxxxxx umlalb. */ - return 2372; + return 2419; } else { @@ -14068,7 +14442,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx010110xxxxxxxxxx umlslb. */ - return 2378; + return 2425; } } } @@ -14082,7 +14456,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx010001xxxxxxxxxx smlalt. */ - return 2250; + return 2297; } else { @@ -14090,7 +14464,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx010101xxxxxxxxxx smlslt. */ - return 2256; + return 2303; } } else @@ -14101,7 +14475,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx010011xxxxxxxxxx umlalt. */ - return 2375; + return 2422; } else { @@ -14109,7 +14483,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx010111xxxxxxxxxx umlslt. */ - return 2381; + return 2428; } } } @@ -14122,7 +14496,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x00x0xxxxx010xxxxxxxxxxxxx ld1b. */ - return 1622; + return 1669; } else { @@ -14130,7 +14504,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x01x0xxxxx010xxxxxxxxxxxxx ld1h. */ - return 1642; + return 1689; } } } @@ -14151,7 +14525,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx010000xxxxxxxxxx index. */ - return 1608; + return 1655; } else { @@ -14159,7 +14533,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx010001xxxxxxxxxx index. */ - return 1609; + return 1656; } } else @@ -14172,7 +14546,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0001xxxxx01010xxxxxxxxxxx addvl. */ - return 1395; + return 1442; } else { @@ -14180,7 +14554,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0101xxxxx01010xxxxxxxxxxx rdvl. */ - return 1903; + return 1950; } } else @@ -14189,7 +14563,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0x11xxxxx01010xxxxxxxxxxx addpl. */ - return 1394; + return 1441; } } } @@ -14203,7 +14577,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx010010xxxxxxxxxx index. */ - return 1610; + return 1657; } else { @@ -14211,7 +14585,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx010011xxxxxxxxxx index. */ - return 1607; + return 1654; } } else @@ -14224,7 +14598,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0001xxxxx01011xxxxxxxxxxx addsvl. */ - return 2444; + return 2501; } else { @@ -14232,7 +14606,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0101xxxxx01011xxxxxxxxxxx rdsvl. */ - return 2455; + return 2512; } } else @@ -14241,7 +14615,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0x11xxxxx01011xxxxxxxxxxx addspl. */ - return 2443; + return 2500; } } } @@ -14254,7 +14628,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x00x1xxxxx010xxxxxxxxxxxxx prfw. */ - return 1887; + return 1934; } else { @@ -14262,7 +14636,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x01x1xxxxx010xxxxxxxxxxxxx ld1h. */ - return 1638; + return 1685; } } } @@ -14274,7 +14648,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x00x1xxxxx010xxxxxxxxxxxxx prfw. */ - return 1889; + return 1936; } else { @@ -14286,7 +14660,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx010xxxxxxxxxxxxx cdot. */ - return 2162; + return 2209; } else { @@ -14294,7 +14668,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx010xxxxxxxxxxxxx cdot. */ - return 2161; + return 2208; } } else @@ -14303,7 +14677,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x01x1xxxxx010xxxxxxxxxxxxx ld1h. */ - return 1643; + return 1690; } } } @@ -14321,7 +14695,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0xxxxx110xxxxxxxxxxxxx mad. */ - return 1840; + return 1887; } else { @@ -14337,7 +14711,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0x010xxxx110x00xxxxxxxxxx sqincw. */ - return 1961; + return 2008; } else { @@ -14347,7 +14721,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00110xxxx110x00xxxxxxxxxx sqinch. */ - return 1955; + return 2002; } else { @@ -14355,7 +14729,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01110xxxx110x00xxxxxxxxxx sqincd. */ - return 1952; + return 1999; } } } @@ -14367,7 +14741,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0x011xxxx110x00xxxxxxxxxx incw. */ - return 1605; + return 1652; } else { @@ -14377,7 +14751,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00111xxxx110x00xxxxxxxxxx inch. */ - return 1601; + return 1648; } else { @@ -14385,7 +14759,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01111xxxx110x00xxxxxxxxxx incd. */ - return 1599; + return 1646; } } } @@ -14398,7 +14772,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0x01xxxxx110x10xxxxxxxxxx sqdecw. */ - return 1947; + return 1994; } else { @@ -14408,7 +14782,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0011xxxxx110x10xxxxxxxxxx sqdech. */ - return 1941; + return 1988; } else { @@ -14416,7 +14790,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0111xxxxx110x10xxxxxxxxxx sqdecd. */ - return 1938; + return 1985; } } } @@ -14433,7 +14807,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0x010xxxx110x01xxxxxxxxxx uqincw. */ - return 2110; + return 2157; } else { @@ -14443,7 +14817,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00110xxxx110x01xxxxxxxxxx uqinch. */ - return 2104; + return 2151; } else { @@ -14451,7 +14825,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01110xxxx110x01xxxxxxxxxx uqincd. */ - return 2101; + return 2148; } } } @@ -14463,7 +14837,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0x011xxxx110x01xxxxxxxxxx decw. */ - return 1480; + return 1527; } else { @@ -14473,7 +14847,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00111xxxx110x01xxxxxxxxxx dech. */ - return 1476; + return 1523; } else { @@ -14481,7 +14855,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01111xxxx110x01xxxxxxxxxx decd. */ - return 1474; + return 1521; } } } @@ -14494,7 +14868,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0x01xxxxx110x11xxxxxxxxxx uqdecw. */ - return 2096; + return 2143; } else { @@ -14504,7 +14878,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0011xxxxx110x11xxxxxxxxxx uqdech. */ - return 2090; + return 2137; } else { @@ -14512,7 +14886,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0111xxxxx110x11xxxxxxxxxx uqdecd. */ - return 2087; + return 2134; } } } @@ -14531,7 +14905,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0000xxxxx110xxxxxxxxxxxxx prfb. */ - return 1866; + return 1913; } else { @@ -14539,7 +14913,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0100xxxxx110xxxxxxxxxxxxx prfh. */ - return 1881; + return 1928; } } else @@ -14550,7 +14924,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0001xxxxx110xxxxxxxxxxxxx ld1b. */ - return 1624; + return 1671; } else { @@ -14558,7 +14932,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0101xxxxx110xxxxxxxxxxxxx ld1h. */ - return 1646; + return 1693; } } } @@ -14570,7 +14944,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x001xxxxxx110xxxxxxxxxxxxx ld1rb. */ - return 1653; + return 1700; } else { @@ -14578,7 +14952,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x011xxxxxx110xxxxxxxxxxxxx ld1rh. */ - return 1657; + return 1704; } } } @@ -14599,7 +14973,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx110000xxxxxxxxxx sclamp. */ - return 2490; + return 2547; } else { @@ -14607,7 +14981,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx110100xxxxxxxxxx mlapt. */ - return 3578; + return 3635; } } else @@ -14620,7 +14994,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x00x0xxxxx110010xxxxxxxxxx sdot. */ - return 2503; + return 2560; } else { @@ -14628,7 +15002,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x01x0xxxxx110010xxxxxxxxxx sdot. */ - return 2502; + return 2559; } } else @@ -14637,7 +15011,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx110110xxxxxxxxxx madpt. */ - return 3577; + return 3634; } } } @@ -14649,7 +15023,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx110x01xxxxxxxxxx uclamp. */ - return 2491; + return 2548; } else { @@ -14659,7 +15033,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x00x0xxxxx110x11xxxxxxxxxx udot. */ - return 2509; + return 2566; } else { @@ -14667,7 +15041,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x01x0xxxxx110x11xxxxxxxxxx udot. */ - return 2508; + return 2565; } } } @@ -14682,7 +15056,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0000xxxxx110xxxxxxxxxxxxx ldnt1b. */ - return 2193; + return 2240; } else { @@ -14690,7 +15064,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0100xxxxx110xxxxxxxxxxxxx ldnt1h. */ - return 2196; + return 2243; } } else @@ -14701,7 +15075,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0010xxxxx110xxxxxxxxxxxxx ld1b. */ - return 1623; + return 1670; } else { @@ -14709,7 +15083,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0110xxxxx110xxxxxxxxxxxxx ld1h. */ - return 1644; + return 1691; } } } @@ -14724,7 +15098,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x0001xxxxx110xxxxxxxxxxxxx ld1b. */ - return 1629; + return 1676; } else { @@ -14738,7 +15112,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1100x0xxxxxxxxxx smullb. */ - return 2258; + return 2305; } else { @@ -14746,7 +15120,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1101x0xxxxxxxxxx umullb. */ - return 2383; + return 2430; } } else @@ -14757,7 +15131,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1100x1xxxxxxxxxx smullt. */ - return 2261; + return 2308; } else { @@ -14765,7 +15139,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1101x1xxxxxxxxxx umullt. */ - return 2386; + return 2433; } } } @@ -14775,7 +15149,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0101xxxxx110xxxxxxxxxxxxx ld1h. */ - return 1650; + return 1697; } } } @@ -14787,7 +15161,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x0011xxxxx110xxxxxxxxxxxxx prfw. */ - return 1890; + return 1937; } else { @@ -14801,7 +15175,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1100x0xxxxxxxxxx smullb. */ - return 2259; + return 2306; } else { @@ -14809,7 +15183,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1101x0xxxxxxxxxx umullb. */ - return 2384; + return 2431; } } else @@ -14820,7 +15194,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1100x1xxxxxxxxxx smullt. */ - return 2262; + return 2309; } else { @@ -14828,7 +15202,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1101x1xxxxxxxxxx umullt. */ - return 2387; + return 2434; } } } @@ -14838,7 +15212,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0111xxxxx110xxxxxxxxxxxxx ld1h. */ - return 1645; + return 1692; } } } @@ -14873,7 +15247,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000000001xxxxxxxxxxxxx saddv. */ - return 1910; + return 1957; } else { @@ -14881,7 +15255,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000001001xxxxxxxxxxxxx uaddv. */ - return 2063; + return 2110; } } else @@ -14890,7 +15264,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx01000x001xxxxxxxxxxxxx movprfx. */ - return 1844; + return 1891; } } else @@ -14903,7 +15277,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001000001xxxxxxxxxxxxx smaxv. */ - return 1928; + return 1975; } else { @@ -14911,7 +15285,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011000001xxxxxxxxxxxxx orv. */ - return 1861; + return 1908; } } else @@ -14922,7 +15296,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001001001xxxxxxxxxxxxx umaxv. */ - return 2078; + return 2125; } else { @@ -14930,7 +15304,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011001001xxxxxxxxxxxxx eorv. */ - return 1491; + return 1538; } } } @@ -14945,7 +15319,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx00x100001xxxxxxxxxxxxx smaxqv. */ - return 3479; + return 3536; } else { @@ -14953,7 +15327,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx01x100001xxxxxxxxxxxxx orqv. */ - return 3490; + return 3547; } } else @@ -14964,7 +15338,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0x0101001xxxxxxxxxxxxx addqv. */ - return 3477; + return 3534; } else { @@ -14974,7 +15348,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001101001xxxxxxxxxxxxx umaxqv. */ - return 3481; + return 3538; } else { @@ -14982,7 +15356,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011101001xxxxxxxxxxxxx eorqv. */ - return 3483; + return 3540; } } } @@ -15000,7 +15374,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx00x010001xxxxxxxxxxxxx sminv. */ - return 1931; + return 1978; } else { @@ -15008,7 +15382,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx01x010001xxxxxxxxxxxxx andv. */ - return 1404; + return 1451; } } else @@ -15019,7 +15393,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx00x110001xxxxxxxxxxxxx sminqv. */ - return 3480; + return 3537; } else { @@ -15027,7 +15401,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx01x110001xxxxxxxxxxxxx andqv. */ - return 3478; + return 3535; } } } @@ -15039,7 +15413,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0xx011001xxxxxxxxxxxxx uminv. */ - return 2081; + return 2128; } else { @@ -15047,7 +15421,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0xx111001xxxxxxxxxxxxx uminqv. */ - return 3482; + return 3539; } } } @@ -15060,7 +15434,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x00x0xxxxx001xxxxxxxxxxxxx ldff1sb. */ - return 1767; + return 1814; } else { @@ -15068,7 +15442,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x01x0xxxxx001xxxxxxxxxxxxx ldff1sh. */ - return 1775; + return 1822; } } } @@ -15082,7 +15456,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx0010xxxxxxxxxxxx cmla. */ - return 2163; + return 2210; } else { @@ -15090,7 +15464,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx0011xxxxxxxxxxxx sqrdcmlah. */ - return 2295; + return 2342; } } else @@ -15101,7 +15475,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x00x0xxxxx001xxxxxxxxxxxxx ldff1sb. */ - return 1771; + return 1818; } else { @@ -15109,7 +15483,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x01x0xxxxx001xxxxxxxxxxxxx ldff1sh. */ - return 1779; + return 1826; } } } @@ -15132,7 +15506,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0001xxxxx001x00xxxxxxxxxx and. */ - return 1399; + return 1446; } else { @@ -15140,7 +15514,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0101xxxxx001x00xxxxxxxxxx eor. */ - return 1486; + return 1533; } } else @@ -15151,7 +15525,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0011xxxxx001x00xxxxxxxxxx orr. */ - return 1856; + return 1903; } else { @@ -15159,7 +15533,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0111xxxxx001x00xxxxxxxxxx bic. */ - return 1412; + return 1459; } } } @@ -15171,7 +15545,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0x01xxxxx001x10xxxxxxxxxx eor3. */ - return 2166; + return 2213; } else { @@ -15179,7 +15553,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0x11xxxxx001x10xxxxxxxxxx bcax. */ - return 2155; + return 2202; } } } @@ -15191,7 +15565,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx001x01xxxxxxxxxx xar. */ - return 2428; + return 2475; } else { @@ -15203,7 +15577,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0001xxxxx001x11xxxxxxxxxx bsl. */ - return 2156; + return 2203; } else { @@ -15211,7 +15585,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0101xxxxx001x11xxxxxxxxxx bsl2n. */ - return 2158; + return 2205; } } else @@ -15222,7 +15596,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0011xxxxx001x11xxxxxxxxxx bsl1n. */ - return 2157; + return 2204; } else { @@ -15230,7 +15604,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0111xxxxx001x11xxxxxxxxxx nbsl. */ - return 2213; + return 2260; } } } @@ -15244,7 +15618,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x00x1xxxxx001xxxxxxxxxxxxx prfh. */ - return 1880; + return 1927; } else { @@ -15252,7 +15626,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x01x1xxxxx001xxxxxxxxxxxxx ldff1sh. */ - return 1776; + return 1823; } } } @@ -15264,7 +15638,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x00x1xxxxx001xxxxxxxxxxxxx prfh. */ - return 1882; + return 1929; } else { @@ -15280,7 +15654,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx0010x0xxxxxxxxxx sqdmlalb. */ - return 2268; + return 2315; } else { @@ -15288,7 +15662,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx0010x0xxxxxxxxxx sqdmlalb. */ - return 2269; + return 2316; } } else @@ -15299,7 +15673,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx0011x0xxxxxxxxxx sqdmlslb. */ - return 2275; + return 2322; } else { @@ -15307,7 +15681,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx0011x0xxxxxxxxxx sqdmlslb. */ - return 2276; + return 2323; } } } @@ -15321,7 +15695,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx0010x1xxxxxxxxxx sqdmlalt. */ - return 2272; + return 2319; } else { @@ -15329,7 +15703,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx0010x1xxxxxxxxxx sqdmlalt. */ - return 2273; + return 2320; } } else @@ -15340,7 +15714,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx0011x1xxxxxxxxxx sqdmlslt. */ - return 2279; + return 2326; } else { @@ -15348,7 +15722,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx0011x1xxxxxxxxxx sqdmlslt. */ - return 2280; + return 2327; } } } @@ -15359,7 +15733,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x01x1xxxxx001xxxxxxxxxxxxx ldff1sh. */ - return 1780; + return 1827; } } } @@ -15387,7 +15761,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000000101xxxxxxxxxxxxx sxtb. */ - return 3733; + return 3790; } else { @@ -15395,7 +15769,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010000101xxxxxxxxxxxxx sxtb. */ - return 2054; + return 2101; } } else @@ -15406,7 +15780,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001000101xxxxxxxxxxxxx cls. */ - return 3663; + return 3720; } else { @@ -15414,7 +15788,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011000101xxxxxxxxxxxxx cls. */ - return 1432; + return 1479; } } } @@ -15428,7 +15802,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000100101xxxxxxxxxxxxx sxtw. */ - return 3735; + return 3792; } else { @@ -15436,7 +15810,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010100101xxxxxxxxxxxxx sxtw. */ - return 2056; + return 2103; } } else @@ -15447,7 +15821,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001100101xxxxxxxxxxxxx fabs. */ - return 3669; + return 3726; } else { @@ -15455,7 +15829,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011100101xxxxxxxxxxxxx fabs. */ - return 1494; + return 1541; } } } @@ -15472,7 +15846,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000010101xxxxxxxxxxxxx sxth. */ - return 3734; + return 3791; } else { @@ -15480,7 +15854,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010010101xxxxxxxxxxxxx sxth. */ - return 2055; + return 2102; } } else @@ -15491,7 +15865,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001010101xxxxxxxxxxxxx cnt. */ - return 3666; + return 3723; } else { @@ -15499,7 +15873,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011010101xxxxxxxxxxxxx cnt. */ - return 1461; + return 1508; } } } @@ -15513,7 +15887,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000110101xxxxxxxxxxxxx abs. */ - return 3660; + return 3717; } else { @@ -15521,7 +15895,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010110101xxxxxxxxxxxxx abs. */ - return 1390; + return 1437; } } else @@ -15532,7 +15906,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001110101xxxxxxxxxxxxx not. */ - return 3718; + return 3775; } else { @@ -15540,7 +15914,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011110101xxxxxxxxxxxxx not. */ - return 1853; + return 1900; } } } @@ -15560,7 +15934,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000001101xxxxxxxxxxxxx uxtb. */ - return 3745; + return 3802; } else { @@ -15568,7 +15942,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010001101xxxxxxxxxxxxx uxtb. */ - return 2117; + return 2164; } } else @@ -15579,7 +15953,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001001101xxxxxxxxxxxxx clz. */ - return 3664; + return 3721; } else { @@ -15587,7 +15961,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011001101xxxxxxxxxxxxx clz. */ - return 1433; + return 1480; } } } @@ -15601,7 +15975,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000101101xxxxxxxxxxxxx uxtw. */ - return 3747; + return 3804; } else { @@ -15609,7 +15983,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010101101xxxxxxxxxxxxx uxtw. */ - return 2119; + return 2166; } } else @@ -15620,7 +15994,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001101101xxxxxxxxxxxxx fneg. */ - return 3698; + return 3755; } else { @@ -15628,7 +16002,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011101101xxxxxxxxxxxxx fneg. */ - return 1571; + return 1618; } } } @@ -15645,7 +16019,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000011101xxxxxxxxxxxxx uxth. */ - return 3746; + return 3803; } else { @@ -15653,7 +16027,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx010011101xxxxxxxxxxxxx uxth. */ - return 2118; + return 2165; } } else @@ -15664,7 +16038,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx001011101xxxxxxxxxxxxx cnot. */ - return 3665; + return 3722; } else { @@ -15672,7 +16046,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx011011101xxxxxxxxxxxxx cnot. */ - return 1460; + return 1507; } } } @@ -15684,7 +16058,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx00x111101xxxxxxxxxxxxx neg. */ - return 3717; + return 3774; } else { @@ -15692,7 +16066,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx01x111101xxxxxxxxxxxxx neg. */ - return 1850; + return 1897; } } } @@ -15710,7 +16084,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0001xxxxx1010xxxxxxxxxxxx adr. */ - return 1396; + return 1443; } else { @@ -15718,7 +16092,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0011xxxxx1010xxxxxxxxxxxx adr. */ - return 1397; + return 1444; } } else @@ -15727,7 +16101,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01x1xxxxx1010xxxxxxxxxxxx adr. */ - return 1398; + return 1445; } } else @@ -15740,7 +16114,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx101100xxxxxxxxxx ftssel. */ - return 1597; + return 1644; } else { @@ -15748,7 +16122,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx101110xxxxxxxxxx fexpa. */ - return 1541; + return 1588; } } else @@ -15757,7 +16131,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx1011x1xxxxxxxxxx movprfx. */ - return 1843; + return 1890; } } } @@ -15774,7 +16148,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0000xxxxx101xxxxxxxxxxxxx ldnt1b. */ - return 2192; + return 2239; } else { @@ -15782,7 +16156,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0100xxxxx101xxxxxxxxxxxxx ldnt1h. */ - return 2195; + return 2242; } } else @@ -15793,7 +16167,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0001xxxxx101xxxxxxxxxxxxx ldff1sb. */ - return 1773; + return 1820; } else { @@ -15801,7 +16175,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0101xxxxx101xxxxxxxxxxxxx ldff1sh. */ - return 1783; + return 1830; } } } @@ -15813,7 +16187,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x001xxxxxx101xxxxxxxxxxxxx ld1rb. */ - return 1652; + return 1699; } else { @@ -15821,7 +16195,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x011xxxxxx101xxxxxxxxxxxxx ld1rh. */ - return 1656; + return 1703; } } } @@ -15844,7 +16218,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0x0000101xxxxxxxxxxxxx urecpe. */ - return 2403; + return 2450; } else { @@ -15852,7 +16226,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0x1000101xxxxxxxxxxxxx sqabs. */ - return 2265; + return 2312; } } else @@ -15863,7 +16237,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx00x100101xxxxxxxxxxxxx sadalp. */ - return 2229; + return 2276; } else { @@ -15871,7 +16245,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx01x100101xxxxxxxxxxxxx smaxp. */ - return 2243; + return 2290; } } } @@ -15885,7 +16259,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0x0010101xxxxxxxxxxxxx urecpe. */ - return 3743; + return 3800; } else { @@ -15893,7 +16267,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0x1010101xxxxxxxxxxxxx sqabs. */ - return 3731; + return 3788; } } else @@ -15902,7 +16276,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xx110101xxxxxxxxxxxxx sminp. */ - return 2244; + return 2291; } } } @@ -15920,7 +16294,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx000001101xxxxxxxxxxxxx ursqrte. */ - return 2408; + return 2455; } else { @@ -15928,7 +16302,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx010001101xxxxxxxxxxxxx addp. */ - return 2154; + return 2201; } } else @@ -15937,7 +16311,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0x1001101xxxxxxxxxxxxx sqneg. */ - return 2292; + return 2339; } } else @@ -15948,7 +16322,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx00x101101xxxxxxxxxxxxx uadalp. */ - return 2360; + return 2407; } else { @@ -15956,7 +16330,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx01x101101xxxxxxxxxxxxx umaxp. */ - return 2368; + return 2415; } } } @@ -15970,7 +16344,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0x0011101xxxxxxxxxxxxx ursqrte. */ - return 3744; + return 3801; } else { @@ -15978,7 +16352,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0x1011101xxxxxxxxxxxxx sqneg. */ - return 3732; + return 3789; } } else @@ -15987,7 +16361,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xx111101xxxxxxxxxxxxx uminp. */ - return 2369; + return 2416; } } } @@ -16000,7 +16374,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0x00xxxxx101xxxxxxxxxxxxx ld1q. */ - return 3514; + return 3571; } else { @@ -16010,7 +16384,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0010xxxxx101xxxxxxxxxxxxx ldff1sb. */ - return 1772; + return 1819; } else { @@ -16018,7 +16392,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0110xxxxx101xxxxxxxxxxxxx ldff1sh. */ - return 1781; + return 1828; } } } @@ -16033,7 +16407,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x0001xxxxx101xxxxxxxxxxxxx ldff1sb. */ - return 1774; + return 1821; } else { @@ -16047,7 +16421,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1010x0xxxxxxxxxx smlslb. */ - return 2251; + return 2298; } else { @@ -16055,7 +16429,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1011x0xxxxxxxxxx umlslb. */ - return 2376; + return 2423; } } else @@ -16066,7 +16440,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1010x1xxxxxxxxxx smlslt. */ - return 2254; + return 2301; } else { @@ -16074,7 +16448,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1011x1xxxxxxxxxx umlslt. */ - return 2379; + return 2426; } } } @@ -16084,7 +16458,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0101xxxxx101xxxxxxxxxxxxx ldff1sh. */ - return 1784; + return 1831; } } } @@ -16096,7 +16470,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x0011xxxxx101xxxxxxxxxxxxx prfh. */ - return 1883; + return 1930; } else { @@ -16110,7 +16484,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1010x0xxxxxxxxxx smlslb. */ - return 2252; + return 2299; } else { @@ -16118,7 +16492,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1011x0xxxxxxxxxx umlslb. */ - return 2377; + return 2424; } } else @@ -16129,7 +16503,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1010x1xxxxxxxxxx smlslt. */ - return 2255; + return 2302; } else { @@ -16137,7 +16511,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1011x1xxxxxxxxxx umlslt. */ - return 2380; + return 2427; } } } @@ -16147,7 +16521,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0111xxxxx101xxxxxxxxxxxxx ldff1sh. */ - return 1782; + return 1829; } } } @@ -16169,7 +16543,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0xxxxx011xxxxxxxxxxxxx mls. */ - return 1842; + return 1889; } else { @@ -16179,7 +16553,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x00x0xxxxx011xxxxxxxxxxxxx ldff1b. */ - return 1741; + return 1788; } else { @@ -16187,7 +16561,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x01x0xxxxx011xxxxxxxxxxxxx ldff1h. */ - return 1756; + return 1803; } } } @@ -16205,7 +16579,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx011000xxxxxxxxxx sqdmlalb. */ - return 2270; + return 2317; } else { @@ -16213,7 +16587,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx011100xxxxxxxxxx sqrdmlah. */ - return 2299; + return 2346; } } else @@ -16224,7 +16598,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx011010xxxxxxxxxx sqdmlslb. */ - return 2277; + return 2324; } else { @@ -16232,7 +16606,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx011110xxxxxxxxxx usdot. */ - return 3135; + return 3192; } } } @@ -16246,7 +16620,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx011001xxxxxxxxxx sqdmlalt. */ - return 2274; + return 2321; } else { @@ -16254,7 +16628,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx011101xxxxxxxxxx sqrdmlsh. */ - return 2303; + return 2350; } } else @@ -16263,7 +16637,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx011x11xxxxxxxxxx sqdmlslt. */ - return 2281; + return 2328; } } } @@ -16275,7 +16649,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x00x0xxxxx011xxxxxxxxxxxxx ldff1b. */ - return 1746; + return 1793; } else { @@ -16283,7 +16657,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x01x0xxxxx011xxxxxxxxxxxxx ldff1h. */ - return 1761; + return 1808; } } } @@ -16304,7 +16678,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx011000xxxxxxxxxx mul. */ - return 2212; + return 2259; } else { @@ -16312,7 +16686,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx011100xxxxxxxxxx sqdmulh. */ - return 2285; + return 2332; } } else @@ -16321,7 +16695,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx011x10xxxxxxxxxx smulh. */ - return 2257; + return 2304; } } else @@ -16334,7 +16708,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx011001xxxxxxxxxx pmul. */ - return 2215; + return 2262; } else { @@ -16342,7 +16716,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx011101xxxxxxxxxx sqrdmulh. */ - return 2307; + return 2354; } } else @@ -16351,7 +16725,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx011x11xxxxxxxxxx umulh. */ - return 2382; + return 2429; } } } @@ -16363,7 +16737,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x00x1xxxxx011xxxxxxxxxxxxx prfd. */ - return 1873; + return 1920; } else { @@ -16371,7 +16745,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x01x1xxxxx011xxxxxxxxxxxxx ldff1h. */ - return 1757; + return 1804; } } } @@ -16383,7 +16757,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x00x1xxxxx011xxxxxxxxxxxxx prfd. */ - return 1875; + return 1922; } else { @@ -16397,7 +16771,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx0110xxxxxxxxxxxx cmla. */ - return 2164; + return 2211; } else { @@ -16405,7 +16779,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx0110xxxxxxxxxxxx cmla. */ - return 2165; + return 2212; } } else @@ -16416,7 +16790,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx0111xxxxxxxxxxxx sqrdcmlah. */ - return 2293; + return 2340; } else { @@ -16424,7 +16798,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx0111xxxxxxxxxxxx sqrdcmlah. */ - return 2294; + return 2341; } } } @@ -16434,7 +16808,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x01x1xxxxx011xxxxxxxxxxxxx ldff1h. */ - return 1762; + return 1809; } } } @@ -16452,7 +16826,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx0xxxxx111xxxxxxxxxxxxx msb. */ - return 1845; + return 1892; } else { @@ -16472,7 +16846,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00010xxxx111000xxxxxxxxxx cntb. */ - return 1462; + return 1509; } else { @@ -16480,7 +16854,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01010xxxx111000xxxxxxxxxx cntw. */ - return 1466; + return 1513; } } else @@ -16491,7 +16865,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00110xxxx111000xxxxxxxxxx cnth. */ - return 1464; + return 1511; } else { @@ -16499,7 +16873,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01110xxxx111000xxxxxxxxxx cntd. */ - return 1463; + return 1510; } } } @@ -16513,7 +16887,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00011xxxx111000xxxxxxxxxx incb. */ - return 1598; + return 1645; } else { @@ -16521,7 +16895,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01011xxxx111000xxxxxxxxxx incw. */ - return 1606; + return 1653; } } else @@ -16532,7 +16906,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00111xxxx111000xxxxxxxxxx inch. */ - return 1602; + return 1649; } else { @@ -16540,7 +16914,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01111xxxx111000xxxxxxxxxx incd. */ - return 1600; + return 1647; } } } @@ -16557,7 +16931,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00010xxxx111100xxxxxxxxxx sqincb. */ - return 1951; + return 1998; } else { @@ -16565,7 +16939,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01010xxxx111100xxxxxxxxxx sqincw. */ - return 1963; + return 2010; } } else @@ -16576,7 +16950,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00110xxxx111100xxxxxxxxxx sqinch. */ - return 1957; + return 2004; } else { @@ -16584,7 +16958,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01110xxxx111100xxxxxxxxxx sqincd. */ - return 1954; + return 2001; } } } @@ -16598,7 +16972,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00011xxxx111100xxxxxxxxxx sqincb. */ - return 1950; + return 1997; } else { @@ -16606,7 +16980,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01011xxxx111100xxxxxxxxxx sqincw. */ - return 1962; + return 2009; } } else @@ -16617,7 +16991,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00111xxxx111100xxxxxxxxxx sqinch. */ - return 1956; + return 2003; } else { @@ -16625,7 +16999,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01111xxxx111100xxxxxxxxxx sqincd. */ - return 1953; + return 2000; } } } @@ -16643,7 +17017,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00010xxxx111x10xxxxxxxxxx sqdecb. */ - return 1937; + return 1984; } else { @@ -16651,7 +17025,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01010xxxx111x10xxxxxxxxxx sqdecw. */ - return 1949; + return 1996; } } else @@ -16662,7 +17036,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00110xxxx111x10xxxxxxxxxx sqdech. */ - return 1943; + return 1990; } else { @@ -16670,7 +17044,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01110xxxx111x10xxxxxxxxxx sqdecd. */ - return 1940; + return 1987; } } } @@ -16684,7 +17058,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00011xxxx111x10xxxxxxxxxx sqdecb. */ - return 1936; + return 1983; } else { @@ -16692,7 +17066,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01011xxxx111x10xxxxxxxxxx sqdecw. */ - return 1948; + return 1995; } } else @@ -16703,7 +17077,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00111xxxx111x10xxxxxxxxxx sqdech. */ - return 1942; + return 1989; } else { @@ -16711,7 +17085,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01111xxxx111x10xxxxxxxxxx sqdecd. */ - return 1939; + return 1986; } } } @@ -16731,7 +17105,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0001xxxxx111001xxxxxxxxxx decb. */ - return 1473; + return 1520; } else { @@ -16739,7 +17113,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0101xxxxx111001xxxxxxxxxx decw. */ - return 1481; + return 1528; } } else @@ -16750,7 +17124,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0011xxxxx111001xxxxxxxxxx dech. */ - return 1477; + return 1524; } else { @@ -16758,7 +17132,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0111xxxxx111001xxxxxxxxxx decd. */ - return 1475; + return 1522; } } } @@ -16774,7 +17148,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00010xxxx111101xxxxxxxxxx uqincb. */ - return 2099; + return 2146; } else { @@ -16782,7 +17156,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01010xxxx111101xxxxxxxxxx uqincw. */ - return 2111; + return 2158; } } else @@ -16793,7 +17167,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00110xxxx111101xxxxxxxxxx uqinch. */ - return 2105; + return 2152; } else { @@ -16801,7 +17175,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01110xxxx111101xxxxxxxxxx uqincd. */ - return 2102; + return 2149; } } } @@ -16815,7 +17189,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00011xxxx111101xxxxxxxxxx uqincb. */ - return 2100; + return 2147; } else { @@ -16823,7 +17197,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01011xxxx111101xxxxxxxxxx uqincw. */ - return 2112; + return 2159; } } else @@ -16834,7 +17208,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00111xxxx111101xxxxxxxxxx uqinch. */ - return 2106; + return 2153; } else { @@ -16842,7 +17216,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01111xxxx111101xxxxxxxxxx uqincd. */ - return 2103; + return 2150; } } } @@ -16860,7 +17234,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00010xxxx111x11xxxxxxxxxx uqdecb. */ - return 2085; + return 2132; } else { @@ -16868,7 +17242,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01010xxxx111x11xxxxxxxxxx uqdecw. */ - return 2097; + return 2144; } } else @@ -16879,7 +17253,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00110xxxx111x11xxxxxxxxxx uqdech. */ - return 2091; + return 2138; } else { @@ -16887,7 +17261,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01110xxxx111x11xxxxxxxxxx uqdecd. */ - return 2088; + return 2135; } } } @@ -16901,7 +17275,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00011xxxx111x11xxxxxxxxxx uqdecb. */ - return 2086; + return 2133; } else { @@ -16909,7 +17283,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01011xxxx111x11xxxxxxxxxx uqdecw. */ - return 2098; + return 2145; } } else @@ -16920,7 +17294,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x00111xxxx111x11xxxxxxxxxx uqdech. */ - return 2092; + return 2139; } else { @@ -16928,7 +17302,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x01111xxxx111x11xxxxxxxxxx uqdecd. */ - return 2089; + return 2136; } } } @@ -16948,7 +17322,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0000xxxxx111xxxxxxxxxxxxx prfb. */ - return 1870; + return 1917; } else { @@ -16956,7 +17330,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0100xxxxx111xxxxxxxxxxxxx prfh. */ - return 1884; + return 1931; } } else @@ -16967,7 +17341,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0001xxxxx111xxxxxxxxxxxxx ldff1b. */ - return 1748; + return 1795; } else { @@ -16975,7 +17349,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x0101xxxxx111xxxxxxxxxxxxx ldff1h. */ - return 1765; + return 1812; } } } @@ -16987,7 +17361,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x001xxxxxx111xxxxxxxxxxxxx ld1rb. */ - return 1654; + return 1701; } else { @@ -16995,7 +17369,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x011xxxxxx111xxxxxxxxxxxxx ld1rh. */ - return 1658; + return 1705; } } } @@ -17014,7 +17388,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx111x00xxxxxxxxxx zipq1. */ - return 3496; + return 3553; } else { @@ -17024,7 +17398,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx111010xxxxxxxxxx uzpq1. */ - return 3494; + return 3551; } else { @@ -17032,7 +17406,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx111110xxxxxxxxxx tblq. */ - return 3491; + return 3548; } } } @@ -17044,7 +17418,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx111x01xxxxxxxxxx zipq2. */ - return 3497; + return 3554; } else { @@ -17052,7 +17426,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx111x11xxxxxxxxxx uzpq2. */ - return 3495; + return 3552; } } } @@ -17066,7 +17440,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0000xxxxx111xxxxxxxxxxxxx prfb. */ - return 1872; + return 1919; } else { @@ -17074,7 +17448,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0100xxxxx111xxxxxxxxxxxxx prfh. */ - return 1886; + return 1933; } } else @@ -17085,7 +17459,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0010xxxxx111xxxxxxxxxxxxx ldff1b. */ - return 1747; + return 1794; } else { @@ -17093,7 +17467,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0110xxxxx111xxxxxxxxxxxxx ldff1h. */ - return 1763; + return 1810; } } } @@ -17112,7 +17486,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x00x1xxxxx111x00xxxxxxxxxx sqdmulh. */ - return 2282; + return 2329; } else { @@ -17120,7 +17494,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x00x1xxxxx111x10xxxxxxxxxx mul. */ - return 2209; + return 2256; } } else @@ -17129,7 +17503,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x00x1xxxxx111xx1xxxxxxxxxx sqrdmulh. */ - return 2304; + return 2351; } } else @@ -17140,7 +17514,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0001xxxxx111xxxxxxxxxxxxx ldff1b. */ - return 1749; + return 1796; } else { @@ -17148,7 +17522,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0011xxxxx111xxxxxxxxxxxxx prfd. */ - return 1876; + return 1923; } } } @@ -17166,7 +17540,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1110x0xxxxxxxxxx sqdmullb. */ - return 2286; + return 2333; } else { @@ -17176,7 +17550,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx111100xxxxxxxxxx sqdmulh. */ - return 2283; + return 2330; } else { @@ -17184,7 +17558,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx111110xxxxxxxxxx mul. */ - return 2210; + return 2257; } } } @@ -17196,7 +17570,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1110x1xxxxxxxxxx sqdmullt. */ - return 2289; + return 2336; } else { @@ -17204,7 +17578,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0101xxxxx1111x1xxxxxxxxxx sqrdmulh. */ - return 2305; + return 2352; } } } @@ -17214,7 +17588,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0101xxxxx111xxxxxxxxxxxxx ldff1h. */ - return 1766; + return 1813; } } else @@ -17229,7 +17603,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1110x0xxxxxxxxxx sqdmullb. */ - return 2287; + return 2334; } else { @@ -17239,7 +17613,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx111100xxxxxxxxxx sqdmulh. */ - return 2284; + return 2331; } else { @@ -17247,7 +17621,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx111110xxxxxxxxxx mul. */ - return 2211; + return 2258; } } } @@ -17259,7 +17633,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1110x1xxxxxxxxxx sqdmullt. */ - return 2290; + return 2337; } else { @@ -17267,7 +17641,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0111xxxxx1111x1xxxxxxxxxx sqrdmulh. */ - return 2306; + return 2353; } } } @@ -17277,7 +17651,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0111xxxxx111xxxxxxxxxxxxx ldff1h. */ - return 1764; + return 1811; } } } @@ -17307,7 +17681,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx000xxxxxxxx0xxxx cmphs. */ - return 1446; + return 1493; } else { @@ -17315,7 +17689,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx000xxxxxxxx1xxxx cmphi. */ - return 1443; + return 1490; } } else @@ -17326,7 +17700,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00x0xxxxx000xxxxxxxxxxxxx ld1rqb. */ - return 1660; + return 1707; } else { @@ -17334,7 +17708,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01x0xxxxx000xxxxxxxxxxxxx ld1rqh. */ - return 1664; + return 1711; } } } @@ -17348,7 +17722,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx010xxxxxxxx0xxxx cmpge. */ - return 1437; + return 1484; } else { @@ -17356,7 +17730,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx010xxxxxxxx1xxxx cmpgt. */ - return 1440; + return 1487; } } else @@ -17369,7 +17743,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0000xxxxx010xxxxxxxxxxxxx ld1b. */ - return 1618; + return 1665; } else { @@ -17377,7 +17751,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0100xxxxx010xxxxxxxxxxxxx ld1sw. */ - return 1698; + return 1745; } } else @@ -17388,7 +17762,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0010xxxxx010xxxxxxxxxxxxx ld1b. */ - return 1620; + return 1667; } else { @@ -17396,7 +17770,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0110xxxxx010xxxxxxxxxxxxx ld1h. */ - return 1640; + return 1687; } } } @@ -17414,7 +17788,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx001xxxxxxxx0xxxx cmpeq. */ - return 1434; + return 1481; } else { @@ -17422,7 +17796,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx001xxxxxxxx1xxxx cmpne. */ - return 1457; + return 1504; } } else @@ -17433,7 +17807,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00x0xxxxx001xxxxxxxxxxxxx ld1rqb. */ - return 1659; + return 1706; } else { @@ -17441,7 +17815,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01x0xxxxx001xxxxxxxxxxxxx ld1rqh. */ - return 1663; + return 1710; } } } @@ -17455,7 +17829,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx011xxxxxxxx0xxxx cmplt. */ - return 1455; + return 1502; } else { @@ -17463,7 +17837,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx011xxxxxxxx1xxxx cmple. */ - return 1449; + return 1496; } } else @@ -17476,7 +17850,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0000xxxxx011xxxxxxxxxxxxx ldff1b. */ - return 1742; + return 1789; } else { @@ -17484,7 +17858,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0100xxxxx011xxxxxxxxxxxxx ldff1sw. */ - return 1785; + return 1832; } } else @@ -17495,7 +17869,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0010xxxxx011xxxxxxxxxxxxx ldff1b. */ - return 1744; + return 1791; } else { @@ -17503,7 +17877,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0110xxxxx011xxxxxxxxxxxxx ldff1h. */ - return 1759; + return 1806; } } } @@ -17518,7 +17892,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0xxxxx0xxxxxxxxxxxxxxx fcmla. */ - return 1503; + return 1550; } else { @@ -17532,7 +17906,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0x00xxxxx000xxxxxxxxxxxxx st3q. */ - return 3523; + return 3580; } else { @@ -17542,7 +17916,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0010xxxxx000xxxxxxxxxxxxx st2q. */ - return 3522; + return 3579; } else { @@ -17550,7 +17924,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0110xxxxx000xxxxxxxxxxxxx st4q. */ - return 3524; + return 3581; } } } @@ -17562,7 +17936,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0x00xxxxx010xxxxxxxxxxxxx st1b. */ - return 1966; + return 2013; } else { @@ -17572,7 +17946,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0010xxxxx010xxxxxxxxxxxxx st1b. */ - return 1970; + return 2017; } else { @@ -17580,7 +17954,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0110xxxxx010xxxxxxxxxxxxx st1h. */ - return 1991; + return 2038; } } } @@ -17597,7 +17971,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0000xxxxx001xxxxxxxxxxxxx stnt1b. */ - return 2344; + return 2391; } else { @@ -17605,7 +17979,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0100xxxxx001xxxxxxxxxxxxx stnt1h. */ - return 2347; + return 2394; } } else @@ -17616,7 +17990,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0010xxxxx001xxxxxxxxxxxxx stnt1b. */ - return 2343; + return 2390; } else { @@ -17624,7 +17998,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0110xxxxx001xxxxxxxxxxxxx stnt1h. */ - return 2346; + return 2393; } } } @@ -17638,7 +18012,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0000xxxxx011xxxxxxxxxxxxx stnt1b. */ - return 2036; + return 2083; } else { @@ -17646,7 +18020,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0100xxxxx011xxxxxxxxxxxxx stnt1h. */ - return 2040; + return 2087; } } else @@ -17657,7 +18031,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0010xxxxx011xxxxxxxxxxxxx st3b. */ - return 2020; + return 2067; } else { @@ -17665,7 +18039,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0110xxxxx011xxxxxxxxxxxxx st3h. */ - return 2024; + return 2071; } } } @@ -17687,7 +18061,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01001x0xx0xxxxx100xxxxxxxx0xxxx cmpge. */ - return 1438; + return 1485; } else { @@ -17695,7 +18069,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01001x0xx0xxxxx100xxxxxxxx1xxxx cmpgt. */ - return 1441; + return 1488; } } else @@ -17708,7 +18082,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx110xxxxxxxx0xxxx cmphs. */ - return 1447; + return 1494; } else { @@ -17716,7 +18090,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx110xxxxxxxx1xxxx cmphi. */ - return 1444; + return 1491; } } else @@ -17729,7 +18103,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0000xxxxx110xxxxxxxxxxxxx ldnt1b. */ - return 1817; + return 1864; } else { @@ -17737,7 +18111,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0100xxxxx110xxxxxxxxxxxxx ldnt1h. */ - return 1821; + return 1868; } } else @@ -17748,7 +18122,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0010xxxxx110xxxxxxxxxxxxx ld3b. */ - return 1725; + return 1772; } else { @@ -17756,7 +18130,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0110xxxxx110xxxxxxxxxxxxx ld3h. */ - return 1729; + return 1776; } } } @@ -17774,7 +18148,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx101xxxxxxxx0xxxx cmpeq. */ - return 1435; + return 1482; } else { @@ -17782,7 +18156,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx101xxxxxxxx1xxxx cmpne. */ - return 1458; + return 1505; } } else @@ -17797,7 +18171,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00000xxxx101xxxxxxxxxxxxx ld1b. */ - return 1625; + return 1672; } else { @@ -17805,7 +18179,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01000xxxx101xxxxxxxxxxxxx ld1sw. */ - return 1703; + return 1750; } } else @@ -17816,7 +18190,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00100xxxx101xxxxxxxxxxxxx ld1b. */ - return 1627; + return 1674; } else { @@ -17824,7 +18198,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01100xxxx101xxxxxxxxxxxxx ld1h. */ - return 1648; + return 1695; } } } @@ -17838,7 +18212,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00001xxxx101xxxxxxxxxxxxx ldnf1b. */ - return 1801; + return 1848; } else { @@ -17846,7 +18220,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01001xxxx101xxxxxxxxxxxxx ldnf1sw. */ - return 1814; + return 1861; } } else @@ -17857,7 +18231,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00101xxxx101xxxxxxxxxxxxx ldnf1b. */ - return 1803; + return 1850; } else { @@ -17865,7 +18239,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01101xxxx101xxxxxxxxxxxxx ldnf1h. */ - return 1807; + return 1854; } } } @@ -17881,7 +18255,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx111xxxxxxxx0xxxx cmplo. */ - return 1451; + return 1498; } else { @@ -17889,7 +18263,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx0xxxxx111xxxxxxxx1xxxx cmpls. */ - return 1453; + return 1500; } } else @@ -17904,7 +18278,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00000xxxx111xxxxxxxxxxxxx ldnt1b. */ - return 1818; + return 1865; } else { @@ -17912,7 +18286,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01000xxxx111xxxxxxxxxxxxx ldnt1h. */ - return 1822; + return 1869; } } else @@ -17923,7 +18297,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00100xxxx111xxxxxxxxxxxxx ld3b. */ - return 1726; + return 1773; } else { @@ -17931,7 +18305,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01100xxxx111xxxxxxxxxxxxx ld3h. */ - return 1730; + return 1777; } } } @@ -17941,7 +18315,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0xx01xxxx111xxxxxxxxxxxxx ld2q. */ - return 3515; + return 3572; } } } @@ -17967,7 +18341,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx00000x100xxxxxxxxxxxxx fcadd. */ - return 1502; + return 1549; } else { @@ -17975,7 +18349,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx01000x100xxxxxxxxxxxxx faddp. */ - return 2170; + return 2217; } } else @@ -17986,7 +18360,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x1000100xxxxxxxxxxxxx frintn. */ - return 3711; + return 3768; } else { @@ -17994,7 +18368,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x1001100xxxxxxxxxxxxx frinta. */ - return 3710; + return 3767; } } } @@ -18006,7 +18380,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0xx000110xxxxxxxxxxxxx frintm. */ - return 3713; + return 3770; } else { @@ -18014,7 +18388,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0xx001110xxxxxxxxxxxxx frintx. */ - return 3708; + return 3765; } } } @@ -18028,7 +18402,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x01001x0xxxxxxxxxxxxx fmaxnmp. */ - return 2178; + return 2225; } else { @@ -18038,7 +18412,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x00x11001x0xxxxxxxxxxxxx frint32z. */ - return 3703; + return 3760; } else { @@ -18048,7 +18422,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10x1100100xxxxxxxxxxxxx scvtf. */ - return 3727; + return 3784; } else { @@ -18056,7 +18430,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10x1100110xxxxxxxxxxxxx scvtf. */ - return 3724; + return 3781; } } } @@ -18069,7 +18443,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x01011x0xxxxxxxxxxxxx fminnmp. */ - return 2180; + return 2227; } else { @@ -18081,7 +18455,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0000x11011x0xxxxxxxxxxxxx frint64z. */ - return 3707; + return 3764; } else { @@ -18089,7 +18463,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0100x11011x0xxxxxxxxxxxxx scvtf. */ - return 3726; + return 3783; } } else @@ -18102,7 +18476,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0010x1101100xxxxxxxxxxxxx scvtf. */ - return 3725; + return 3782; } else { @@ -18110,7 +18484,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0110x1101100xxxxxxxxxxxxx scvtf. */ - return 3729; + return 3786; } } else @@ -18121,7 +18495,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0010x1101110xxxxxxxxxxxxx scvtf. */ - return 3728; + return 3785; } else { @@ -18129,7 +18503,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0110x1101110xxxxxxxxxxxxx scvtf. */ - return 3730; + return 3787; } } } @@ -18153,7 +18527,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx000000101xxxxxxxxxxxxx fcvtnt. */ - return 3678; + return 3735; } else { @@ -18161,7 +18535,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx010000101xxxxxxxxxxxxx faddqv. */ - return 3484; + return 3541; } } else @@ -18172,7 +18546,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx001000101xxxxxxxxxxxxx fcvtnt. */ - return 2173; + return 2220; } else { @@ -18180,7 +18554,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx011000101xxxxxxxxxxxxx frintp. */ - return 3714; + return 3771; } } } @@ -18190,7 +18564,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0xx000111xxxxxxxxxxxxx frintz. */ - return 3712; + return 3769; } } else @@ -18201,7 +18575,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x01001x1xxxxxxxxxxxxx fmaxnmqv. */ - return 3485; + return 3542; } else { @@ -18211,7 +18585,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x00x11001x1xxxxxxxxxxxxx frint32x. */ - return 3701; + return 3758; } else { @@ -18221,7 +18595,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10x1100101xxxxxxxxxxxxx ucvtf. */ - return 3739; + return 3796; } else { @@ -18229,7 +18603,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10x1100111xxxxxxxxxxxxx ucvtf. */ - return 3736; + return 3793; } } } @@ -18247,7 +18621,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x0001101xxxxxxxxxxxxx fcvtlt. */ - return 3676; + return 3733; } else { @@ -18255,7 +18629,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x1001101xxxxxxxxxxxxx fcvtlt. */ - return 2171; + return 2218; } } else @@ -18264,7 +18638,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0xx001111xxxxxxxxxxxxx frinti. */ - return 3709; + return 3766; } } else @@ -18275,7 +18649,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x01011x1xxxxxxxxxxxxx fminnmqv. */ - return 3487; + return 3544; } else { @@ -18287,7 +18661,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0000x11011x1xxxxxxxxxxxxx frint64x. */ - return 3705; + return 3762; } else { @@ -18295,7 +18669,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0100x11011x1xxxxxxxxxxxxx ucvtf. */ - return 3738; + return 3795; } } else @@ -18308,7 +18682,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0010x1101101xxxxxxxxxxxxx ucvtf. */ - return 3737; + return 3794; } else { @@ -18316,7 +18690,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0110x1101101xxxxxxxxxxxxx ucvtf. */ - return 3741; + return 3798; } } else @@ -18327,7 +18701,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0010x1101111xxxxxxxxxxxxx ucvtf. */ - return 3740; + return 3797; } else { @@ -18335,7 +18709,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0110x1101111xxxxxxxxxxxxx ucvtf. */ - return 3742; + return 3799; } } } @@ -18360,7 +18734,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x00xx010100xxxxxxxxxxxxx fcvt. */ - return 3672; + return 3729; } else { @@ -18368,7 +18742,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10xx010100xxxxxxxxxxxxx fcvt. */ - return 3674; + return 3731; } } else @@ -18381,7 +18755,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0000xx010110xxxxxxxxxxxxx fcvtx. */ - return 3680; + return 3737; } else { @@ -18389,7 +18763,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0100xx010110xxxxxxxxxxxxx bfcvt. */ - return 3661; + return 3718; } } else @@ -18398,7 +18772,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10xx010110xxxxxxxxxxxxx fcvt. */ - return 3675; + return 3732; } } } @@ -18416,7 +18790,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0000x0010101xxxxxxxxxxxxx fcvtxnt. */ - return 3681; + return 3738; } else { @@ -18424,7 +18798,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0100x0010101xxxxxxxxxxxxx bfcvtnt. */ - return 3662; + return 3719; } } else @@ -18433,7 +18807,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10x0010101xxxxxxxxxxxxx fcvtnt. */ - return 3679; + return 3736; } } else @@ -18448,7 +18822,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x000001010101xxxxxxxxxxxxx fcvtxnt. */ - return 2176; + return 2223; } else { @@ -18456,7 +18830,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x010001010101xxxxxxxxxxxxx bfcvtnt. */ - return 3164; + return 3221; } } else @@ -18465,7 +18839,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x1001010101xxxxxxxxxxxxx fcvtnt. */ - return 2174; + return 2221; } } else @@ -18476,7 +18850,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x0011010101xxxxxxxxxxxxx fcvt. */ - return 3670; + return 3727; } else { @@ -18484,7 +18858,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x1011010101xxxxxxxxxxxxx fcvt. */ - return 3671; + return 3728; } } } @@ -18495,7 +18869,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0xx010111xxxxxxxxxxxxx fcvt. */ - return 3673; + return 3730; } } } @@ -18509,7 +18883,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x01101x0xxxxxxxxxxxxx fmaxp. */ - return 2179; + return 2226; } else { @@ -18517,7 +18891,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x01101x1xxxxxxxxxxxxx fmaxqv. */ - return 3486; + return 3543; } } else @@ -18528,7 +18902,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x00x11101xxxxxxxxxxxxxxx flogb. */ - return 3697; + return 3754; } else { @@ -18540,7 +18914,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10x1110100xxxxxxxxxxxxx fcvtzs. */ - return 3687; + return 3744; } else { @@ -18548,7 +18922,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10x1110110xxxxxxxxxxxxx fcvtzs. */ - return 3682; + return 3739; } } else @@ -18559,7 +18933,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10x1110101xxxxxxxxxxxxx fcvtzu. */ - return 3694; + return 3751; } else { @@ -18567,7 +18941,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x10x1110111xxxxxxxxxxxxx fcvtzu. */ - return 3689; + return 3746; } } } @@ -18586,7 +18960,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0xx011100xxxxxxxxxxxxx frecpx. */ - return 3699; + return 3756; } else { @@ -18596,7 +18970,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x0111100xxxxxxxxxxxxx fminp. */ - return 2181; + return 2228; } else { @@ -18606,7 +18980,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x00x1111100xxxxxxxxxxxxx fcvtzs. */ - return 3685; + return 3742; } else { @@ -18616,7 +18990,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0010x1111100xxxxxxxxxxxxx fcvtzs. */ - return 3683; + return 3740; } else { @@ -18624,7 +18998,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0110x1111100xxxxxxxxxxxxx fcvtzs. */ - return 3686; + return 3743; } } } @@ -18638,7 +19012,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x00x0xxx11110xxxxxxxxxxxxx fcvtzs. */ - return 3684; + return 3741; } else { @@ -18646,7 +19020,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x01x0xxx11110xxxxxxxxxxxxx fcvtzs. */ - return 3688; + return 3745; } } } @@ -18662,7 +19036,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x0011101xxxxxxxxxxxxx fcvtlt. */ - return 3677; + return 3734; } else { @@ -18672,7 +19046,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx001011101xxxxxxxxxxxxx fcvtlt. */ - return 2172; + return 2219; } else { @@ -18680,7 +19054,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx011011101xxxxxxxxxxxxx fsqrt. */ - return 3715; + return 3772; } } } @@ -18692,7 +19066,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx0x0111101xxxxxxxxxxxxx fminqv. */ - return 3488; + return 3545; } else { @@ -18702,7 +19076,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0x00x1111101xxxxxxxxxxxxx fcvtzu. */ - return 3692; + return 3749; } else { @@ -18712,7 +19086,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0010x1111101xxxxxxxxxxxxx fcvtzu. */ - return 3690; + return 3747; } else { @@ -18720,7 +19094,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0110x1111101xxxxxxxxxxxxx fcvtzu. */ - return 3693; + return 3750; } } } @@ -18734,7 +19108,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x00x0xxx11111xxxxxxxxxxxxx fcvtzu. */ - return 3691; + return 3748; } else { @@ -18742,7 +19116,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x01x0xxx11111xxxxxxxxxxxxx fcvtzu. */ - return 3695; + return 3752; } } } @@ -18761,7 +19135,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0000xxxxx1x0xxxxxxxxxxxxx st1b. */ - return 1967; + return 2014; } else { @@ -18769,7 +19143,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0100xxxxx1x0xxxxxxxxxxxxx st1h. */ - return 1986; + return 2033; } } else @@ -18780,7 +19154,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0010xxxxx1x0xxxxxxxxxxxxx st1b. */ - return 1971; + return 2018; } else { @@ -18788,7 +19162,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0110xxxxx1x0xxxxxxxxxxxxx st1h. */ - return 1992; + return 2039; } } } @@ -18804,7 +19178,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0000xxxxx101xxxxxxxxxxxxx st1b. */ - return 1968; + return 2015; } else { @@ -18812,7 +19186,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0100xxxxx101xxxxxxxxxxxxx st1h. */ - return 1987; + return 2034; } } else @@ -18823,7 +19197,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0010xxxxx101xxxxxxxxxxxxx st1b. */ - return 1975; + return 2022; } else { @@ -18831,7 +19205,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0110xxxxx101xxxxxxxxxxxxx st1h. */ - return 1996; + return 2043; } } } @@ -18845,7 +19219,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0x000xxxx111xxxxxxxxxxxxx st1b. */ - return 1973; + return 2020; } else { @@ -18855,7 +19229,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x00100xxxx111xxxxxxxxxxxxx st1b. */ - return 1976; + return 2023; } else { @@ -18863,7 +19237,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x01100xxxx111xxxxxxxxxxxxx st1h. */ - return 1997; + return 2044; } } } @@ -18877,7 +19251,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x00001xxxx111xxxxxxxxxxxxx stnt1b. */ - return 2037; + return 2084; } else { @@ -18885,7 +19259,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x01001xxxx111xxxxxxxxxxxxx stnt1h. */ - return 2041; + return 2088; } } else @@ -18896,7 +19270,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x00101xxxx111xxxxxxxxxxxxx st3b. */ - return 2021; + return 2068; } else { @@ -18904,7 +19278,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x01101xxxx111xxxxxxxxxxxxx st3h. */ - return 2025; + return 2072; } } } @@ -18928,7 +19302,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx1xxxxxxx0xxxxxxxx0xxxx cmphs. */ - return 1448; + return 1495; } else { @@ -18936,7 +19310,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx1xxxxxxx0xxxxxxxx1xxxx cmphi. */ - return 1445; + return 1492; } } else @@ -18951,7 +19325,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00x1xxxxx000xxxxxxxxxxxxx ld1rob. */ - return 3140; + return 3197; } else { @@ -18959,7 +19333,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01x1xxxxx000xxxxxxxxxxxxx ld1roh. */ - return 3141; + return 3198; } } else @@ -18968,7 +19342,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0xx1xxxxx100xxxxxxxxxxxxx ld2q. */ - return 3518; + return 3575; } } else @@ -18983,7 +19357,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0001xxxxx010xxxxxxxxxxxxx ld1b. */ - return 1619; + return 1666; } else { @@ -18991,7 +19365,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0101xxxxx010xxxxxxxxxxxxx ld1h. */ - return 1639; + return 1686; } } else @@ -19002,7 +19376,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0011xxxxx010xxxxxxxxxxxxx ld1b. */ - return 1621; + return 1668; } else { @@ -19010,7 +19384,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0111xxxxx010xxxxxxxxxxxxx ld1h. */ - return 1641; + return 1688; } } } @@ -19024,7 +19398,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0001xxxxx110xxxxxxxxxxxxx ld2b. */ - return 1717; + return 1764; } else { @@ -19032,7 +19406,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0101xxxxx110xxxxxxxxxxxxx ld2h. */ - return 1721; + return 1768; } } else @@ -19043,7 +19417,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0011xxxxx110xxxxxxxxxxxxx ld4b. */ - return 1733; + return 1780; } else { @@ -19051,7 +19425,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0111xxxxx110xxxxxxxxxxxxx ld4h. */ - return 1737; + return 1784; } } } @@ -19076,7 +19450,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x00x1xxxxx000x00xxxxxxxxxx fmla. */ - return 1556; + return 1603; } else { @@ -19084,7 +19458,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x00x1xxxxx000x10xxxxxxxxxx bfmla. */ - return 3392; + return 3449; } } else @@ -19095,7 +19469,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x00x1xxxxx000x01xxxxxxxxxx fmls. */ - return 1560; + return 1607; } else { @@ -19103,7 +19477,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x00x1xxxxx000x11xxxxxxxxxx bfmls. */ - return 3393; + return 3450; } } } @@ -19113,7 +19487,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x00x1xxxxx000xxxxxxxxxxxxx st2q. */ - return 3525; + return 3582; } } else @@ -19130,7 +19504,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx0000x0xxxxxxxxxx fmla. */ - return 1557; + return 1604; } else { @@ -19138,7 +19512,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx0000x1xxxxxxxxxx fmls. */ - return 1561; + return 1608; } } else @@ -19147,7 +19521,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx0001xxxxxxxxxxxx fcmla. */ - return 1504; + return 1551; } } else @@ -19156,7 +19530,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0101xxxxx000xxxxxxxxxxxxx st3q. */ - return 3526; + return 3583; } } else @@ -19171,7 +19545,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx0000x0xxxxxxxxxx fmla. */ - return 1558; + return 1605; } else { @@ -19179,7 +19553,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx0000x1xxxxxxxxxx fmls. */ - return 1562; + return 1609; } } else @@ -19188,7 +19562,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx0001xxxxxxxxxxxx fcmla. */ - return 1505; + return 1552; } } else @@ -19197,7 +19571,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0111xxxxx000xxxxxxxxxxxxx st4q. */ - return 3527; + return 3584; } } } @@ -19218,7 +19592,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0001xxxxx0100x0xxxxxxxxxx fdot. */ - return 2499; + return 2556; } else { @@ -19226,7 +19600,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0001xxxxx0100x1xxxxxxxxxx fdot. */ - return 3614; + return 3671; } } else @@ -19235,7 +19609,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0001xxxxx0101xxxxxxxxxxxx fmlalb. */ - return 3616; + return 3673; } } else @@ -19244,7 +19618,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0001xxxxx010xxxxxxxxxxxxx st1b. */ - return 1969; + return 2016; } } else @@ -19259,7 +19633,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx0100x0xxxxxxxxxx fmlalb. */ - return 2182; + return 2229; } else { @@ -19267,7 +19641,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx0100x1xxxxxxxxxx fmlalt. */ - return 2184; + return 2231; } } else @@ -19276,7 +19650,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx0101xxxxxxxxxxxx fmlalt. */ - return 3626; + return 3683; } } else @@ -19285,7 +19659,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0101xxxxx010xxxxxxxxxxxxx st1h. */ - return 1988; + return 2035; } } } @@ -19301,7 +19675,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0011xxxxx010xx0xxxxxxxxxx bfdot. */ - return 3161; + return 3218; } else { @@ -19309,7 +19683,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0011xxxxx010xx1xxxxxxxxxx fdot. */ - return 3612; + return 3669; } } else @@ -19318,7 +19692,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0011xxxxx010xxxxxxxxxxxxx st1b. */ - return 1972; + return 2019; } } else @@ -19331,7 +19705,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx010xx0xxxxxxxxxx bfmlalb. */ - return 3168; + return 3225; } else { @@ -19339,7 +19713,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx010xx1xxxxxxxxxx bfmlalt. */ - return 3167; + return 3224; } } else @@ -19348,7 +19722,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0111xxxxx010xxxxxxxxxxxxx st1h. */ - return 1993; + return 2040; } } } @@ -19372,7 +19746,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx100000xxxxxxxxxx fdot. */ - return 2500; + return 2557; } else { @@ -19380,7 +19754,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx100010xxxxxxxxxx fmlallbb. */ - return 3617; + return 3674; } } else @@ -19389,7 +19763,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx1000x1xxxxxxxxxx fdot. */ - return 3613; + return 3670; } } else @@ -19398,7 +19772,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx1100xxxxxxxxxxxx fmlallbb. */ - return 3618; + return 3675; } } else @@ -19407,7 +19781,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx1x01xxxxxxxxxxxx fmlallbt. */ - return 3619; + return 3676; } } else @@ -19426,7 +19800,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx100000xxxxxxxxxx fmlalb. */ - return 2183; + return 2230; } else { @@ -19434,7 +19808,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx100010xxxxxxxxxx fmlalb. */ - return 3615; + return 3672; } } else @@ -19443,7 +19817,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx1000x1xxxxxxxxxx fmlalt. */ - return 2185; + return 2232; } } else @@ -19452,7 +19826,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx1100xxxxxxxxxxxx fmlalltb. */ - return 3622; + return 3679; } } else @@ -19461,7 +19835,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx1x01xxxxxxxxxxxx fmlalt. */ - return 3625; + return 3682; } } else @@ -19470,7 +19844,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0101xxxxx1x0xxxxxxxxxxxxx st1h. */ - return 1989; + return 2036; } } } @@ -19486,7 +19860,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0011xxxxx100xx0xxxxxxxxxx bfdot. */ - return 3160; + return 3217; } else { @@ -19494,7 +19868,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0011xxxxx100xx1xxxxxxxxxx fdot. */ - return 3611; + return 3668; } } else @@ -19503,7 +19877,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0011xxxxx110xxxxxxxxxxxxx fmlallbt. */ - return 3620; + return 3677; } } else @@ -19518,7 +19892,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx100xx0xxxxxxxxxx bfmlalb. */ - return 3166; + return 3223; } else { @@ -19526,7 +19900,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx100xx1xxxxxxxxxx bfmlalt. */ - return 3165; + return 3222; } } else @@ -19535,7 +19909,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx110xxxxxxxxxxxxx fmlalltt. */ - return 3624; + return 3681; } } else @@ -19544,7 +19918,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0111xxxxx1x0xxxxxxxxxxxxx st1h. */ - return 1994; + return 2041; } } } @@ -19563,7 +19937,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx1xxxxxxx1xxxxxxxx0xxxx cmplo. */ - return 1452; + return 1499; } else { @@ -19571,7 +19945,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x0xx1xxxxxxx1xxxxxxxx1xxxx cmpls. */ - return 1454; + return 1501; } } else @@ -19586,7 +19960,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00x1xxxxx001xxxxxxxxxxxxx ld1rob. */ - return 3144; + return 3201; } else { @@ -19594,7 +19968,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01x1xxxxx001xxxxxxxxxxxxx ld1roh. */ - return 3145; + return 3202; } } else @@ -19609,7 +19983,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00010xxxx101xxxxxxxxxxxxx ld1b. */ - return 1626; + return 1673; } else { @@ -19617,7 +19991,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01010xxxx101xxxxxxxxxxxxx ld1h. */ - return 1647; + return 1694; } } else @@ -19628,7 +20002,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00110xxxx101xxxxxxxxxxxxx ld1b. */ - return 1628; + return 1675; } else { @@ -19636,7 +20010,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01110xxxx101xxxxxxxxxxxxx ld1h. */ - return 1649; + return 1696; } } } @@ -19650,7 +20024,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00011xxxx101xxxxxxxxxxxxx ldnf1b. */ - return 1802; + return 1849; } else { @@ -19658,7 +20032,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01011xxxx101xxxxxxxxxxxxx ldnf1h. */ - return 1806; + return 1853; } } else @@ -19669,7 +20043,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00111xxxx101xxxxxxxxxxxxx ldnf1b. */ - return 1804; + return 1851; } else { @@ -19677,7 +20051,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01111xxxx101xxxxxxxxxxxxx ldnf1h. */ - return 1808; + return 1855; } } } @@ -19695,7 +20069,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0001xxxxx011xxxxxxxxxxxxx ldff1b. */ - return 1743; + return 1790; } else { @@ -19703,7 +20077,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0101xxxxx011xxxxxxxxxxxxx ldff1h. */ - return 1758; + return 1805; } } else @@ -19714,7 +20088,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0011xxxxx011xxxxxxxxxxxxx ldff1b. */ - return 1745; + return 1792; } else { @@ -19722,7 +20096,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0111xxxxx011xxxxxxxxxxxxx ldff1h. */ - return 1760; + return 1807; } } } @@ -19736,7 +20110,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0001xxxxx111xxxxxxxxxxxxx ld2b. */ - return 1718; + return 1765; } else { @@ -19744,7 +20118,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0101xxxxx111xxxxxxxxxxxxx ld2h. */ - return 1722; + return 1769; } } else @@ -19755,7 +20129,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0011xxxxx111xxxxxxxxxxxxx ld4b. */ - return 1734; + return 1781; } else { @@ -19763,7 +20137,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0111xxxxx111xxxxxxxxxxxxx ld4h. */ - return 1738; + return 1785; } } } @@ -19788,7 +20162,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x00x1xxxxx001x00xxxxxxxxxx fmul. */ - return 1567; + return 1614; } else { @@ -19798,7 +20172,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx001x00xxxxxxxxxx fmul. */ - return 1568; + return 1615; } else { @@ -19806,7 +20180,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx001x00xxxxxxxxxx fmul. */ - return 1569; + return 1616; } } } @@ -19816,7 +20190,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx1xxxxx001x10xxxxxxxxxx bfmul. */ - return 3397; + return 3454; } } else @@ -19825,7 +20199,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0xx1xxxxx001xx1xxxxxxxxxx fclamp. */ - return 2501; + return 2558; } } else @@ -19834,7 +20208,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0xx1xxxxx001xxxxxxxxxxxxx st1q. */ - return 3521; + return 3578; } } else @@ -19849,7 +20223,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx1010xxxxxxxxxxxx fmlalltb. */ - return 3621; + return 3678; } else { @@ -19857,7 +20231,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx1011xxxxxxxxxxxx fmlalltt. */ - return 3623; + return 3680; } } else @@ -19870,7 +20244,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx101xx0xxxxxxxxxx fmlslb. */ - return 2187; + return 2234; } else { @@ -19878,7 +20252,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx101xx1xxxxxxxxxx fmlslt. */ - return 2189; + return 2236; } } else @@ -19887,7 +20261,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0101xxxxx101xxxxxxxxxxxxx st1h. */ - return 1990; + return 2037; } } } @@ -19899,7 +20273,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0011xxxxx101xxxxxxxxxxxxx st1b. */ - return 1977; + return 2024; } else { @@ -19911,7 +20285,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx101xx0xxxxxxxxxx bfmlslb. */ - return 2496; + return 2553; } else { @@ -19919,7 +20293,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx101xx1xxxxxxxxxx bfmlslt. */ - return 2498; + return 2555; } } else @@ -19928,7 +20302,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0111xxxxx101xxxxxxxxxxxxx st1h. */ - return 1998; + return 2045; } } } @@ -19946,7 +20320,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx011xxxxxxxxxxxxx st2b. */ - return 2012; + return 2059; } else { @@ -19958,7 +20332,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx011xx0xxxxxxxxxx fmlslb. */ - return 2186; + return 2233; } else { @@ -19966,7 +20340,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx011xx1xxxxxxxxxx fmlslt. */ - return 2188; + return 2235; } } else @@ -19975,7 +20349,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0101xxxxx011xxxxxxxxxxxxx st2h. */ - return 2016; + return 2063; } } } @@ -19987,7 +20361,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0011xxxxx011xxxxxxxxxxxxx st4b. */ - return 2028; + return 2075; } else { @@ -19999,7 +20373,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx011xx0xxxxxxxxxx bfmlslb. */ - return 2495; + return 2552; } else { @@ -20007,7 +20381,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx011xx1xxxxxxxxxx bfmlslt. */ - return 2497; + return 2554; } } else @@ -20016,7 +20390,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0111xxxxx011xxxxxxxxxxxxx st4h. */ - return 2032; + return 2079; } } } @@ -20035,7 +20409,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0001xxxxx111xx0xxxxxxxxxx fmmla. */ - return 3181; + return 3238; } else { @@ -20043,7 +20417,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0001xxxxx111xx1xxxxxxxxxx fmmla. */ - return 3179; + return 3236; } } else @@ -20054,7 +20428,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x00010xxxx111xxxxxxxxxxxxx st1b. */ - return 1974; + return 2021; } else { @@ -20062,7 +20436,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x00011xxxx111xxxxxxxxxxxxx st2b. */ - return 2013; + return 2060; } } } @@ -20074,7 +20448,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx111xxxxxxxxxxxxx fmmla. */ - return 3138; + return 3195; } else { @@ -20084,7 +20458,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x01010xxxx111xxxxxxxxxxxxx st1h. */ - return 1995; + return 2042; } else { @@ -20092,7 +20466,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x01011xxxx111xxxxxxxxxxxxx st2h. */ - return 2017; + return 2064; } } } @@ -20109,7 +20483,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0011xxxxx111xx0xxxxxxxxxx fmmla. */ - return 3183; + return 3240; } else { @@ -20117,7 +20491,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0011xxxxx111xx1xxxxxxxxxx bfmmla. */ - return 3162; + return 3219; } } else @@ -20128,7 +20502,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x00110xxxx111xxxxxxxxxxxxx st1b. */ - return 1978; + return 2025; } else { @@ -20136,7 +20510,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x00111xxxx111xxxxxxxxxxxxx st4b. */ - return 2029; + return 2076; } } } @@ -20148,7 +20522,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx111xxxxxxxxxxxxx fmmla. */ - return 3139; + return 3196; } else { @@ -20158,7 +20532,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x01110xxxx111xxxxxxxxxxxxx st1h. */ - return 1999; + return 2046; } else { @@ -20166,7 +20540,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x01111xxxx111xxxxxxxxxxxxx st4h. */ - return 2033; + return 2080; } } } @@ -20198,7 +20572,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x10000xxxxxxxxxxxxxxxxxxxx orr. */ - return 1857; + return 1904; } else { @@ -20206,7 +20580,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x11000xxxxxxxxxxxxxxxxxxxx and. */ - return 1400; + return 1447; } } else @@ -20217,7 +20591,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x10100xxxxxxxxxxxxxxxxxxxx eor. */ - return 1487; + return 1534; } else { @@ -20225,7 +20599,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x11100xxxxxxxxxxxxxxxxxxxx dupm. */ - return 1485; + return 1532; } } } @@ -20237,7 +20611,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx01xxxx0xxxxxxxxxxxxxxx cpy. */ - return 1470; + return 1517; } else { @@ -20245,7 +20619,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx01xxxx1xxxxxxxxxxxxxxx fcpy. */ - return 1517; + return 1564; } } } @@ -20265,7 +20639,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1001xxxxx000xxxxxxxxxxxxx ext. */ - return 1492; + return 1539; } else { @@ -20277,7 +20651,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000x00xxxxxxxxxx zip1. */ - return 3148; + return 3205; } else { @@ -20287,7 +20661,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000010xxxxxxxxxx uzp1. */ - return 3150; + return 3207; } else { @@ -20295,7 +20669,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000110xxxxxxxxxx trn1. */ - return 3152; + return 3209; } } } @@ -20307,7 +20681,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000x01xxxxxxxxxx zip2. */ - return 3149; + return 3206; } else { @@ -20317,7 +20691,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000011xxxxxxxxxx uzp2. */ - return 3151; + return 3208; } else { @@ -20325,7 +20699,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000111xxxxxxxxxx trn2. */ - return 3153; + return 3210; } } } @@ -20337,7 +20711,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1x11xxxxx000xxxxxxxxxxxxx ext. */ - return 2169; + return 2216; } } else @@ -20354,7 +20728,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x0000100xxxxxxxxxxxxx cpy. */ - return 1468; + return 1515; } else { @@ -20362,7 +20736,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x1000100xxxxxxxxxxxxx clasta. */ - return 1426; + return 1473; } } else @@ -20373,7 +20747,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x0100100xxxxxxxxxxxxx revb. */ - return 1906; + return 1953; } else { @@ -20381,7 +20755,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x1100100xxxxxxxxxxxxx splice. */ - return 1933; + return 1980; } } } @@ -20395,7 +20769,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x0010100xxxxxxxxxxxxx lasta. */ - return 1614; + return 1661; } else { @@ -20403,7 +20777,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x1010100xxxxxxxxxxxxx clasta. */ - return 1427; + return 1474; } } else @@ -20414,7 +20788,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x0110100xxxxxxxxxxxxx revw. */ - return 1908; + return 1955; } else { @@ -20422,7 +20796,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x1110100xxxxxxxxxxxxx revd. */ - return 2489; + return 2546; } } } @@ -20443,7 +20817,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x10x100001100xxxxxxxxxxxxx compact. */ - return 3667; + return 3724; } else { @@ -20451,7 +20825,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x11x100001100xxxxxxxxxxxxx compact. */ - return 1467; + return 1514; } } else @@ -20460,7 +20834,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx110001100xxxxxxxxxxxxx expand. */ - return 3668; + return 3725; } } else @@ -20469,7 +20843,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x1001100xxxxxxxxxxxxx clastb. */ - return 1429; + return 1476; } } else @@ -20480,7 +20854,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x0101100xxxxxxxxxxxxx revh. */ - return 1907; + return 1954; } else { @@ -20488,7 +20862,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x1101100xxxxxxxxxxxxx splice. */ - return 2264; + return 2311; } } } @@ -20502,7 +20876,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x0011100xxxxxxxxxxxxx lastb. */ - return 1616; + return 1663; } else { @@ -20510,7 +20884,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x1011100xxxxxxxxxxxxx clastb. */ - return 1430; + return 1477; } } else @@ -20519,7 +20893,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xx111100xxxxxxxxxxxxx rbit. */ - return 1899; + return 1946; } } } @@ -20539,7 +20913,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx001000xxxxxxxxxx dup. */ - return 1483; + return 1530; } else { @@ -20547,7 +20921,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx001100xxxxxxxxxx tbl. */ - return 2057; + return 2104; } } else @@ -20558,7 +20932,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx001010xxxxxxxxxx tbl. */ - return 2353; + return 2400; } else { @@ -20576,7 +20950,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx100000001110xxxxxxxxxx dup. */ - return 1482; + return 1529; } else { @@ -20584,7 +20958,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx110000001110xxxxxxxxxx sunpklo. */ - return 2053; + return 2100; } } else @@ -20595,7 +20969,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx100100001110xxxxxxxxxx insr. */ - return 1611; + return 1658; } else { @@ -20603,7 +20977,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx110100001110xxxxxxxxxx insr. */ - return 1612; + return 1659; } } } @@ -20613,7 +20987,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x0x10001110xxxxxxxxxx uunpklo. */ - return 2116; + return 2163; } } else @@ -20630,7 +21004,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1001010x0001110xxxxxxxxxx pmov. */ - return 3498; + return 3555; } else { @@ -20638,7 +21012,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1001011x0001110xxxxxxxxxx pmov. */ - return 3499; + return 3556; } } else @@ -20647,7 +21021,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x101101xx0001110xxxxxxxxxx pmov. */ - return 3500; + return 3557; } } else @@ -20656,7 +21030,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x11x101xx0001110xxxxxxxxxx pmov. */ - return 3501; + return 3558; } } else @@ -20665,7 +21039,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx111xx0001110xxxxxxxxxx rev. */ - return 1905; + return 1952; } } } @@ -20679,7 +21053,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x0x01001110xxxxxxxxxx sunpkhi. */ - return 2052; + return 2099; } else { @@ -20687,7 +21061,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x0x11001110xxxxxxxxxx uunpkhi. */ - return 2115; + return 2162; } } else @@ -20702,7 +21076,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1001x10x1001110xxxxxxxxxx pmov. */ - return 3502; + return 3559; } else { @@ -20710,7 +21084,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1001x11x1001110xxxxxxxxxx pmov. */ - return 3503; + return 3560; } } else @@ -20719,7 +21093,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1011x1xx1001110xxxxxxxxxx pmov. */ - return 3504; + return 3561; } } else @@ -20728,7 +21102,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x11x1x1xx1001110xxxxxxxxxx pmov. */ - return 3505; + return 3562; } } } @@ -20747,7 +21121,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1x01xxxxx001001xxxxxxxxxx dupq. */ - return 3489; + return 3546; } else { @@ -20755,7 +21129,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1x11xxxxx001001xxxxxxxxxx extq. */ - return 3493; + return 3550; } } else @@ -20764,7 +21138,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx001101xxxxxxxxxx tbxq. */ - return 3492; + return 3549; } } else @@ -20773,7 +21147,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx001x11xxxxxxxxxx tbx. */ - return 2354; + return 2401; } } } @@ -20793,7 +21167,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx100000101xxxxxxxxxxxxx lasta. */ - return 1613; + return 1660; } else { @@ -20801,7 +21175,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx110000101xxxxxxxxxxxxx clasta. */ - return 1428; + return 1475; } } else @@ -20810,7 +21184,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x1000101xxxxxxxxxxxxx cpy. */ - return 1469; + return 1516; } } else @@ -20819,7 +21193,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xx100101xxxxxxxxxxxxx revb. */ - return 3720; + return 3777; } } else @@ -20830,7 +21204,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x0x10101xxxxxxxxxxxxx revw. */ - return 3722; + return 3779; } else { @@ -20838,7 +21212,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1x1x10101xxxxxxxxxxxxx revd. */ - return 3723; + return 3780; } } } @@ -20854,7 +21228,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx10x001101xxxxxxxxxxxxx lastb. */ - return 1615; + return 1662; } else { @@ -20862,7 +21236,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx11x001101xxxxxxxxxxxxx clastb. */ - return 1431; + return 1478; } } else @@ -20871,7 +21245,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xx101101xxxxxxxxxxxxx revh. */ - return 3721; + return 3778; } } else @@ -20880,7 +21254,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxx11101xxxxxxxxxxxxx rbit. */ - return 3719; + return 3776; } } } @@ -20904,7 +21278,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx10xxxx010000xxxxxxxxxx zip1. */ - return 2133; + return 2180; } else { @@ -20916,7 +21290,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx11x0x0010000xxxxxxxxxx punpklo. */ - return 1898; + return 1945; } else { @@ -20924,7 +21298,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx11x1x0010000xxxxxxxxxx rev. */ - return 1904; + return 1951; } } else @@ -20933,7 +21307,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx11xxx1010000xxxxxxxxxx punpkhi. */ - return 1897; + return 1944; } } } @@ -20943,7 +21317,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx011000xxxxxxxxxx zip1. */ - return 2134; + return 2181; } } else @@ -20954,7 +21328,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx010100xxxxxxxxxx trn1. */ - return 2058; + return 2105; } else { @@ -20962,7 +21336,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx011100xxxxxxxxxx trn1. */ - return 2059; + return 2106; } } } @@ -20974,7 +21348,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx010x10xxxxxxxxxx uzp1. */ - return 2120; + return 2167; } else { @@ -20982,7 +21356,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx011x10xxxxxxxxxx uzp1. */ - return 2121; + return 2168; } } } @@ -20998,7 +21372,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx010001xxxxxxxxxx zip2. */ - return 2135; + return 2182; } else { @@ -21006,7 +21380,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx011001xxxxxxxxxx zip2. */ - return 2136; + return 2183; } } else @@ -21017,7 +21391,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx010101xxxxxxxxxx trn2. */ - return 2060; + return 2107; } else { @@ -21025,7 +21399,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx011101xxxxxxxxxx trn2. */ - return 2061; + return 2108; } } } @@ -21037,7 +21411,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx010x11xxxxxxxxxx uzp2. */ - return 2122; + return 2169; } else { @@ -21045,7 +21419,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx011x11xxxxxxxxxx uzp2. */ - return 2123; + return 2170; } } } @@ -21056,7 +21430,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1xx1xxxxx11xxxxxxxxxxxxxx sel. */ - return 1923; + return 1970; } } } @@ -21075,7 +21449,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x1x0xxxxxx000xxxxxxxxxxxxx ldr. */ - return 1825; + return 1872; } else { @@ -21083,7 +21457,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x1x1xxxxxx000xxxxxxxxxxxxx prfb. */ - return 1871; + return 1918; } } else @@ -21094,7 +21468,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x10xxxxxxx100xxxxxxxxxxxxx ld1rsh. */ - return 1670; + return 1717; } else { @@ -21102,7 +21476,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x11xxxxxxx100xxxxxxxxxxxxx ld1rsb. */ - return 1667; + return 1714; } } } @@ -21118,7 +21492,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x10x0xxxxx010xxxxxxxxxxxxx ld1w. */ - return 1705; + return 1752; } else { @@ -21126,7 +21500,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x10x1xxxxx010xxxxxxxxxxxxx ld1w. */ - return 1706; + return 1753; } } else @@ -21137,7 +21511,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x110xxxxxx010xxxxxxxxxxxxx ldr. */ - return 1827; + return 1874; } else { @@ -21145,7 +21519,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x111xxxxxx010xxxxxxxxxxxxx prfw. */ - return 1892; + return 1939; } } } @@ -21161,7 +21535,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x1000xxxxx110xxxxxxxxxxxxx prfw. */ - return 1888; + return 1935; } else { @@ -21169,7 +21543,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x1100xxxxx110xxxxxxxxxxxxx prfd. */ - return 1874; + return 1921; } } else @@ -21178,7 +21552,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x1x01xxxxx110xxxxxxxxxxxxx ld1w. */ - return 1713; + return 1760; } } else @@ -21189,7 +21563,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x101xxxxxx110xxxxxxxxxxxxx ld1rw. */ - return 1673; + return 1720; } else { @@ -21197,7 +21571,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x111xxxxxx110xxxxxxxxxxxxx ld1rsb. */ - return 1669; + return 1716; } } } @@ -21213,7 +21587,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x1xxxxxxxx001xxxxxxxxxxxxx prfh. */ - return 1885; + return 1932; } else { @@ -21223,7 +21597,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x1x0xxxxxx101xxxxxxxxxxxxx ldnt1w. */ - return 2200; + return 2247; } else { @@ -21233,7 +21607,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x101xxxxxx101xxxxxxxxxxxxx ld1rsh. */ - return 1671; + return 1718; } else { @@ -21241,7 +21615,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x111xxxxxx101xxxxxxxxxxxxx ld1rsb. */ - return 1668; + return 1715; } } } @@ -21258,7 +21632,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x10x0xxxxx011xxxxxxxxxxxxx ldff1w. */ - return 1791; + return 1838; } else { @@ -21266,7 +21640,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x10x1xxxxx011xxxxxxxxxxxxx ldff1w. */ - return 1792; + return 1839; } } else @@ -21275,7 +21649,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x11xxxxxxx011xxxxxxxxxxxxx prfd. */ - return 1878; + return 1925; } } else @@ -21290,7 +21664,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x1000xxxxx111xxxxxxxxxxxxx prfw. */ - return 1891; + return 1938; } else { @@ -21298,7 +21672,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x1100xxxxx111xxxxxxxxxxxxx prfd. */ - return 1877; + return 1924; } } else @@ -21307,7 +21681,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x1x01xxxxx111xxxxxxxxxxxxx ldff1w. */ - return 1799; + return 1846; } } else @@ -21318,7 +21692,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x101xxxxxx111xxxxxxxxxxxxx ld1rw. */ - return 1674; + return 1721; } else { @@ -21326,7 +21700,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 100001x111xxxxxx111xxxxxxxxxxxxx ld1rd. */ - return 1655; + return 1702; } } } @@ -21356,7 +21730,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx000000xxxxxxxxxx saddlb. */ - return 2230; + return 2277; } else { @@ -21364,7 +21738,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx000100xxxxxxxxxx ssublb. */ - return 2337; + return 2384; } } else @@ -21375,7 +21749,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx000010xxxxxxxxxx uaddlb. */ - return 2361; + return 2408; } else { @@ -21383,7 +21757,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx000110xxxxxxxxxx usublb. */ - return 2414; + return 2461; } } } @@ -21397,7 +21771,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx000001xxxxxxxxxx saddlt. */ - return 2232; + return 2279; } else { @@ -21405,7 +21779,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx000101xxxxxxxxxx ssublt. */ - return 2339; + return 2386; } } else @@ -21416,7 +21790,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx000011xxxxxxxxxx uaddlt. */ - return 2362; + return 2409; } else { @@ -21424,7 +21798,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx000111xxxxxxxxxx usublt. */ - return 2415; + return 2462; } } } @@ -21435,7 +21809,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1xx0xxxxx000xxxxxxxxxxxxx ld1sw. */ - return 1699; + return 1746; } } else @@ -21454,7 +21828,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx000000xxxxxxxxxx sqshrunb. */ - return 2320; + return 2367; } else { @@ -21462,7 +21836,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx000100xxxxxxxxxx shrnb. */ - return 2238; + return 2285; } } else @@ -21473,7 +21847,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx000010xxxxxxxxxx sqrshrunb. */ - return 2312; + return 2359; } else { @@ -21481,7 +21855,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx000110xxxxxxxxxx rshrnb. */ - return 2220; + return 2267; } } } @@ -21495,7 +21869,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx000001xxxxxxxxxx sqshrunt. */ - return 2321; + return 2368; } else { @@ -21503,7 +21877,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx000101xxxxxxxxxx shrnt. */ - return 2239; + return 2286; } } else @@ -21514,7 +21888,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx000011xxxxxxxxxx sqrshrunt. */ - return 2313; + return 2360; } else { @@ -21522,7 +21896,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx000111xxxxxxxxxx rshrnt. */ - return 2221; + return 2268; } } } @@ -21533,7 +21907,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x10x1xxxxx000xxxxxxxxxxxxx ld1sw. */ - return 1700; + return 1747; } } else @@ -21542,7 +21916,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x11x1xxxxx000xxxxxxxxxxxxx sqrshrun. */ - return 2507; + return 2564; } } } @@ -21562,7 +21936,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx100000xxxxxxxxxx saddlbt. */ - return 2231; + return 2278; } else { @@ -21570,7 +21944,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx100100xxxxxxxxxx eorbt. */ - return 2167; + return 2214; } } else @@ -21581,7 +21955,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx100010xxxxxxxxxx ssublbt. */ - return 2338; + return 2385; } else { @@ -21593,7 +21967,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1000xxxxx100110xxxxxxxxxx smmla. */ - return 3132; + return 3189; } else { @@ -21601,7 +21975,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1100xxxxx100110xxxxxxxxxx usmmla. */ - return 3134; + return 3191; } } else @@ -21610,7 +21984,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1x10xxxxx100110xxxxxxxxxx ummla. */ - return 3133; + return 3190; } } } @@ -21623,7 +21997,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx100x01xxxxxxxxxx eortb. */ - return 2168; + return 2215; } else { @@ -21631,7 +22005,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx100x11xxxxxxxxxx ssubltb. */ - return 2340; + return 2387; } } } @@ -21643,7 +22017,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1x00xxxxx100xxxxxxxxxxxxx ldnt1sw. */ - return 2199; + return 2246; } else { @@ -21651,7 +22025,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1x10xxxxx100xxxxxxxxxxxxx ld1sw. */ - return 1701; + return 1748; } } } @@ -21665,7 +22039,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx100xxxxxxxx0xxxx match. */ - return 2202; + return 2249; } else { @@ -21673,7 +22047,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx100xxxxxxxx1xxxx nmatch. */ - return 2214; + return 2261; } } else @@ -21684,7 +22058,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1x01xxxxx100xxxxxxxxxxxxx ld1sw. */ - return 1704; + return 1751; } else { @@ -21692,7 +22066,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1x11xxxxx100xxxxxxxxxxxxx ld1sw. */ - return 1702; + return 1749; } } } @@ -21716,7 +22090,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx010000xxxxxxxxxx saddwb. */ - return 2233; + return 2280; } else { @@ -21724,7 +22098,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx010100xxxxxxxxxx ssubwb. */ - return 2341; + return 2388; } } else @@ -21735,7 +22109,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx010010xxxxxxxxxx uaddwb. */ - return 2363; + return 2410; } else { @@ -21743,7 +22117,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx010110xxxxxxxxxx usubwb. */ - return 2416; + return 2463; } } } @@ -21757,7 +22131,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx010001xxxxxxxxxx saddwt. */ - return 2234; + return 2281; } else { @@ -21765,7 +22139,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx010101xxxxxxxxxx ssubwt. */ - return 2342; + return 2389; } } else @@ -21776,7 +22150,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx010011xxxxxxxxxx uaddwt. */ - return 2364; + return 2411; } else { @@ -21784,7 +22158,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx010111xxxxxxxxxx usubwt. */ - return 2417; + return 2464; } } } @@ -21797,7 +22171,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x10x0xxxxx010xxxxxxxxxxxxx ld1w. */ - return 1709; + return 1756; } else { @@ -21805,7 +22179,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x11x0xxxxx010xxxxxxxxxxxxx ld1d. */ - return 1631; + return 1678; } } } @@ -21827,7 +22201,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxx0010000xxxxxxxxxx sqxtnb. */ - return 2324; + return 2371; } else { @@ -21835,7 +22209,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxx1010000xxxxxxxxxx sqcvtn. */ - return 2504; + return 2561; } } else @@ -21846,7 +22220,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxx0010100xxxxxxxxxx sqxtunb. */ - return 2326; + return 2373; } else { @@ -21854,7 +22228,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxx1010100xxxxxxxxxx sqcvtun. */ - return 2505; + return 2562; } } } @@ -21866,7 +22240,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxx0010x10xxxxxxxxxx uqxtnb. */ - return 2401; + return 2448; } else { @@ -21874,7 +22248,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxx1010x10xxxxxxxxxx uqcvtn. */ - return 2510; + return 2567; } } } @@ -21888,7 +22262,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx010001xxxxxxxxxx sqxtnt. */ - return 2325; + return 2372; } else { @@ -21896,7 +22270,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx010101xxxxxxxxxx sqxtunt. */ - return 2327; + return 2374; } } else @@ -21905,7 +22279,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx010x11xxxxxxxxxx uqxtnt. */ - return 2402; + return 2449; } } } @@ -21915,7 +22289,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x10x1xxxxx010xxxxxxxxxxxxx ld1w. */ - return 1710; + return 1757; } } else @@ -21924,7 +22298,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x11x1xxxxx010xxxxxxxxxxxxx ld1d. */ - return 1632; + return 1679; } } } @@ -21944,7 +22318,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx110000xxxxxxxxxx sabalb. */ - return 2225; + return 2272; } else { @@ -21954,7 +22328,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x0xxxxx110100xxxxxxxxxx adclb. */ - return 2150; + return 2197; } else { @@ -21962,7 +22336,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x11x0xxxxx110100xxxxxxxxxx sbclb. */ - return 2235; + return 2282; } } } @@ -21974,7 +22348,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx110001xxxxxxxxxx sabalt. */ - return 2226; + return 2273; } else { @@ -21984,7 +22358,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x0xxxxx110101xxxxxxxxxx adclt. */ - return 2151; + return 2198; } else { @@ -21992,7 +22366,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x11x0xxxxx110101xxxxxxxxxx sbclt. */ - return 2236; + return 2283; } } } @@ -22007,7 +22381,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx110010xxxxxxxxxx uabalb. */ - return 2356; + return 2403; } else { @@ -22015,7 +22389,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx110011xxxxxxxxxx uabalt. */ - return 2357; + return 2404; } } else @@ -22026,7 +22400,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxx011011xxxxxxxxxxx cadd. */ - return 2159; + return 2206; } else { @@ -22034,7 +22408,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxx111011xxxxxxxxxxx sqcadd. */ - return 2267; + return 2314; } } } @@ -22049,7 +22423,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1000xxxxx110xxxxxxxxxxxxx ldnt1w. */ - return 2201; + return 2248; } else { @@ -22057,7 +22431,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1100xxxxx110xxxxxxxxxxxxx ldnt1d. */ - return 2194; + return 2241; } } else @@ -22068,7 +22442,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1010xxxxx110xxxxxxxxxxxxx ld1w. */ - return 1711; + return 1758; } else { @@ -22076,7 +22450,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1110xxxxx110xxxxxxxxxxxxx ld1d. */ - return 1633; + return 1680; } } } @@ -22091,7 +22465,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x1001xxxxx110xxxxxxxxxxxxx ld1w. */ - return 1716; + return 1763; } else { @@ -22099,7 +22473,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x1011xxxxx110xxxxxxxxxxxxx ld1w. */ - return 1712; + return 1759; } } else @@ -22110,7 +22484,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x11x1xxxxx110xxxxxxxxxxxxx histcnt. */ - return 2190; + return 2237; } else { @@ -22120,7 +22494,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1101xxxxx110xxxxxxxxxxxxx ld1d. */ - return 1636; + return 1683; } else { @@ -22128,7 +22502,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1111xxxxx110xxxxxxxxxxxxx ld1d. */ - return 1634; + return 1681; } } } @@ -22154,7 +22528,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx001x00xxxxxxxxxx sabdlb. */ - return 2227; + return 2274; } else { @@ -22162,7 +22536,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx001x10xxxxxxxxxx uabdlb. */ - return 2358; + return 2405; } } else @@ -22173,7 +22547,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx001x01xxxxxxxxxx sabdlt. */ - return 2228; + return 2275; } else { @@ -22181,7 +22555,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx001x11xxxxxxxxxx uabdlt. */ - return 2359; + return 2406; } } } @@ -22191,7 +22565,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1xx0xxxxx001xxxxxxxxxxxxx ldff1sw. */ - return 1786; + return 1833; } } else @@ -22210,7 +22584,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx001000xxxxxxxxxx sqshrnb. */ - return 2318; + return 2365; } else { @@ -22218,7 +22592,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx001100xxxxxxxxxx uqshrnb. */ - return 2397; + return 2444; } } else @@ -22229,7 +22603,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx001010xxxxxxxxxx sqrshrnb. */ - return 2310; + return 2357; } else { @@ -22237,7 +22611,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx001110xxxxxxxxxx uqrshrnb. */ - return 2392; + return 2439; } } } @@ -22251,7 +22625,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx001001xxxxxxxxxx sqshrnt. */ - return 2319; + return 2366; } else { @@ -22259,7 +22633,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx001101xxxxxxxxxx uqshrnt. */ - return 2398; + return 2445; } } else @@ -22270,7 +22644,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx001011xxxxxxxxxx sqrshrnt. */ - return 2311; + return 2358; } else { @@ -22278,7 +22652,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x10x1xxxxx001111xxxxxxxxxx uqrshrnt. */ - return 2393; + return 2440; } } } @@ -22289,7 +22663,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x10x1xxxxx001xxxxxxxxxxxxx ldff1sw. */ - return 1787; + return 1834; } } else @@ -22300,7 +22674,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x11x1xxxxx0010xxxxxxxxxxxx sqrshrn. */ - return 2506; + return 2563; } else { @@ -22308,7 +22682,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x11x1xxxxx0011xxxxxxxxxxxx uqrshrn. */ - return 2511; + return 2568; } } } @@ -22329,7 +22703,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx101000xxxxxxxxxx sshllb. */ - return 2334; + return 2381; } else { @@ -22337,7 +22711,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx101100xxxxxxxxxx bext. */ - return 2439; + return 2486; } } else @@ -22348,7 +22722,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx101010xxxxxxxxxx ushllb. */ - return 2410; + return 2457; } else { @@ -22356,7 +22730,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx101110xxxxxxxxxx bgrp. */ - return 2440; + return 2487; } } } @@ -22370,7 +22744,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx101001xxxxxxxxxx sshllt. */ - return 2335; + return 2382; } else { @@ -22378,7 +22752,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx101101xxxxxxxxxx bdep. */ - return 2438; + return 2485; } } else @@ -22387,7 +22761,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx101x11xxxxxxxxxx ushllt. */ - return 2411; + return 2458; } } } @@ -22397,7 +22771,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1xx0xxxxx101xxxxxxxxxxxxx ldff1sw. */ - return 1788; + return 1835; } } else @@ -22414,7 +22788,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101000xxxxxxxxxx histseg. */ - return 2191; + return 2238; } else { @@ -22422,7 +22796,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101100xxxxxxxxxx luti2. */ - return 3583; + return 3640; } } else @@ -22431,7 +22805,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101x10xxxxxxxxxx luti2. */ - return 3584; + return 3641; } } else @@ -22444,7 +22818,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101001xxxxxxxxxx luti4. */ - return 3585; + return 3642; } else { @@ -22452,7 +22826,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101101xxxxxxxxxx luti4. */ - return 3586; + return 3643; } } else @@ -22461,7 +22835,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101x11xxxxxxxxxx luti4. */ - return 3587; + return 3644; } } } @@ -22473,7 +22847,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1x01xxxxx101xxxxxxxxxxxxx ldff1sw. */ - return 1790; + return 1837; } else { @@ -22481,7 +22855,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1x11xxxxx101xxxxxxxxxxxxx ldff1sw. */ - return 1789; + return 1836; } } } @@ -22505,7 +22879,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx011000xxxxxxxxxx sqdmullb. */ - return 2288; + return 2335; } else { @@ -22513,7 +22887,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx011100xxxxxxxxxx smullb. */ - return 2260; + return 2307; } } else @@ -22526,7 +22900,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1x00xxxxx011010xxxxxxxxxx pmullb. */ - return 2435; + return 2482; } else { @@ -22534,7 +22908,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1x10xxxxx011010xxxxxxxxxx pmullb. */ - return 2216; + return 2263; } } else @@ -22543,7 +22917,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx011110xxxxxxxxxx umullb. */ - return 2385; + return 2432; } } } @@ -22557,7 +22931,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx011001xxxxxxxxxx sqdmullt. */ - return 2291; + return 2338; } else { @@ -22565,7 +22939,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx011101xxxxxxxxxx smullt. */ - return 2263; + return 2310; } } else @@ -22578,7 +22952,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1x00xxxxx011011xxxxxxxxxx pmullt. */ - return 2436; + return 2483; } else { @@ -22586,7 +22960,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1x10xxxxx011011xxxxxxxxxx pmullt. */ - return 2217; + return 2264; } } else @@ -22595,7 +22969,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx011111xxxxxxxxxx umullt. */ - return 2388; + return 2435; } } } @@ -22608,7 +22982,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x10x0xxxxx011xxxxxxxxxxxxx ldff1w. */ - return 1795; + return 1842; } else { @@ -22616,7 +22990,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x11x0xxxxx011xxxxxxxxxxxxx ldff1d. */ - return 1751; + return 1798; } } } @@ -22634,7 +23008,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx011000xxxxxxxxxx addhnb. */ - return 2152; + return 2199; } else { @@ -22642,7 +23016,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx011100xxxxxxxxxx subhnb. */ - return 2350; + return 2397; } } else @@ -22653,7 +23027,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx011010xxxxxxxxxx raddhnb. */ - return 2218; + return 2265; } else { @@ -22661,7 +23035,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx011110xxxxxxxxxx rsubhnb. */ - return 2222; + return 2269; } } } @@ -22675,7 +23049,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx011001xxxxxxxxxx addhnt. */ - return 2153; + return 2200; } else { @@ -22683,7 +23057,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx011101xxxxxxxxxx subhnt. */ - return 2351; + return 2398; } } else @@ -22694,7 +23068,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx011011xxxxxxxxxx raddhnt. */ - return 2219; + return 2266; } else { @@ -22702,7 +23076,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx011111xxxxxxxxxx rsubhnt. */ - return 2223; + return 2270; } } } @@ -22715,7 +23089,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x10x1xxxxx011xxxxxxxxxxxxx ldff1w. */ - return 1796; + return 1843; } else { @@ -22723,7 +23097,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x11x1xxxxx011xxxxxxxxxxxxx ldff1d. */ - return 1752; + return 1799; } } } @@ -22744,7 +23118,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx111000xxxxxxxxxx ssra. */ - return 2336; + return 2383; } else { @@ -22752,7 +23126,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx111100xxxxxxxxxx sri. */ - return 2329; + return 2376; } } else @@ -22763,7 +23137,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx111010xxxxxxxxxx srsra. */ - return 2333; + return 2380; } else { @@ -22771,7 +23145,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx111110xxxxxxxxxx saba. */ - return 2224; + return 2271; } } } @@ -22785,7 +23159,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx111001xxxxxxxxxx usra. */ - return 2413; + return 2460; } else { @@ -22793,7 +23167,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx111101xxxxxxxxxx sli. */ - return 2242; + return 2289; } } else @@ -22804,7 +23178,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx111011xxxxxxxxxx ursra. */ - return 2409; + return 2456; } else { @@ -22812,7 +23186,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx0xxxxx111111xxxxxxxxxx uaba. */ - return 2355; + return 2402; } } } @@ -22827,7 +23201,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1000xxxxx111xxxxxxxxxxxxx prfw. */ - return 1893; + return 1940; } else { @@ -22835,7 +23209,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1100xxxxx111xxxxxxxxxxxxx prfd. */ - return 1879; + return 1926; } } else @@ -22846,7 +23220,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1010xxxxx111xxxxxxxxxxxxx ldff1w. */ - return 1797; + return 1844; } else { @@ -22854,7 +23228,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1110xxxxx111xxxxxxxxxxxxx ldff1d. */ - return 1753; + return 1800; } } } @@ -22869,73 +23243,183 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 10) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 010001x1001xxx001110x0xxxxxxxxxx - aesmc. */ - return 2434; + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxx00111000xxxxxxxxxx + aesmc. */ + return 2481; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxx10111000xxxxxxxxxx + aese. */ + return 2479; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 010001x1001xxx101110x0xxxxxxxxxx - aese. */ - return 2432; + 010001x1001xxxx1111000xxxxxxxxxx + sm4e. */ + return 2476; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 010001x1001xxxx11110x0xxxxxxxxxx - sm4e. */ - return 2429; + 010001x1001xxxxx111100xxxxxxxxxx + sm4ekey. */ + return 2477; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 010001x1001xxxxx1111x0xxxxxxxxxx - sm4ekey. */ - return 2430; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xx0x0111010xxxxxxxxxx + aese. */ + return 2494; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xx1x0111010xxxxxxxxxx + aese. */ + return 2495; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xx0x1111010xxxxxxxxxx + aesemc. */ + return 2492; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xx1x1111010xxxxxxxxxx + aesemc. */ + return 2493; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxxxx111110xxxxxxxxxx + pmull. */ + return 2497; + } } } else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 010001x1001xxx0x1110x1xxxxxxxxxx - aesimc. */ - return 2433; + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxx0x111001xxxxxxxxxx + aesimc. */ + return 2480; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxx1x111001xxxxxxxxxx + aesd. */ + return 2478; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 010001x1001xxx1x1110x1xxxxxxxxxx - aesd. */ - return 2431; + 010001x1001xxxxx111101xxxxxxxxxx + rax1. */ + return 2484; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 010001x1001xxxxx1111x1xxxxxxxxxx - rax1. */ - return 2437; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xx0x0111011xxxxxxxxxx + aesd. */ + return 2490; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xx1x0111011xxxxxxxxxx + aesd. */ + return 2491; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xx0x1111011xxxxxxxxxx + aesdimc. */ + return 2488; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xx1x1111011xxxxxxxxxx + aesdimc. */ + return 2489; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxxxx111111xxxxxxxxxx + pmlal. */ + return 2496; + } } } } @@ -22945,7 +23429,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x1001xxxxx111xxxxxxxxxxxxx ldff1w. */ - return 1800; + return 1847; } } else @@ -22954,7 +23438,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x1101xxxxx111xxxxxxxxxxxxx ldff1d. */ - return 1755; + return 1802; } } else @@ -22965,7 +23449,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x1011xxxxx111xxxxxxxxxxxxx ldff1w. */ - return 1798; + return 1845; } else { @@ -22973,7 +23457,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10001x1111xxxxx111xxxxxxxxxxxxx ldff1d. */ - return 1754; + return 1801; } } } @@ -23002,7 +23486,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx0xxxxx000xxxxxxxx0xxxx cmpge. */ - return 1439; + return 1486; } else { @@ -23010,7 +23494,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx0xxxxx000xxxxxxxx1xxxx cmpgt. */ - return 1442; + return 1489; } } else @@ -23021,7 +23505,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x0xxxxx000xxxxxxxxxxxxx ld1rqw. */ - return 1666; + return 1713; } else { @@ -23029,7 +23513,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x0xxxxx000xxxxxxxxxxxxx ld1rqd. */ - return 1662; + return 1709; } } } @@ -23049,7 +23533,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000000xxxxx0xxxx whilege. */ - return 2418; + return 2465; } else { @@ -23057,7 +23541,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000100xxxxx0xxxx whilege. */ - return 2419; + return 2466; } } else @@ -23068,7 +23552,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000010xxxxx0xxxx whilehs. */ - return 2424; + return 2471; } else { @@ -23076,7 +23560,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000110xxxxx0xxxx whilehs. */ - return 2425; + return 2472; } } } @@ -23090,7 +23574,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000001xxxxx0xxxx whilelt. */ - return 2130; + return 2177; } else { @@ -23098,7 +23582,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000101xxxxx0xxxx whilelt. */ - return 2131; + return 2178; } } else @@ -23109,7 +23593,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000011xxxxx0xxxx whilelo. */ - return 2126; + return 2173; } else { @@ -23117,7 +23601,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000111xxxxx0xxxx whilelo. */ - return 2127; + return 2174; } } } @@ -23134,7 +23618,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000000xxxxx1xxxx whilegt. */ - return 2420; + return 2467; } else { @@ -23142,7 +23626,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000100xxxxx1xxxx whilegt. */ - return 2421; + return 2468; } } else @@ -23153,7 +23637,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000010xxxxx1xxxx whilehi. */ - return 2422; + return 2469; } else { @@ -23161,7 +23645,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000110xxxxx1xxxx whilehi. */ - return 2423; + return 2470; } } } @@ -23175,7 +23659,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000001xxxxx1xxxx whilele. */ - return 2124; + return 2171; } else { @@ -23183,7 +23667,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000101xxxxx1xxxx whilele. */ - return 2125; + return 2172; } } else @@ -23194,7 +23678,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000011xxxxx1xxxx whilels. */ - return 2128; + return 2175; } else { @@ -23202,7 +23686,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx000111xxxxx1xxxx whilels. */ - return 2129; + return 2176; } } } @@ -23216,7 +23700,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x1xxxxx000xxxxxxxxxxxxx ld1row. */ - return 3142; + return 3199; } else { @@ -23224,7 +23708,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x1xxxxx000xxxxxxxxxxxxx ld1rod. */ - return 3143; + return 3200; } } } @@ -23243,7 +23727,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx000x00xxxxxxxxxx fadd. */ - return 1497; + return 1544; } else { @@ -23253,7 +23737,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx000010xxxxxxxxxx fmul. */ - return 1564; + return 1611; } else { @@ -23261,7 +23745,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx000110xxxxxxxxxx frecps. */ - return 1577; + return 1624; } } } @@ -23273,7 +23757,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx000x01xxxxxxxxxx fsub. */ - return 1590; + return 1637; } else { @@ -23283,7 +23767,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx000011xxxxxxxxxx ftsmul. */ - return 1596; + return 1643; } else { @@ -23291,7 +23775,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx000111xxxxxxxxxx frsqrts. */ - return 1587; + return 1634; } } } @@ -23302,7 +23786,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx1xxxxx000xxxxxxxxxxxxx fmla. */ - return 1555; + return 1602; } } else @@ -23311,7 +23795,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1xxxxxxxx000xxxxxxxxxxxxx str. */ - return 2044; + return 2091; } } } @@ -23329,7 +23813,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx0xxxxx001xxxxxxxx0xxxx cmplt. */ - return 1456; + return 1503; } else { @@ -23337,7 +23821,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx0xxxxx001xxxxxxxx1xxxx cmple. */ - return 1450; + return 1497; } } else @@ -23350,7 +23834,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x00xxxx001xxxxxxxxxxxxx ld1rqw. */ - return 1665; + return 1712; } else { @@ -23358,7 +23842,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x00xxxx001xxxxxxxxxxxxx ld1rqd. */ - return 1661; + return 1708; } } else @@ -23369,7 +23853,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x01xxxx001xxxxxxxxxxxxx ld1w. */ - return 3508; + return 3565; } else { @@ -23377,7 +23861,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x01xxxx001xxxxxxxxxxxxx ld1d. */ - return 3506; + return 3563; } } } @@ -23400,7 +23884,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000000001xxxxxxxxxxxxx faddv. */ - return 1501; + return 1548; } else { @@ -23410,7 +23894,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx010000001xxxxxxxx0xxxx fcmge. */ - return 1508; + return 1555; } else { @@ -23418,7 +23902,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx010000001xxxxxxxx1xxxx fcmgt. */ - return 1510; + return 1557; } } } @@ -23434,7 +23918,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001000001x00xxxxxxxxxx f1cvt. */ - return 3545; + return 3602; } else { @@ -23442,7 +23926,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001000001x10xxxxxxxxxx bf1cvt. */ - return 3541; + return 3598; } } else @@ -23453,7 +23937,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001000001x01xxxxxxxxxx f2cvt. */ - return 3546; + return 3603; } else { @@ -23461,7 +23945,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001000001x11xxxxxxxxxx bf2cvt. */ - return 3542; + return 3599; } } } @@ -23471,7 +23955,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx011000001xxxxxxxxxxxxx fadda. */ - return 1500; + return 1547; } } } @@ -23481,7 +23965,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xx100001xxxxxxxxxxxxx fmaxnmv. */ - return 1547; + return 1594; } } else @@ -23494,7 +23978,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x0010001xxxxxxxxxxxxx fcmeq. */ - return 1506; + return 1553; } else { @@ -23506,7 +23990,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1010001x00xxxxxxxxxx fcvtn. */ - return 3550; + return 3607; } else { @@ -23514,7 +23998,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1010001x10xxxxxxxxxx bfcvtn. */ - return 3549; + return 3606; } } else @@ -23525,7 +24009,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1010001x01xxxxxxxxxx fcvtnb. */ - return 3551; + return 3608; } else { @@ -23533,7 +24017,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1010001x11xxxxxxxxxx fcvtnt. */ - return 3552; + return 3609; } } } @@ -23546,7 +24030,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x0110001xxxxxxxxxxxxx fmaxv. */ - return 1548; + return 1595; } else { @@ -23554,7 +24038,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1110001xxxxxxxxxxxxx frecpe. */ - return 1576; + return 1623; } } } @@ -23573,7 +24057,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x0001001xxxxxxxx0xxxx fcmlt. */ - return 1513; + return 1560; } else { @@ -23581,7 +24065,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x0001001xxxxxxxx1xxxx fcmle. */ - return 1512; + return 1559; } } else @@ -23594,7 +24078,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1001001x00xxxxxxxxxx f1cvtlt. */ - return 3547; + return 3604; } else { @@ -23602,7 +24086,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1001001x10xxxxxxxxxx bf1cvtlt. */ - return 3543; + return 3600; } } else @@ -23613,7 +24097,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1001001x01xxxxxxxxxx f2cvtlt. */ - return 3548; + return 3605; } else { @@ -23621,7 +24105,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1001001x11xxxxxxxxxx bf2cvtlt. */ - return 3544; + return 3601; } } } @@ -23632,7 +24116,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xx101001xxxxxxxxxxxxx fminnmv. */ - return 1553; + return 1600; } } else @@ -23643,7 +24127,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xx011001xxxxxxxxxxxxx fcmne. */ - return 1514; + return 1561; } else { @@ -23653,7 +24137,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x0111001xxxxxxxxxxxxx fminv. */ - return 1554; + return 1601; } else { @@ -23661,7 +24145,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1111001xxxxxxxxxxxxx frsqrte. */ - return 1586; + return 1633; } } } @@ -23677,7 +24161,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1000xxxxx001xxxxxxxxxxxxx stnt1w. */ - return 2349; + return 2396; } else { @@ -23685,7 +24169,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1100xxxxx001xxxxxxxxxxxxx stnt1d. */ - return 2345; + return 2392; } } else @@ -23694,7 +24178,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1x10xxxxx001xxxxxxxxxxxxx stnt1w. */ - return 2348; + return 2395; } } } @@ -23713,7 +24197,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx0010xxxxxxx0xxxx ctermeq. */ - return 1471; + return 1518; } else { @@ -23721,7 +24205,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx0011xxxxxxx0xxxx whilewr. */ - return 2427; + return 2474; } } else @@ -23732,7 +24216,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx0010xxxxxxx1xxxx ctermne. */ - return 1472; + return 1519; } else { @@ -23740,7 +24224,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx0011xxxxxxx1xxxx whilerw. */ - return 2426; + return 2473; } } } @@ -23752,7 +24236,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x1xxxxx001xxxxxxxxxxxxx ld1row. */ - return 3146; + return 3203; } else { @@ -23760,7 +24244,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x1xxxxx001xxxxxxxxxxxxx ld1rod. */ - return 3147; + return 3204; } } } @@ -23770,7 +24254,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x1xx1xxxxx001xxxxxxxxxxxxx fmls. */ - return 1559; + return 1606; } } } @@ -23797,7 +24281,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x10000xxxx01xxxx0xxxx0xxxx and. */ - return 1402; + return 1449; } else { @@ -23805,7 +24289,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x10000xxxx01xxxx0xxxx1xxxx bic. */ - return 1414; + return 1461; } } else @@ -23816,7 +24300,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x100010xxx01xxxx0xxxxxxxxx brka. */ - return 1416; + return 1463; } else { @@ -23824,7 +24308,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x100011xxx01xxxx0xxxxxxxxx brkn. */ - return 1420; + return 1467; } } } @@ -23836,7 +24320,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1000xxxxx01xxxx1xxxx0xxxx eor. */ - return 1489; + return 1536; } else { @@ -23844,7 +24328,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1000xxxxx01xxxx1xxxx1xxxx sel. */ - return 1924; + return 1971; } } } @@ -23856,7 +24340,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1000xxxxx010xxxxxxxxxxxxx ld1sh. */ - return 1688; + return 1735; } else { @@ -23864,7 +24348,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1000xxxxx011xxxxxxxxxxxxx ldff1sh. */ - return 1777; + return 1824; } } } @@ -23882,7 +24366,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x11000xxxx01xxxx0xxxx0xxxx orr. */ - return 1859; + return 1906; } else { @@ -23890,7 +24374,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x11000xxxx01xxxx0xxxx1xxxx orn. */ - return 1854; + return 1901; } } else @@ -23899,7 +24383,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x11001xxxx01xxxx0xxxxxxxxx brkb. */ - return 1418; + return 1465; } } else @@ -23910,7 +24394,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1100xxxxx01xxxx1xxxx0xxxx nor. */ - return 1851; + return 1898; } else { @@ -23918,7 +24402,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1100xxxxx01xxxx1xxxx1xxxx nand. */ - return 1848; + return 1895; } } } @@ -23930,7 +24414,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1100xxxxx010xxxxxxxxxxxxx ld1sb. */ - return 1676; + return 1723; } else { @@ -23938,7 +24422,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1100xxxxx011xxxxxxxxxxxxx ldff1sb. */ - return 1768; + return 1815; } } } @@ -23959,7 +24443,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x10100xxxx01xxxx0xxxx0xxxx ands. */ - return 1403; + return 1450; } else { @@ -23969,7 +24453,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x101010xxx01xxxx0xxxx0xxxx brkas. */ - return 1417; + return 1464; } else { @@ -23977,7 +24461,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x101011xxx01xxxx0xxxx0xxxx brkns. */ - return 1421; + return 1468; } } } @@ -23987,7 +24471,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1010xxxxx01xxxx1xxxx0xxxx eors. */ - return 1490; + return 1537; } } else @@ -23996,7 +24480,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1010xxxxx01xxxxxxxxx1xxxx bics. */ - return 1415; + return 1462; } } else @@ -24007,7 +24491,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1010xxxxx010xxxxxxxxxxxxx ld1w. */ - return 1707; + return 1754; } else { @@ -24015,7 +24499,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1010xxxxx011xxxxxxxxxxxxx ldff1w. */ - return 1793; + return 1840; } } } @@ -24033,7 +24517,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x11100xxxx01xxxx0xxxx0xxxx orrs. */ - return 1860; + return 1907; } else { @@ -24041,7 +24525,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x11101xxxx01xxxx0xxxx0xxxx brkbs. */ - return 1419; + return 1466; } } else @@ -24050,7 +24534,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1110xxxxx01xxxx1xxxx0xxxx nors. */ - return 1852; + return 1899; } } else @@ -24061,7 +24545,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1110xxxxx01xxxx0xxxx1xxxx orns. */ - return 1855; + return 1902; } else { @@ -24069,7 +24553,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1110xxxxx01xxxx1xxxx1xxxx nands. */ - return 1849; + return 1896; } } } @@ -24081,7 +24565,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1110xxxxx010xxxxxxxxxxxxx ld1sb. */ - return 1678; + return 1725; } else { @@ -24089,7 +24573,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1110xxxxx011xxxxxxxxxxxxx ldff1sb. */ - return 1770; + return 1817; } } } @@ -24105,7 +24589,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01xxxxxxxxx0xxxx psel. */ - return 2492; + return 2549; } else { @@ -24121,7 +24605,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x000xxxxx10xxx whilege. */ - return 2975; + return 3032; } else { @@ -24129,7 +24613,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x000xxxxx11xxx whilegt. */ - return 2976; + return 3033; } } else @@ -24142,7 +24626,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx010100xxxxx1xxx0 whilege. */ - return 2512; + return 2569; } else { @@ -24150,7 +24634,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx010100xxxxx1xxx1 whilegt. */ - return 2513; + return 2570; } } else @@ -24159,7 +24643,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx011100xxxxx1xxxx pext. */ - return 2716; + return 2773; } } } @@ -24173,7 +24657,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x010xxxxx10xxx whilehs. */ - return 2978; + return 3035; } else { @@ -24181,7 +24665,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x010xxxxx11xxx whilehi. */ - return 2977; + return 3034; } } else @@ -24194,7 +24678,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx010110xxxxx1xxx0 whilehs. */ - return 2515; + return 2572; } else { @@ -24202,7 +24686,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx010110xxxxx1xxx1 whilehi. */ - return 2514; + return 2571; } } else @@ -24211,7 +24695,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx011110xxxxx1xxxx ptrue. */ - return 2718; + return 2775; } } } @@ -24228,7 +24712,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x001xxxxx10xxx whilelt. */ - return 2982; + return 3039; } else { @@ -24236,7 +24720,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x001xxxxx11xxx whilele. */ - return 2979; + return 3036; } } else @@ -24249,7 +24733,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx010101xxxxx1xxx0 whilelt. */ - return 2519; + return 2576; } else { @@ -24257,7 +24741,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx010101xxxxx1xxx1 whilele. */ - return 2516; + return 2573; } } else @@ -24266,7 +24750,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx011101xxxxx1xxxx pext. */ - return 2717; + return 2774; } } } @@ -24280,7 +24764,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x011xxxxx10xxx whilelo. */ - return 2980; + return 3037; } else { @@ -24288,7 +24772,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x011xxxxx11xxx whilels. */ - return 2981; + return 3038; } } else @@ -24299,7 +24783,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x111xxxxx1xxx0 whilelo. */ - return 2517; + return 2574; } else { @@ -24307,7 +24791,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x111xxxxx1xxx1 whilels. */ - return 2518; + return 2575; } } } @@ -24326,7 +24810,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1001xxxxx010xxxxxxxxxxxxx ld1sh. */ - return 1689; + return 1736; } else { @@ -24334,7 +24818,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1101xxxxx010xxxxxxxxxxxxx ld1sb. */ - return 1677; + return 1724; } } else @@ -24345,7 +24829,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1011xxxxx010xxxxxxxxxxxxx ld1w. */ - return 1708; + return 1755; } else { @@ -24353,7 +24837,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1111xxxxx010xxxxxxxxxxxxx ld1d. */ - return 1630; + return 1677; } } } @@ -24367,7 +24851,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1001xxxxx011xxxxxxxxxxxxx ldff1sh. */ - return 1778; + return 1825; } else { @@ -24375,7 +24859,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1101xxxxx011xxxxxxxxxxxxx ldff1sb. */ - return 1769; + return 1816; } } else @@ -24386,7 +24870,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1011xxxxx011xxxxxxxxxxxxx ldff1w. */ - return 1794; + return 1841; } else { @@ -24394,7 +24878,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1111xxxxx011xxxxxxxxxxxxx ldff1d. */ - return 1750; + return 1797; } } } @@ -24415,7 +24899,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx010xxxxxxxx0xxxx fcmge. */ - return 1509; + return 1556; } else { @@ -24423,7 +24907,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx010xxxxxxxx1xxxx fcmgt. */ - return 1511; + return 1558; } } else @@ -24432,7 +24916,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx1xxxxx010xxxxxxxxxxxxx fnmla. */ - return 1573; + return 1620; } } else @@ -24445,7 +24929,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x100xxxxxx010xxxxxxxxxxxxx st1w. */ - return 3513; + return 3570; } else { @@ -24453,7 +24937,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x110xxxxxx010xxxxxxxxxxxxx str. */ - return 2046; + return 2093; } } else @@ -24466,7 +24950,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1010xxxxx010xxxxxxxxxxxxx st1w. */ - return 2004; + return 2051; } else { @@ -24474,7 +24958,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1110xxxxx010xxxxxxxxxxxxx st1d. */ - return 3511; + return 3568; } } else @@ -24485,7 +24969,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1011xxxxx010xxxxxxxxxxxxx st1w. */ - return 2006; + return 2053; } else { @@ -24493,7 +24977,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1111xxxxx010xxxxxxxxxxxxx st1d. */ - return 1983; + return 2030; } } } @@ -24511,7 +24995,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx011xxxxxxxx0xxxx fcmeq. */ - return 1507; + return 1554; } else { @@ -24519,7 +25003,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx011xxxxxxxx1xxxx fcmne. */ - return 1515; + return 1562; } } else @@ -24532,7 +25016,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1000xxxxx011xxxxxxxxxxxxx stnt1w. */ - return 2042; + return 2089; } else { @@ -24540,7 +25024,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1100xxxxx011xxxxxxxxxxxxx stnt1d. */ - return 2038; + return 2085; } } else @@ -24551,7 +25035,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1010xxxxx011xxxxxxxxxxxxx st3w. */ - return 2026; + return 2073; } else { @@ -24559,7 +25043,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1110xxxxx011xxxxxxxxxxxxx st3d. */ - return 2022; + return 2069; } } } @@ -24572,7 +25056,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx1xxxxx011xxxxxxxxxxxxx fnmls. */ - return 1574; + return 1621; } else { @@ -24584,7 +25068,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1001xxxxx011xxxxxxxxxxxxx st2w. */ - return 2018; + return 2065; } else { @@ -24592,7 +25076,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1101xxxxx011xxxxxxxxxxxxx st2d. */ - return 2014; + return 2061; } } else @@ -24603,7 +25087,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1011xxxxx011xxxxxxxxxxxxx st4w. */ - return 2034; + return 2081; } else { @@ -24611,7 +25095,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1111xxxxx011xxxxxxxxxxxxx st4d. */ - return 2030; + return 2077; } } } @@ -24638,7 +25122,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx0xxxxx100xxxxxxxx0xxxx cmpeq. */ - return 1436; + return 1483; } else { @@ -24646,7 +25130,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx0xxxxx100xxxxxxxx1xxxx cmpne. */ - return 1459; + return 1506; } } else @@ -24657,7 +25141,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x0xxxxx100xxxxxxxxxxxxx ld1w. */ - return 3509; + return 3566; } else { @@ -24665,7 +25149,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x0xxxxx100xxxxxxxxxxxxx ld1d. */ - return 3507; + return 3564; } } } @@ -24681,7 +25165,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01001x10000xxxx101xxxxxxxxxxxxx ld1sh. */ - return 1695; + return 1742; } else { @@ -24689,7 +25173,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01001x11000xxxx101xxxxxxxxxxxxx ld1sb. */ - return 1682; + return 1729; } } else @@ -24700,7 +25184,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01001x10100xxxx101xxxxxxxxxxxxx ld1w. */ - return 1714; + return 1761; } else { @@ -24708,7 +25192,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01001x11100xxxx101xxxxxxxxxxxxx ld1sb. */ - return 1684; + return 1731; } } } @@ -24722,7 +25206,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01001x10001xxxx101xxxxxxxxxxxxx ldnf1sh. */ - return 1812; + return 1859; } else { @@ -24730,7 +25214,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01001x11001xxxx101xxxxxxxxxxxxx ldnf1sb. */ - return 1809; + return 1856; } } else @@ -24741,7 +25225,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01001x10101xxxx101xxxxxxxxxxxxx ldnf1w. */ - return 1815; + return 1862; } else { @@ -24749,7 +25233,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01001x11101xxxx101xxxxxxxxxxxxx ldnf1sb. */ - return 1811; + return 1858; } } } @@ -24769,7 +25253,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1x000xxxx11xxxxxxxxx0xxxx brkpa. */ - return 1422; + return 1469; } else { @@ -24777,7 +25261,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1x100xxxx11xxxxxxxxx0xxxx brkpas. */ - return 1423; + return 1470; } } else @@ -24790,7 +25274,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx010xx011xxxxxxxxx0xxxx ptest. */ - return 1894; + return 1941; } else { @@ -24804,7 +25288,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx011xx01100x0xxxxx0xxxx pfirst. */ - return 1864; + return 1911; } else { @@ -24812,7 +25296,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx011xx01110x0xxxxx0xxxx ptrue. */ - return 1895; + return 1942; } } else @@ -24823,7 +25307,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1x0011xx011x1x0xxxxx0xxxx rdffr. */ - return 1901; + return 1948; } else { @@ -24831,7 +25315,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1x1011xx011x1x0xxxxx0xxxx rdffrs. */ - return 1902; + return 1949; } } } @@ -24841,7 +25325,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx011xx011xxx1xxxxx0xxxx pfalse. */ - return 1862; + return 1909; } } } @@ -24855,7 +25339,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx01xxx111x0x0xxxxx0xxxx ptrues. */ - return 1896; + return 1943; } else { @@ -24863,7 +25347,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx01xxx111x1x0xxxxx0xxxx rdffr. */ - return 1900; + return 1947; } } else @@ -24872,7 +25356,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx01xxx111xxx1xxxxx0xxxx pnext. */ - return 1865; + return 1912; } } } @@ -24885,7 +25369,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1x00xxxxx11xxxxxxxxx1xxxx brkpb. */ - return 1424; + return 1471; } else { @@ -24893,7 +25377,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1x10xxxxx11xxxxxxxxx1xxxx brkpbs. */ - return 1425; + return 1472; } } } @@ -24909,7 +25393,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1000xxxxx110xxxxxxxxxxxxx ldnt1w. */ - return 1823; + return 1870; } else { @@ -24917,7 +25401,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1100xxxxx110xxxxxxxxxxxxx ldnt1d. */ - return 1819; + return 1866; } } else @@ -24928,7 +25412,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1010xxxxx110xxxxxxxxxxxxx ld3w. */ - return 1731; + return 1778; } else { @@ -24936,7 +25420,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1110xxxxx110xxxxxxxxxxxxx ld3d. */ - return 1727; + return 1774; } } } @@ -24952,7 +25436,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10000xxxx111xxxxxxxxxxxxx ldnt1w. */ - return 1824; + return 1871; } else { @@ -24960,7 +25444,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11000xxxx111xxxxxxxxxxxxx ldnt1d. */ - return 1820; + return 1867; } } else @@ -24971,7 +25455,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10100xxxx111xxxxxxxxxxxxx ld3w. */ - return 1732; + return 1779; } else { @@ -24979,7 +25463,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11100xxxx111xxxxxxxxxxxxx ld3d. */ - return 1728; + return 1775; } } } @@ -24991,7 +25475,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x01xxxx111xxxxxxxxxxxxx ld3q. */ - return 3516; + return 3573; } else { @@ -24999,7 +25483,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x01xxxx111xxxxxxxxxxxxx ld4q. */ - return 3517; + return 3574; } } } @@ -25028,7 +25512,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000000100xxxxxxxxxxxxx fadd. */ - return 1498; + return 1545; } else { @@ -25036,7 +25520,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000100100xxxxxxxxxxxxx fmaxnm. */ - return 1545; + return 1592; } } else @@ -25047,7 +25531,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000010100xxxxxxxxxxxxx fmul. */ - return 1565; + return 1612; } else { @@ -25055,7 +25539,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000110100xxxxxxxxxxxxx fmax. */ - return 1543; + return 1590; } } } @@ -25069,7 +25553,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000001100xxxxxxxxxxxxx fsub. */ - return 1591; + return 1638; } else { @@ -25077,7 +25561,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000101100xxxxxxxxxxxxx fminnm. */ - return 1551; + return 1598; } } else @@ -25088,7 +25572,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000011100xxxxxxxxxxxxx fsubr. */ - return 1593; + return 1640; } else { @@ -25096,7 +25580,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000111100xxxxxxxxxxxxx fmin. */ - return 1549; + return 1596; } } } @@ -25107,7 +25591,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx010xxx100xxxxxxxxxxxxx ftmad. */ - return 1595; + return 1642; } } else @@ -25124,7 +25608,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001000100xxxxxxxxxxxxx fabd. */ - return 1493; + return 1540; } else { @@ -25132,7 +25616,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx011000100xxxxxxxxxxxxx fadd. */ - return 1499; + return 1546; } } else @@ -25143,7 +25627,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001100100xxxxxxxxxxxxx fdivr. */ - return 1539; + return 1586; } else { @@ -25151,7 +25635,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx011100100xxxxxxxxxxxxx fmaxnm. */ - return 1546; + return 1593; } } } @@ -25165,7 +25649,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001010100xxxxxxxxxxxxx fmulx. */ - return 1570; + return 1617; } else { @@ -25173,7 +25657,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx011010100xxxxxxxxxxxxx fmul. */ - return 1566; + return 1613; } } else @@ -25184,7 +25668,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001110100xxxxxxxxxxxxx famax. */ - return 1262; + return 1308; } else { @@ -25192,7 +25676,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx011110100xxxxxxxxxxxxx fmax. */ - return 1544; + return 1591; } } } @@ -25209,7 +25693,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001001100xxxxxxxxxxxxx fscale. */ - return 1588; + return 1635; } else { @@ -25217,7 +25701,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx011001100xxxxxxxxxxxxx fsub. */ - return 1592; + return 1639; } } else @@ -25228,7 +25712,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001101100xxxxxxxxxxxxx fdiv. */ - return 1538; + return 1585; } else { @@ -25236,7 +25720,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx011101100xxxxxxxxxxxxx fminnm. */ - return 1552; + return 1599; } } } @@ -25248,7 +25732,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1011100xxxxxxxxxxxxx fsubr. */ - return 1594; + return 1641; } else { @@ -25258,7 +25742,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001111100xxxxxxxxxxxxx famin. */ - return 1263; + return 1309; } else { @@ -25266,7 +25750,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx011111100xxxxxxxxxxxxx fmin. */ - return 1550; + return 1597; } } } @@ -25281,7 +25765,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx110xxxxxxxx0xxxx fcmuo. */ - return 1516; + return 1563; } else { @@ -25289,7 +25773,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx110xxxxxxxx1xxxx facge. */ - return 1495; + return 1542; } } } @@ -25303,7 +25787,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1000xxxxx1x0xxxxxxxxxxxxx st1w. */ - return 2000; + return 2047; } else { @@ -25311,7 +25795,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1100xxxxx1x0xxxxxxxxxxxxx st1d. */ - return 1979; + return 2026; } } else @@ -25320,7 +25804,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1x10xxxxx1x0xxxxxxxxxxxxx st1w. */ - return 2005; + return 2052; } } } @@ -25344,7 +25828,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000000101xxxxxxxxxxxxx frintn. */ - return 1582; + return 1629; } else { @@ -25352,7 +25836,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000010101xxxxxxxxxxxxx frintm. */ - return 1581; + return 1628; } } else @@ -25363,7 +25847,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x00100x0101xxxxxxxxxxxxx frint32z. */ - return 3702; + return 3759; } else { @@ -25373,7 +25857,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x1010000101xxxxxxxxxxxxx scvtf. */ - return 1914; + return 1961; } else { @@ -25381,7 +25865,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x1010010101xxxxxxxxxxxxx scvtf. */ - return 1911; + return 1958; } } } @@ -25396,7 +25880,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000100101xxxxxxxxxxxxx frinta. */ - return 1579; + return 1626; } else { @@ -25404,7 +25888,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000110101xxxxxxxxxxxxx frintx. */ - return 1584; + return 1631; } } else @@ -25417,7 +25901,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1000101x0101xxxxxxxxxxxxx frint64z. */ - return 3706; + return 3763; } else { @@ -25425,7 +25909,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1100101x0101xxxxxxxxxxxxx scvtf. */ - return 1913; + return 1960; } } else @@ -25438,7 +25922,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x101010100101xxxxxxxxxxxxx scvtf. */ - return 1912; + return 1959; } else { @@ -25446,7 +25930,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x111010100101xxxxxxxxxxxxx scvtf. */ - return 1916; + return 1963; } } else @@ -25457,7 +25941,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x101010110101xxxxxxxxxxxxx scvtf. */ - return 1915; + return 1962; } else { @@ -25465,7 +25949,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x111010110101xxxxxxxxxxxxx scvtf. */ - return 1917; + return 1964; } } } @@ -25486,7 +25970,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x0001000101xxxxxxxxxxxxx fcvt. */ - return 1518; + return 1565; } else { @@ -25494,7 +25978,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x1001000101xxxxxxxxxxxxx fcvt. */ - return 1520; + return 1567; } } else @@ -25503,7 +25987,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001100101xxxxxxxxxxxxx frecpx. */ - return 1578; + return 1625; } } else @@ -25516,7 +26000,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x100001x10101xxxxxxxxxxxxx fcvtx. */ - return 2175; + return 2222; } else { @@ -25524,7 +26008,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x110001x10101xxxxxxxxxxxxx bfcvt. */ - return 3163; + return 3220; } } else @@ -25533,7 +26017,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x1001x10101xxxxxxxxxxxxx fcvt. */ - return 1522; + return 1569; } } } @@ -25547,7 +26031,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x100011xx0101xxxxxxxxxxxxx flogb. */ - return 2177; + return 2224; } else { @@ -25555,7 +26039,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x110011xx0101xxxxxxxxxxxxx fcvtzs. */ - return 1527; + return 1574; } } else @@ -25568,7 +26052,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x1011000101xxxxxxxxxxxxx fcvtzs. */ - return 1528; + return 1575; } else { @@ -25578,7 +26062,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x101011100101xxxxxxxxxxxxx fcvtzs. */ - return 1525; + return 1572; } else { @@ -25586,7 +26070,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x111011100101xxxxxxxxxxxxx fcvtzs. */ - return 1529; + return 1576; } } } @@ -25598,7 +26082,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x1011010101xxxxxxxxxxxxx fcvtzs. */ - return 1524; + return 1571; } else { @@ -25608,7 +26092,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x101011110101xxxxxxxxxxxxx fcvtzs. */ - return 1526; + return 1573; } else { @@ -25616,7 +26100,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x111011110101xxxxxxxxxxxxx fcvtzs. */ - return 1530; + return 1577; } } } @@ -25638,7 +26122,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000001101xxxxxxxxxxxxx frintp. */ - return 1583; + return 1630; } else { @@ -25646,7 +26130,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx000011101xxxxxxxxxxxxx frintz. */ - return 1585; + return 1632; } } else @@ -25657,7 +26141,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x00100x1101xxxxxxxxxxxxx frint32x. */ - return 3700; + return 3757; } else { @@ -25667,7 +26151,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x1010001101xxxxxxxxxxxxx ucvtf. */ - return 2067; + return 2114; } else { @@ -25675,7 +26159,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x1010011101xxxxxxxxxxxxx ucvtf. */ - return 2064; + return 2111; } } } @@ -25692,7 +26176,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x0001001101xxxxxxxxxxxxx fcvt. */ - return 1519; + return 1566; } else { @@ -25700,7 +26184,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x1001001101xxxxxxxxxxxxx fcvt. */ - return 1521; + return 1568; } } else @@ -25709,7 +26193,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx011001101xxxxxxxxxxxxx fcvtzu. */ - return 1535; + return 1582; } } else @@ -25720,7 +26204,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001011101xxxxxxxxxxxxx fcvt. */ - return 1523; + return 1570; } else { @@ -25728,7 +26212,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx011011101xxxxxxxxxxxxx fcvtzu. */ - return 1531; + return 1578; } } } @@ -25743,7 +26227,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0001x1101xxxxxxxxxxxxx frinti. */ - return 1580; + return 1627; } else { @@ -25755,7 +26239,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1000101x1101xxxxxxxxxxxxx frint64x. */ - return 3704; + return 3761; } else { @@ -25763,7 +26247,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1100101x1101xxxxxxxxxxxxx ucvtf. */ - return 2066; + return 2113; } } else @@ -25776,7 +26260,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x101010101101xxxxxxxxxxxxx ucvtf. */ - return 2065; + return 2112; } else { @@ -25784,7 +26268,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x111010101101xxxxxxxxxxxxx ucvtf. */ - return 2069; + return 2116; } } else @@ -25795,7 +26279,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x101010111101xxxxxxxxxxxxx ucvtf. */ - return 2068; + return 2115; } else { @@ -25803,7 +26287,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x111010111101xxxxxxxxxxxxx ucvtf. */ - return 2070; + return 2117; } } } @@ -25819,7 +26303,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001101101xxxxxxxxxxxxx fsqrt. */ - return 1589; + return 1636; } else { @@ -25829,7 +26313,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1x0011101101xxxxxxxxxxxxx fcvtzu. */ - return 1534; + return 1581; } else { @@ -25839,7 +26323,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x101011101101xxxxxxxxxxxxx fcvtzu. */ - return 1532; + return 1579; } else { @@ -25847,7 +26331,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x111011101101xxxxxxxxxxxxx fcvtzu. */ - return 1536; + return 1583; } } } @@ -25860,7 +26344,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x10x0x1111101xxxxxxxxxxxxx fcvtzu. */ - return 1533; + return 1580; } else { @@ -25868,7 +26352,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x11x0x1111101xxxxxxxxxxxxx fcvtzu. */ - return 1537; + return 1584; } } } @@ -25885,7 +26369,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1000xxxxx101xxxxxxxxxxxxx st1w. */ - return 2001; + return 2048; } else { @@ -25893,7 +26377,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1100xxxxx101xxxxxxxxxxxxx st1d. */ - return 1980; + return 2027; } } else @@ -25904,7 +26388,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1010xxxxx101xxxxxxxxxxxxx st1w. */ - return 2008; + return 2055; } else { @@ -25912,7 +26396,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1110xxxxx101xxxxxxxxxxxxx st1d. */ - return 1984; + return 2031; } } } @@ -25925,7 +26409,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0xxxxx111xxxxxxxxxxxxx facgt. */ - return 1496; + return 1543; } else { @@ -25937,7 +26421,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1x000xxxx111xxxxxxxxxxxxx st1w. */ - return 3512; + return 3569; } else { @@ -25947,7 +26431,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x10100xxxx111xxxxxxxxxxxxx st1w. */ - return 2009; + return 2056; } else { @@ -25955,7 +26439,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x11100xxxx111xxxxxxxxxxxxx st1d. */ - return 3510; + return 3567; } } } @@ -25969,7 +26453,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x10001xxxx111xxxxxxxxxxxxx stnt1w. */ - return 2043; + return 2090; } else { @@ -25977,7 +26461,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x11001xxxx111xxxxxxxxxxxxx stnt1d. */ - return 2039; + return 2086; } } else @@ -25988,7 +26472,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x10101xxxx111xxxxxxxxxxxxx st3w. */ - return 2027; + return 2074; } else { @@ -25996,7 +26480,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x11101xxxx111xxxxxxxxxxxxx st3d. */ - return 2023; + return 2070; } } } @@ -26027,7 +26511,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x000010xxxx0xxxxxxxxx cntp. */ - return 1465; + return 1512; } else { @@ -26041,7 +26525,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x100010x0000xxxxxxxxx sqincp. */ - return 1958; + return 2005; } else { @@ -26049,7 +26533,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x100010x1000xxxxxxxxx wrffr. */ - return 2132; + return 2179; } } else @@ -26058,7 +26542,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x100010xx100xxxxxxxxx sqincp. */ - return 1960; + return 2007; } } else @@ -26067,7 +26551,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x100010xxx10xxxxxxxxx sqincp. */ - return 1959; + return 2006; } } } @@ -26081,7 +26565,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xx10010x00x0xxxxxxxxx incp. */ - return 1603; + return 1650; } else { @@ -26089,7 +26573,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xx10010x10x0xxxxxxxxx setffr. */ - return 1925; + return 1972; } } else @@ -26098,7 +26582,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xx10010xx1x0xxxxxxxxx incp. */ - return 1604; + return 1651; } } } @@ -26110,7 +26594,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x0x1010xxxx0xxxxxxxxx lastp. */ - return 3716; + return 3773; } else { @@ -26122,7 +26606,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x1x1010xx000xxxxxxxxx sqdecp. */ - return 1944; + return 1991; } else { @@ -26130,7 +26614,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x1x1010xx100xxxxxxxxx sqdecp. */ - return 1946; + return 1993; } } else @@ -26139,7 +26623,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x1x1010xxx10xxxxxxxxx sqdecp. */ - return 1945; + return 1992; } } } @@ -26156,7 +26640,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x000110xxxx0xxxxxxxxx firstp. */ - return 3696; + return 3753; } else { @@ -26168,7 +26652,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x100110xx000xxxxxxxxx uqincp. */ - return 2107; + return 2154; } else { @@ -26176,7 +26660,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x100110xx100xxxxxxxxx uqincp. */ - return 2108; + return 2155; } } else @@ -26185,7 +26669,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x100110xxx10xxxxxxxxx uqincp. */ - return 2109; + return 2156; } } } @@ -26197,7 +26681,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xx10110xx0x0xxxxxxxxx decp. */ - return 1478; + return 1525; } else { @@ -26205,7 +26689,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xx10110xx1x0xxxxxxxxx decp. */ - return 1479; + return 1526; } } } @@ -26219,7 +26703,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxx1110xx000xxxxxxxxx uqdecp. */ - return 2093; + return 2140; } else { @@ -26227,7 +26711,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxx1110xx100xxxxxxxxx uqdecp. */ - return 2094; + return 2141; } } else @@ -26236,7 +26720,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxx1110xxx10xxxxxxxxx uqdecp. */ - return 2095; + return 2142; } } } @@ -26247,7 +26731,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx10xxxx1xxxxxxxxx cntp. */ - return 2555; + return 2612; } } else @@ -26260,7 +26744,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x1xxxxx100xxxxxxxxxxxxx ld3q. */ - return 3519; + return 3576; } else { @@ -26268,7 +26752,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x1xxxxx100xxxxxxxxxxxxx ld4q. */ - return 3520; + return 3577; } } else @@ -26283,7 +26767,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10010xxxx101xxxxxxxxxxxxx ld1sh. */ - return 1696; + return 1743; } else { @@ -26291,7 +26775,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11010xxxx101xxxxxxxxxxxxx ld1sb. */ - return 1683; + return 1730; } } else @@ -26302,7 +26786,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10110xxxx101xxxxxxxxxxxxx ld1w. */ - return 1715; + return 1762; } else { @@ -26310,7 +26794,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11110xxxx101xxxxxxxxxxxxx ld1d. */ - return 1635; + return 1682; } } } @@ -26324,7 +26808,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10011xxxx101xxxxxxxxxxxxx ldnf1sh. */ - return 1813; + return 1860; } else { @@ -26332,7 +26816,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11011xxxx101xxxxxxxxxxxxx ldnf1sb. */ - return 1810; + return 1857; } } else @@ -26343,7 +26827,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10111xxxx101xxxxxxxxxxxxx ldnf1w. */ - return 1816; + return 1863; } else { @@ -26351,7 +26835,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11111xxxx101xxxxxxxxxxxxx ldnf1d. */ - return 1805; + return 1852; } } } @@ -26376,7 +26860,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx10000011xxxxxxxxxxxxxx add. */ - return 1392; + return 1439; } else { @@ -26384,7 +26868,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx11000011xxxxxxxxxxxxxx mul. */ - return 1846; + return 1893; } } else @@ -26395,7 +26879,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx10100011xxxxxxxxxxxxxx smax. */ - return 1926; + return 1973; } else { @@ -26403,7 +26887,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx11100011xxxxxxxxxxxxxx dup. */ - return 1484; + return 1531; } } } @@ -26413,7 +26897,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xx10011xxxxxxxxxxxxxx sqadd. */ - return 1935; + return 1982; } } else @@ -26424,7 +26908,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xx01011xxxxxxxxxxxxxx smin. */ - return 1929; + return 1976; } else { @@ -26432,7 +26916,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xx11011xxxxxxxxxxxxxx sqsub. */ - return 1965; + return 2012; } } } @@ -26448,7 +26932,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x000111xxxxxxxxxxxxxx sub. */ - return 2048; + return 2095; } else { @@ -26458,7 +26942,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx10100111xxxxxxxxxxxxxx umax. */ - return 2076; + return 2123; } else { @@ -26466,7 +26950,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx11100111xxxxxxxxxxxxxx fdup. */ - return 1540; + return 1587; } } } @@ -26476,7 +26960,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xx10111xxxxxxxxxxxxxx uqadd. */ - return 2084; + return 2131; } } else @@ -26489,7 +26973,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x001111xxxxxxxxxxxxxx subr. */ - return 2050; + return 2097; } else { @@ -26497,7 +26981,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1x101111xxxxxxxxxxxxxx umin. */ - return 2079; + return 2126; } } else @@ -26506,7 +26990,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xx11111xxxxxxxxxxxxxx uqsub. */ - return 2114; + return 2161; } } } @@ -26523,7 +27007,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1001xxxxx110xxxxxxxxxxxxx ld2w. */ - return 1723; + return 1770; } else { @@ -26531,7 +27015,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1101xxxxx110xxxxxxxxxxxxx ld2d. */ - return 1719; + return 1766; } } else @@ -26542,7 +27026,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1011xxxxx110xxxxxxxxxxxxx ld4w. */ - return 1739; + return 1786; } else { @@ -26550,7 +27034,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1111xxxxx110xxxxxxxxxxxxx ld4d. */ - return 1735; + return 1782; } } } @@ -26564,7 +27048,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1001xxxxx111xxxxxxxxxxxxx ld2w. */ - return 1724; + return 1771; } else { @@ -26572,7 +27056,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1101xxxxx111xxxxxxxxxxxxx ld2d. */ - return 1720; + return 1767; } } else @@ -26583,7 +27067,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1011xxxxx111xxxxxxxxxxxxx ld4w. */ - return 1740; + return 1787; } else { @@ -26591,7 +27075,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x1111xxxxx111xxxxxxxxxxxxx ld4d. */ - return 1736; + return 1783; } } } @@ -26610,7 +27094,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx1xxxxx100xxxxxxxxxxxxx fmad. */ - return 1542; + return 1589; } else { @@ -26618,7 +27102,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx1xxxxx110xxxxxxxxxxxxx fnmad. */ - return 1572; + return 1619; } } else @@ -26631,7 +27115,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1001xxxxx1x0xxxxxxxxxxxxx st1w. */ - return 2002; + return 2049; } else { @@ -26639,7 +27123,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1101xxxxx1x0xxxxxxxxxxxxx st1d. */ - return 1981; + return 2028; } } else @@ -26648,7 +27132,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1x11xxxxx1x0xxxxxxxxxxxxx st1w. */ - return 2007; + return 2054; } } } @@ -26662,7 +27146,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx1xxxxx101xxxxxxxxxxxxx fmsb. */ - return 1563; + return 1610; } else { @@ -26674,7 +27158,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1001xxxxx101xxxxxxxxxxxxx st1w. */ - return 2003; + return 2050; } else { @@ -26682,7 +27166,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1101xxxxx101xxxxxxxxxxxxx st1d. */ - return 1982; + return 2029; } } else @@ -26691,7 +27175,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x1x11xxxxx101xxxxxxxxxxxxx st1w. */ - return 2010; + return 2057; } } } @@ -26703,7 +27187,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx1xxxxx111xxxxxxxxxxxxx fnmsb. */ - return 1575; + return 1622; } else { @@ -26715,7 +27199,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x10x10xxxx111xxxxxxxxxxxxx st1w. */ - return 2011; + return 2058; } else { @@ -26723,7 +27207,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x11x10xxxx111xxxxxxxxxxxxx st1d. */ - return 1985; + return 2032; } } else @@ -26736,7 +27220,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x10011xxxx111xxxxxxxxxxxxx st2w. */ - return 2019; + return 2066; } else { @@ -26744,7 +27228,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x11011xxxx111xxxxxxxxxxxxx st2d. */ - return 2015; + return 2062; } } else @@ -26755,7 +27239,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x10111xxxx111xxxxxxxxxxxxx st4w. */ - return 2035; + return 2082; } else { @@ -26763,7 +27247,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x11111xxxx111xxxxxxxxxxxxx st4d. */ - return 2031; + return 2078; } } } @@ -26845,7 +27329,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11010100x11xxxxxxxxxxxxxxxx0xx00 tcancel. */ - return 1278; + return 1324; } } } @@ -26973,7 +27457,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1010100xxxxxxxxxxxxxxxxxxx1xxxx bc.c. */ - return 3304; + return 3361; } else { @@ -27104,7 +27588,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10101x1x100xxxxxxxxxxxxxxxxxxxx sysp. */ - return 1325; + return 1372; } else { @@ -27112,7 +27596,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10101x1x101xxxxxxxxxxxxxxxxxxxx msrr. */ - return 1343; + return 1390; } } } @@ -27126,7 +27610,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1010101x01xxxxxxxxxxxxxxxxxxxxx tstart. */ - return 1275; + return 1321; } else { @@ -27154,7 +27638,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10101x1x11xxxxxxxxxxxxxxxxxxxxx mrrs. */ - return 1342; + return 1389; } } } @@ -27376,7 +27860,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx110110xxxxxxxxxxxxxxxxxxxxxxxx tbz. */ - return 1352; + return 1399; } } else @@ -27461,7 +27945,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx110111xxxxxxxxxxxxxxxxxxxxxxxx tbnz. */ - return 1353; + return 1400; } } } @@ -27527,7 +28011,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00110100xxxxx1xx0xxxxxxxxxxxxx stl1. */ - return 1254; + return 1300; } } else @@ -27678,7 +28162,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00110101xxxxx1xx0xxxxxxxxxxxxx ldap1. */ - return 1255; + return 1301; } } else @@ -27831,7 +28315,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100001xxxxx000000xxxxxxxxxx ldfadd. */ - return 3072; + return 3129; } else { @@ -27839,7 +28323,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100101xxxxx000000xxxxxxxxxx ldfadda. */ - return 3073; + return 3130; } } else @@ -27850,7 +28334,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100011xxxxx000000xxxxxxxxxx ldfaddl. */ - return 3075; + return 3132; } else { @@ -27858,7 +28342,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100111xxxxx000000xxxxxxxxxx ldfaddal. */ - return 3074; + return 3131; } } } @@ -27870,7 +28354,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100x01xxxxx100000xxxxxxxxxx stfadd. */ - return 3112; + return 3169; } else { @@ -27878,7 +28362,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100x11xxxxx100000xxxxxxxxxx stfaddl. */ - return 3113; + return 3170; } } } @@ -27894,7 +28378,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100001xxxxx010000xxxxxxxxxx ldfmax. */ - return 3076; + return 3133; } else { @@ -27902,7 +28386,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100101xxxxx010000xxxxxxxxxx ldfmaxa. */ - return 3077; + return 3134; } } else @@ -27913,7 +28397,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100011xxxxx010000xxxxxxxxxx ldfmaxl. */ - return 3079; + return 3136; } else { @@ -27921,7 +28405,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100111xxxxx010000xxxxxxxxxx ldfmaxal. */ - return 3078; + return 3135; } } } @@ -27933,7 +28417,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100x01xxxxx110000xxxxxxxxxx stfmax. */ - return 3114; + return 3171; } else { @@ -27941,7 +28425,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100x11xxxxx110000xxxxxxxxxx stfmaxl. */ - return 3115; + return 3172; } } } @@ -27958,7 +28442,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100001xxxxx0x1000xxxxxxxxxx ldfmaxnm. */ - return 3080; + return 3137; } else { @@ -27966,7 +28450,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100101xxxxx0x1000xxxxxxxxxx ldfmaxnma. */ - return 3081; + return 3138; } } else @@ -27977,7 +28461,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100011xxxxx0x1000xxxxxxxxxx ldfmaxnml. */ - return 3083; + return 3140; } else { @@ -27985,7 +28469,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100111xxxxx0x1000xxxxxxxxxx ldfmaxnmal. */ - return 3082; + return 3139; } } } @@ -27997,7 +28481,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100x01xxxxx1x1000xxxxxxxxxx stfmaxnm. */ - return 3116; + return 3173; } else { @@ -28005,7 +28489,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100x11xxxxx1x1000xxxxxxxxxx stfmaxnml. */ - return 3117; + return 3174; } } } @@ -28024,7 +28508,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100001xxxxx0x0100xxxxxxxxxx ldfmin. */ - return 3084; + return 3141; } else { @@ -28032,7 +28516,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100101xxxxx0x0100xxxxxxxxxx ldfmina. */ - return 3085; + return 3142; } } else @@ -28043,7 +28527,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100011xxxxx0x0100xxxxxxxxxx ldfminl. */ - return 3087; + return 3144; } else { @@ -28051,7 +28535,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100111xxxxx0x0100xxxxxxxxxx ldfminal. */ - return 3086; + return 3143; } } } @@ -28063,7 +28547,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100x01xxxxx1x0100xxxxxxxxxx stfmin. */ - return 3118; + return 3175; } else { @@ -28071,7 +28555,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100x11xxxxx1x0100xxxxxxxxxx stfminl. */ - return 3119; + return 3176; } } } @@ -28087,7 +28571,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100001xxxxx0x1100xxxxxxxxxx ldfminnm. */ - return 3088; + return 3145; } else { @@ -28095,7 +28579,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100101xxxxx0x1100xxxxxxxxxx ldfminnma. */ - return 3089; + return 3146; } } else @@ -28106,7 +28590,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100011xxxxx0x1100xxxxxxxxxx ldfminnml. */ - return 3091; + return 3148; } else { @@ -28114,7 +28598,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100111xxxxx0x1100xxxxxxxxxx ldfminnmal. */ - return 3090; + return 3147; } } } @@ -28126,7 +28610,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100x01xxxxx1x1100xxxxxxxxxx stfminnm. */ - return 3120; + return 3177; } else { @@ -28134,7 +28618,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx111100x11xxxxx1x1100xxxxxxxxxx stfminnml. */ - return 3121; + return 3178; } } } @@ -28194,7 +28678,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011101x0xxxxxxxxxxx0xxxxxxxxxx stlur. */ - return 1257; + return 1303; } else { @@ -28212,7 +28696,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0000x1xxxxxxxxxx cpyp. */ - return 3232; + return 3289; } else { @@ -28220,7 +28704,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0000x1xxxxxxxxxx cpye. */ - return 3234; + return 3291; } } else @@ -28231,7 +28715,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1000x1xxxxxxxxxx cpyprn. */ - return 3238; + return 3295; } else { @@ -28239,7 +28723,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1000x1xxxxxxxxxx cpyern. */ - return 3240; + return 3297; } } } @@ -28253,7 +28737,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0100x1xxxxxxxxxx cpypwn. */ - return 3235; + return 3292; } else { @@ -28261,7 +28745,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0100x1xxxxxxxxxx cpyewn. */ - return 3237; + return 3294; } } else @@ -28272,7 +28756,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1100x1xxxxxxxxxx cpypn. */ - return 3241; + return 3298; } else { @@ -28280,7 +28764,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1100x1xxxxxxxxxx cpyen. */ - return 3243; + return 3300; } } } @@ -28297,7 +28781,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0010x1xxxxxxxxxx cpyprt. */ - return 3256; + return 3313; } else { @@ -28305,7 +28789,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0010x1xxxxxxxxxx cpyert. */ - return 3258; + return 3315; } } else @@ -28316,7 +28800,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1010x1xxxxxxxxxx cpyprtrn. */ - return 3262; + return 3319; } else { @@ -28324,7 +28808,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1010x1xxxxxxxxxx cpyertrn. */ - return 3264; + return 3321; } } } @@ -28338,7 +28822,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0110x1xxxxxxxxxx cpyprtwn. */ - return 3259; + return 3316; } else { @@ -28346,7 +28830,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0110x1xxxxxxxxxx cpyertwn. */ - return 3261; + return 3318; } } else @@ -28357,7 +28841,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1110x1xxxxxxxxxx cpyprtn. */ - return 3265; + return 3322; } else { @@ -28365,7 +28849,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1110x1xxxxxxxxxx cpyertn. */ - return 3267; + return 3324; } } } @@ -28385,7 +28869,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0001x1xxxxxxxxxx cpypwt. */ - return 3244; + return 3301; } else { @@ -28393,7 +28877,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0001x1xxxxxxxxxx cpyewt. */ - return 3246; + return 3303; } } else @@ -28404,7 +28888,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1001x1xxxxxxxxxx cpypwtrn. */ - return 3250; + return 3307; } else { @@ -28412,7 +28896,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1001x1xxxxxxxxxx cpyewtrn. */ - return 3252; + return 3309; } } } @@ -28426,7 +28910,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0101x1xxxxxxxxxx cpypwtwn. */ - return 3247; + return 3304; } else { @@ -28434,7 +28918,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0101x1xxxxxxxxxx cpyewtwn. */ - return 3249; + return 3306; } } else @@ -28445,7 +28929,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1101x1xxxxxxxxxx cpypwtn. */ - return 3253; + return 3310; } else { @@ -28453,7 +28937,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1101x1xxxxxxxxxx cpyewtn. */ - return 3255; + return 3312; } } } @@ -28470,7 +28954,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0011x1xxxxxxxxxx cpypt. */ - return 3268; + return 3325; } else { @@ -28478,7 +28962,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0011x1xxxxxxxxxx cpyet. */ - return 3270; + return 3327; } } else @@ -28489,7 +28973,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1011x1xxxxxxxxxx cpyptrn. */ - return 3274; + return 3331; } else { @@ -28497,7 +28981,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1011x1xxxxxxxxxx cpyetrn. */ - return 3276; + return 3333; } } } @@ -28511,7 +28995,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0111x1xxxxxxxxxx cpyptwn. */ - return 3271; + return 3328; } else { @@ -28519,7 +29003,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0111x1xxxxxxxxxx cpyetwn. */ - return 3273; + return 3330; } } else @@ -28530,7 +29014,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1111x1xxxxxxxxxx cpyptn. */ - return 3277; + return 3334; } else { @@ -28538,7 +29022,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1111x1xxxxxxxxxx cpyetn. */ - return 3279; + return 3336; } } } @@ -28565,7 +29049,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011101x1xxxxxxxxxxx0xxxxxxxxxx ldapur. */ - return 1256; + return 1302; } else { @@ -28583,7 +29067,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0000x1xxxxxxxxxx cpym. */ - return 3233; + return 3290; } else { @@ -28591,7 +29075,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0000x1xxxxxxxxxx setgp. */ - return 3292; + return 3349; } } else @@ -28602,7 +29086,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx1000x1xxxxxxxxxx cpymrn. */ - return 3239; + return 3296; } else { @@ -28610,7 +29094,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx1000x1xxxxxxxxxx setge. */ - return 3294; + return 3351; } } } @@ -28624,7 +29108,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0100x1xxxxxxxxxx cpymwn. */ - return 3236; + return 3293; } else { @@ -28632,7 +29116,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0100x1xxxxxxxxxx setgm. */ - return 3293; + return 3350; } } else @@ -28641,7 +29125,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011101x1xxxxxx1100x1xxxxxxxxxx cpymn. */ - return 3242; + return 3299; } } } @@ -28657,7 +29141,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0010x1xxxxxxxxxx cpymrt. */ - return 3257; + return 3314; } else { @@ -28665,7 +29149,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0010x1xxxxxxxxxx setgpn. */ - return 3298; + return 3355; } } else @@ -28676,7 +29160,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx1010x1xxxxxxxxxx cpymrtrn. */ - return 3263; + return 3320; } else { @@ -28684,7 +29168,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx1010x1xxxxxxxxxx setgen. */ - return 3300; + return 3357; } } } @@ -28698,7 +29182,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0110x1xxxxxxxxxx cpymrtwn. */ - return 3260; + return 3317; } else { @@ -28706,7 +29190,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0110x1xxxxxxxxxx setgmn. */ - return 3299; + return 3356; } } else @@ -28715,7 +29199,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011101x1xxxxxx1110x1xxxxxxxxxx cpymrtn. */ - return 3266; + return 3323; } } } @@ -28734,7 +29218,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0001x1xxxxxxxxxx cpymwt. */ - return 3245; + return 3302; } else { @@ -28742,7 +29226,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0001x1xxxxxxxxxx setgpt. */ - return 3295; + return 3352; } } else @@ -28753,7 +29237,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx1001x1xxxxxxxxxx cpymwtrn. */ - return 3251; + return 3308; } else { @@ -28761,7 +29245,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx1001x1xxxxxxxxxx setget. */ - return 3297; + return 3354; } } } @@ -28775,7 +29259,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0101x1xxxxxxxxxx cpymwtwn. */ - return 3248; + return 3305; } else { @@ -28783,7 +29267,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0101x1xxxxxxxxxx setgmt. */ - return 3296; + return 3353; } } else @@ -28792,7 +29276,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011101x1xxxxxx1101x1xxxxxxxxxx cpymwtn. */ - return 3254; + return 3311; } } } @@ -28808,7 +29292,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0011x1xxxxxxxxxx cpymt. */ - return 3269; + return 3326; } else { @@ -28816,7 +29300,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0011x1xxxxxxxxxx setgptn. */ - return 3301; + return 3358; } } else @@ -28827,7 +29311,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx1011x1xxxxxxxxxx cpymtrn. */ - return 3275; + return 3332; } else { @@ -28835,7 +29319,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx1011x1xxxxxxxxxx setgetn. */ - return 3303; + return 3360; } } } @@ -28849,7 +29333,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0111x1xxxxxxxxxx cpymtwn. */ - return 3272; + return 3329; } else { @@ -28857,7 +29341,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0111x1xxxxxxxxxx setgmtn. */ - return 3302; + return 3359; } } else @@ -28866,7 +29350,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011101x1xxxxxx1111x1xxxxxxxxxx cpymtn. */ - return 3278; + return 3335; } } } @@ -28927,7 +29411,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110100xxxxxxxx100xxxxxxxxxx luti2. */ - return 3579; + return 3636; } } } @@ -28941,7 +29425,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110010xxxxxxxx000xxxxxxxxxx luti4. */ - return 3581; + return 3638; } else { @@ -28949,7 +29433,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110010xxxxxxxx100xxxxxxxxxx luti4. */ - return 3582; + return 3639; } } else @@ -28958,7 +29442,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110110xxxxxxxxx00xxxxxxxxxx luti2. */ - return 3580; + return 3637; } } } @@ -29074,7 +29558,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00001110x00xxxxxx10001xxxxxxxxxx fmlallbb. */ - return 3603; + return 3660; } else { @@ -29082,7 +29566,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01001110x00xxxxxx10001xxxxxxxxxx fmlalltb. */ - return 3605; + return 3662; } } else @@ -29093,7 +29577,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00001110x10xxxxxx10001xxxxxxxxxx fmlallbt. */ - return 3604; + return 3661; } else { @@ -29101,7 +29585,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01001110x10xxxxxx10001xxxxxxxxxx fmlalltt. */ - return 3606; + return 3663; } } } @@ -29122,7 +29606,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110xx0xxxxx1x1001xxxxxxxxxx smmla. */ - return 3154; + return 3211; } } } @@ -29155,7 +29639,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110xx0xxxxx1x0101xxxxxxxxxx sdot. */ - return 3020; + return 3077; } } else @@ -29189,7 +29673,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00001110x00xxxxxx11101xxxxxxxxxx fcvtn. */ - return 3536; + return 3593; } else { @@ -29197,7 +29681,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01001110x00xxxxxx11101xxxxxxxxxx fcvtn2. */ - return 3537; + return 3594; } } else @@ -29206,7 +29690,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110x10xxxxxx11101xxxxxxxxxx fcvtn. */ - return 3538; + return 3595; } } } @@ -29262,7 +29746,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110xx0xxxxx1x1011xxxxxxxxxx usmmla. */ - return 3156; + return 3213; } } } @@ -29296,7 +29780,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110110xxxxx0x0111xxxxxxxxxx famax. */ - return 1258; + return 1304; } } } @@ -29306,7 +29790,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110xx0xxxxx1x0111xxxxxxxxxx usdot. */ - return 3157; + return 3214; } } else @@ -29349,7 +29833,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110x00xxxxxx11111xxxxxxxxxx fdot. */ - return 3595; + return 3652; } else { @@ -29359,7 +29843,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110010xxxxxx11111xxxxxxxxxx fdot. */ - return 3597; + return 3654; } else { @@ -29369,7 +29853,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00001110110xxxxxx11111xxxxxxxxxx fmlalb. */ - return 3599; + return 3656; } else { @@ -29377,7 +29861,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01001110110xxxxxx11111xxxxxxxxxx fmlalt. */ - return 3600; + return 3657; } } } @@ -29397,7 +29881,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110000xxxxxxxxxxxxxxxxxxxxx eor3. */ - return 3027; + return 3084; } else { @@ -29405,7 +29889,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110100xxxxxxxxxxxxxxxxxxxxx xar. */ - return 3029; + return 3086; } } else @@ -29416,7 +29900,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110x10xxxxx0xxxxxxxxxxxxxxx sm3ss1. */ - return 3031; + return 3088; } else { @@ -29430,7 +29914,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110010xxxxx1xxx00xxxxxxxxxx sm3tt1a. */ - return 3032; + return 3089; } else { @@ -29438,7 +29922,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110110xxxxx1xxx00xxxxxxxxxx sha512su0. */ - return 3025; + return 3082; } } else @@ -29447,7 +29931,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110x10xxxxx1xxx10xxxxxxxxxx sm3tt2a. */ - return 3034; + return 3091; } } else @@ -29460,7 +29944,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110010xxxxx1xxx01xxxxxxxxxx sm3tt1b. */ - return 3033; + return 3090; } else { @@ -29468,7 +29952,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110110xxxxx1xxx01xxxxxxxxxx sm4e. */ - return 3038; + return 3095; } } else @@ -29477,7 +29961,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110x10xxxxx1xxx11xxxxxxxxxx sm3tt2b. */ - return 3035; + return 3092; } } } @@ -29632,7 +30116,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110110xxxxx0x0111xxxxxxxxxx famin. */ - return 1260; + return 1306; } } else @@ -29651,7 +30135,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110110xxxxx0x1111xxxxxxxxxx fscale. */ - return 3539; + return 3596; } } } @@ -29680,7 +30164,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110xx0xxxxx100101xxxxxxxxxx udot. */ - return 3019; + return 3076; } } else @@ -29711,7 +30195,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110xx0xxxxx101x01xxxxxxxxxx ummla. */ - return 3155; + return 3212; } else { @@ -29734,7 +30218,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110000xxxxx1x1011xxxxxxxxxx fmmla. */ - return 3182; + return 3239; } else { @@ -29742,7 +30226,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110100xxxxx1x1011xxxxxxxxxx fmmla. */ - return 3180; + return 3237; } } else @@ -29751,7 +30235,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110x10xxxxx1x1011xxxxxxxxxx bfmmla. */ - return 3171; + return 3228; } } else @@ -29762,7 +30246,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1011100x0xxxxx1x1111xxxxxxxxxx bfdot. */ - return 3169; + return 3226; } else { @@ -29772,7 +30256,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01011101x0xxxxx1x1111xxxxxxxxxx bfmlalb. */ - return 3176; + return 3233; } else { @@ -29780,7 +30264,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11011101x0xxxxx1x1111xxxxxxxxxx bfmlalt. */ - return 3175; + return 3232; } } } @@ -30364,7 +30848,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000011101x1xxxx1011010xxxxxxxxxx bfcvtn. */ - return 3172; + return 3229; } else { @@ -30372,7 +30856,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010011101x1xxxx1011010xxxxxxxxxx bfcvtn2. */ - return 3173; + return 3230; } } } @@ -30690,7 +31174,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110xx1xxxxx0xxxxxxxxxxxxxxx bcax. */ - return 3030; + return 3087; } } else @@ -31065,7 +31549,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101110001xxxx1011110xxxxxxxxxx f1cvtl. */ - return 3532; + return 3589; } else { @@ -31073,7 +31557,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101110001xxxx1011110xxxxxxxxxx f1cvtl2. */ - return 3533; + return 3590; } } else @@ -31084,7 +31568,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101110101xxxx1011110xxxxxxxxxx bf1cvtl. */ - return 3528; + return 3585; } else { @@ -31092,7 +31576,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101110101xxxx1011110xxxxxxxxxx bf1cvtl2. */ - return 3529; + return 3586; } } } @@ -31106,7 +31590,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101110011xxxx1011110xxxxxxxxxx f2cvtl. */ - return 3534; + return 3591; } else { @@ -31114,7 +31598,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101110011xxxx1011110xxxxxxxxxx f2cvtl2. */ - return 3535; + return 3592; } } else @@ -31125,7 +31609,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101110111xxxx1011110xxxxxxxxxx bf2cvtl. */ - return 3530; + return 3587; } else { @@ -31133,7 +31617,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101110111xxxx1011110xxxxxxxxxx bf2cvtl2. */ - return 3531; + return 3588; } } } @@ -31389,7 +31873,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11001110xx1xxxxx100000xxxxxxxxxx sha512h. */ - return 3023; + return 3080; } } } @@ -31441,7 +31925,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11001110xx1xxxxx110000xxxxxxxxxx sm3partw1. */ - return 3036; + return 3093; } } } @@ -31684,7 +32168,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110xx1xxxxx100010xxxxxxxxxx sha512su1. */ - return 3026; + return 3083; } } else @@ -31760,7 +32244,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x0011100x1xxxxx110010xxxxxxxxxx sm4ekey. */ - return 3039; + return 3096; } } else @@ -32586,7 +33070,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110xx1xxxxx100001xxxxxxxxxx sha512h2. */ - return 3024; + return 3081; } } else @@ -32618,7 +33102,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x0011100x1xxxxx110001xxxxxxxxxx sm3partw2. */ - return 3037; + return 3094; } } else @@ -32858,7 +33342,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110xx1xxxxx100011xxxxxxxxxx rax1. */ - return 3028; + return 3085; } } else @@ -32890,7 +33374,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01011100x1xxxxx110011xxxxxxxxxx fmlal2. */ - return 3042; + return 3099; } else { @@ -32898,7 +33382,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11011100x1xxxxx110011xxxxxxxxxx fmlal2. */ - return 3046; + return 3103; } } } @@ -32920,7 +33404,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01011101x1xxxxx110011xxxxxxxxxx fmlsl2. */ - return 3043; + return 3100; } else { @@ -32928,7 +33412,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11011101x1xxxxx110011xxxxxxxxxx fmlsl2. */ - return 3047; + return 3104; } } } @@ -32967,7 +33451,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x00011100x1xxxxx111011xxxxxxxxxx fmlal. */ - return 3040; + return 3097; } else { @@ -32975,7 +33459,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10011100x1xxxxx111011xxxxxxxxxx fmlal. */ - return 3044; + return 3101; } } else @@ -32997,7 +33481,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x00011101x1xxxxx111011xxxxxxxxxx fmlsl. */ - return 3041; + return 3098; } else { @@ -33005,7 +33489,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10011101x1xxxxx111011xxxxxxxxxx fmlsl. */ - return 3045; + return 3102; } } else @@ -33072,7 +33556,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0011101x1xxxxx110111xxxxxxxxxx famax. */ - return 1259; + return 1305; } else { @@ -33080,7 +33564,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1011101x1xxxxx110111xxxxxxxxxx famin. */ - return 1261; + return 1307; } } } @@ -33132,7 +33616,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1011101x1xxxxx111111xxxxxxxxxx fscale. */ - return 3540; + return 3597; } } } @@ -34980,7 +35464,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00111100xxxxxx0000x0xxxxxxxxxx fdot. */ - return 3596; + return 3653; } else { @@ -34990,7 +35474,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x000111110xxxxxx0000x0xxxxxxxxxx fmlal. */ - return 3048; + return 3105; } else { @@ -34998,7 +35482,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x100111110xxxxxx0000x0xxxxxxxxxx fmlal. */ - return 3052; + return 3109; } } } @@ -35010,7 +35494,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00111101xxxxxx0000x0xxxxxxxxxx fdot. */ - return 3598; + return 3655; } else { @@ -35020,7 +35504,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x000111111xxxxxx0000x0xxxxxxxxxx fmlalb. */ - return 3601; + return 3658; } else { @@ -35028,7 +35512,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x100111111xxxxxx0000x0xxxxxxxxxx fmlalt. */ - return 3602; + return 3659; } } } @@ -35052,7 +35536,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0001111xxxxxxxx0100x0xxxxxxxxxx fmlsl. */ - return 3049; + return 3106; } else { @@ -35060,7 +35544,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1001111xxxxxxxx0100x0xxxxxxxxxx fmlsl. */ - return 3053; + return 3110; } } else @@ -35570,7 +36054,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x010111100xxxxxx1000x0xxxxxxxxxx fmlallbb. */ - return 3607; + return 3664; } else { @@ -35578,7 +36062,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x110111100xxxxxx1000x0xxxxxxxxxx fmlalltb. */ - return 3609; + return 3666; } } else @@ -35589,7 +36073,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x010111110xxxxxx1000x0xxxxxxxxxx fmlal2. */ - return 3050; + return 3107; } else { @@ -35597,7 +36081,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x110111110xxxxxx1000x0xxxxxxxxxx fmlal2. */ - return 3054; + return 3111; } } } @@ -35609,7 +36093,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101111x1xxxxxx1000x0xxxxxxxxxx fmlallbt. */ - return 3608; + return 3665; } else { @@ -35617,7 +36101,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101111x1xxxxxx1000x0xxxxxxxxxx fmlalltt. */ - return 3610; + return 3667; } } } @@ -35640,7 +36124,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101111xxxxxxxx1100x0xxxxxxxxxx fmlsl2. */ - return 3051; + return 3108; } else { @@ -35648,7 +36132,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101111xxxxxxxx1100x0xxxxxxxxxx fmlsl2. */ - return 3055; + return 3112; } } } @@ -35704,7 +36188,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx001111xxxxxxxx1110x0xxxxxxxxxx sdot. */ - return 3022; + return 3079; } else { @@ -35712,7 +36196,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101111xxxxxxxx1110x0xxxxxxxxxx udot. */ - return 3021; + return 3078; } } } @@ -35815,7 +36299,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00111100xxxxxx1111x0xxxxxxxxxx sudot. */ - return 3159; + return 3216; } else { @@ -35823,7 +36307,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00111110xxxxxx1111x0xxxxxxxxxx usdot. */ - return 3158; + return 3215; } } else @@ -35834,7 +36318,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00111101xxxxxx1111x0xxxxxxxxxx bfdot. */ - return 3170; + return 3227; } else { @@ -35844,7 +36328,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x000111111xxxxxx1111x0xxxxxxxxxx bfmlalb. */ - return 3178; + return 3235; } else { @@ -35852,7 +36336,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x100111111xxxxxx1111x0xxxxxxxxxx bfmlalt. */ - return 3177; + return 3234; } } } @@ -36339,64 +36823,64 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) int value; switch (key) { - case 2558: value = 3414; break; /* fclamp --> bfclamp. */ - case 3414: return NULL; /* bfclamp --> NULL. */ - case 2559: value = 3415; break; /* fclamp --> bfclamp. */ - case 3415: return NULL; /* bfclamp --> NULL. */ - case 2572: value = 3398; break; /* fmax --> bfmax. */ - case 3398: return NULL; /* bfmax --> NULL. */ - case 3011: value = 3565; break; /* bfscale --> fscale. */ - case 3565: return NULL; /* fscale --> NULL. */ - case 2576: value = 3402; break; /* fmaxnm --> bfmaxnm. */ - case 3402: return NULL; /* bfmaxnm --> NULL. */ - case 2580: value = 3406; break; /* fmin --> bfmin. */ - case 3406: return NULL; /* bfmin --> NULL. */ - case 2584: value = 3410; break; /* fminnm --> bfminnm. */ - case 3410: return NULL; /* bfminnm --> NULL. */ - case 2574: value = 3400; break; /* fmax --> bfmax. */ - case 3400: return NULL; /* bfmax --> NULL. */ - case 3013: value = 3567; break; /* bfscale --> fscale. */ - case 3567: return NULL; /* fscale --> NULL. */ - case 2578: value = 3404; break; /* fmaxnm --> bfmaxnm. */ - case 3404: return NULL; /* bfmaxnm --> NULL. */ - case 2582: value = 3408; break; /* fmin --> bfmin. */ - case 3408: return NULL; /* bfmin --> NULL. */ - case 2586: value = 3412; break; /* fminnm --> bfminnm. */ - case 3412: return NULL; /* bfminnm --> NULL. */ - case 2573: value = 3399; break; /* fmax --> bfmax. */ - case 3399: return NULL; /* bfmax --> NULL. */ - case 3012: value = 3566; break; /* bfscale --> fscale. */ - case 3566: return NULL; /* fscale --> NULL. */ - case 3015: value = 3748; break; /* bfmul --> fmul. */ - case 3748: return NULL; /* fmul --> NULL. */ - case 3016: value = 3749; break; /* bfmul --> fmul. */ - case 3749: return NULL; /* fmul --> NULL. */ - case 2575: value = 3401; break; /* fmax --> bfmax. */ - case 3401: return NULL; /* bfmax --> NULL. */ - case 3014: value = 3568; break; /* bfscale --> fscale. */ - case 3568: return NULL; /* fscale --> NULL. */ - case 2577: value = 3403; break; /* fmaxnm --> bfmaxnm. */ - case 3403: return NULL; /* bfmaxnm --> NULL. */ - case 2579: value = 3405; break; /* fmaxnm --> bfmaxnm. */ - case 3405: return NULL; /* bfmaxnm --> NULL. */ - case 2581: value = 3407; break; /* fmin --> bfmin. */ - case 3407: return NULL; /* bfmin --> NULL. */ - case 2583: value = 3409; break; /* fmin --> bfmin. */ - case 3409: return NULL; /* bfmin --> NULL. */ - case 2585: value = 3411; break; /* fminnm --> bfminnm. */ - case 3411: return NULL; /* bfminnm --> NULL. */ - case 2587: value = 3413; break; /* fminnm --> bfminnm. */ - case 3413: return NULL; /* bfminnm --> NULL. */ - case 3017: value = 3750; break; /* bfmul --> fmul. */ - case 3750: return NULL; /* fmul --> NULL. */ - case 3018: value = 3751; break; /* bfmul --> fmul. */ - case 3751: return NULL; /* fmul --> NULL. */ + case 2615: value = 3471; break; /* fclamp --> bfclamp. */ + case 3471: return NULL; /* bfclamp --> NULL. */ + case 2616: value = 3472; break; /* fclamp --> bfclamp. */ + case 3472: return NULL; /* bfclamp --> NULL. */ + case 2629: value = 3455; break; /* fmax --> bfmax. */ + case 3455: return NULL; /* bfmax --> NULL. */ + case 3068: value = 3622; break; /* bfscale --> fscale. */ + case 3622: return NULL; /* fscale --> NULL. */ + case 2633: value = 3459; break; /* fmaxnm --> bfmaxnm. */ + case 3459: return NULL; /* bfmaxnm --> NULL. */ + case 2637: value = 3463; break; /* fmin --> bfmin. */ + case 3463: return NULL; /* bfmin --> NULL. */ + case 2641: value = 3467; break; /* fminnm --> bfminnm. */ + case 3467: return NULL; /* bfminnm --> NULL. */ + case 2631: value = 3457; break; /* fmax --> bfmax. */ + case 3457: return NULL; /* bfmax --> NULL. */ + case 3070: value = 3624; break; /* bfscale --> fscale. */ + case 3624: return NULL; /* fscale --> NULL. */ + case 2635: value = 3461; break; /* fmaxnm --> bfmaxnm. */ + case 3461: return NULL; /* bfmaxnm --> NULL. */ + case 2639: value = 3465; break; /* fmin --> bfmin. */ + case 3465: return NULL; /* bfmin --> NULL. */ + case 2643: value = 3469; break; /* fminnm --> bfminnm. */ + case 3469: return NULL; /* bfminnm --> NULL. */ + case 2630: value = 3456; break; /* fmax --> bfmax. */ + case 3456: return NULL; /* bfmax --> NULL. */ + case 3069: value = 3623; break; /* bfscale --> fscale. */ + case 3623: return NULL; /* fscale --> NULL. */ + case 3072: value = 3805; break; /* bfmul --> fmul. */ + case 3805: return NULL; /* fmul --> NULL. */ + case 3073: value = 3806; break; /* bfmul --> fmul. */ + case 3806: return NULL; /* fmul --> NULL. */ + case 2632: value = 3458; break; /* fmax --> bfmax. */ + case 3458: return NULL; /* bfmax --> NULL. */ + case 3071: value = 3625; break; /* bfscale --> fscale. */ + case 3625: return NULL; /* fscale --> NULL. */ + case 2634: value = 3460; break; /* fmaxnm --> bfmaxnm. */ + case 3460: return NULL; /* bfmaxnm --> NULL. */ + case 2636: value = 3462; break; /* fmaxnm --> bfmaxnm. */ + case 3462: return NULL; /* bfmaxnm --> NULL. */ + case 2638: value = 3464; break; /* fmin --> bfmin. */ + case 3464: return NULL; /* bfmin --> NULL. */ + case 2640: value = 3466; break; /* fmin --> bfmin. */ + case 3466: return NULL; /* bfmin --> NULL. */ + case 2642: value = 3468; break; /* fminnm --> bfminnm. */ + case 3468: return NULL; /* bfminnm --> NULL. */ + case 2644: value = 3470; break; /* fminnm --> bfminnm. */ + case 3470: return NULL; /* bfminnm --> NULL. */ + case 3074: value = 3807; break; /* bfmul --> fmul. */ + case 3807: return NULL; /* fmul --> NULL. */ + case 3075: value = 3808; break; /* bfmul --> fmul. */ + case 3808: return NULL; /* fmul --> NULL. */ case 12: value = 19; break; /* add --> addg. */ - case 19: value = 3305; break; /* addg --> smax. */ - case 3305: value = 3306; break; /* smax --> umax. */ - case 3306: value = 3307; break; /* umax --> smin. */ - case 3307: value = 3308; break; /* smin --> umin. */ - case 3308: return NULL; /* umin --> NULL. */ + case 19: value = 3362; break; /* addg --> smax. */ + case 3362: value = 3363; break; /* smax --> umax. */ + case 3363: value = 3364; break; /* umax --> smin. */ + case 3364: value = 3365; break; /* smin --> umin. */ + case 3365: return NULL; /* umin --> NULL. */ case 16: value = 20; break; /* sub --> subg. */ case 20: return NULL; /* subg --> NULL. */ case 1023: value = 1027; break; /* stnp --> stp. */ @@ -36405,81 +36889,89 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) case 1022: return NULL; /* stllrh --> NULL. */ case 1024: value = 1028; break; /* ldnp --> ldp. */ case 1028: return NULL; /* ldp --> NULL. */ - case 964: value = 2494; break; /* prfm --> rprfm. */ - case 2494: return NULL; /* rprfm --> NULL. */ - case 2501: value = 3391; break; /* fclamp --> bfclamp. */ - case 3391: return NULL; /* bfclamp --> NULL. */ - case 1497: value = 3394; break; /* fadd --> bfadd. */ - case 3394: return NULL; /* bfadd --> NULL. */ - case 1564: value = 3395; break; /* fmul --> bfmul. */ - case 3395: return NULL; /* bfmul --> NULL. */ - case 1590: value = 3396; break; /* fsub --> bfsub. */ - case 3396: return NULL; /* bfsub --> NULL. */ - case 1555: value = 3387; break; /* fmla --> bfmla. */ - case 3387: return NULL; /* bfmla --> NULL. */ - case 1559: value = 3388; break; /* fmls --> bfmls. */ - case 3388: return NULL; /* bfmls --> NULL. */ - case 1498: value = 3382; break; /* fadd --> bfadd. */ - case 3382: return NULL; /* bfadd --> NULL. */ - case 1545: value = 3384; break; /* fmaxnm --> bfmaxnm. */ - case 3384: return NULL; /* bfmaxnm --> NULL. */ - case 1565: value = 3389; break; /* fmul --> bfmul. */ - case 3389: return NULL; /* bfmul --> NULL. */ - case 1543: value = 3383; break; /* fmax --> bfmax. */ - case 3383: return NULL; /* bfmax --> NULL. */ - case 1591: value = 3390; break; /* fsub --> bfsub. */ - case 3390: return NULL; /* bfsub --> NULL. */ - case 1551: value = 3386; break; /* fminnm --> bfminnm. */ - case 3386: return NULL; /* bfminnm --> NULL. */ - case 1549: value = 3385; break; /* fmin --> bfmin. */ - case 3385: return NULL; /* bfmin --> NULL. */ - case 1588: value = 3010; break; /* fscale --> bfscale. */ - case 3010: return NULL; /* bfscale --> NULL. */ + case 964: value = 2551; break; /* prfm --> rprfm. */ + case 2551: return NULL; /* rprfm --> NULL. */ + case 2558: value = 3448; break; /* fclamp --> bfclamp. */ + case 3448: return NULL; /* bfclamp --> NULL. */ + case 1544: value = 3451; break; /* fadd --> bfadd. */ + case 3451: return NULL; /* bfadd --> NULL. */ + case 1611: value = 3452; break; /* fmul --> bfmul. */ + case 3452: return NULL; /* bfmul --> NULL. */ + case 1637: value = 3453; break; /* fsub --> bfsub. */ + case 3453: return NULL; /* bfsub --> NULL. */ + case 1602: value = 3444; break; /* fmla --> bfmla. */ + case 3444: return NULL; /* bfmla --> NULL. */ + case 1606: value = 3445; break; /* fmls --> bfmls. */ + case 3445: return NULL; /* bfmls --> NULL. */ + case 1545: value = 3439; break; /* fadd --> bfadd. */ + case 3439: return NULL; /* bfadd --> NULL. */ + case 1592: value = 3441; break; /* fmaxnm --> bfmaxnm. */ + case 3441: return NULL; /* bfmaxnm --> NULL. */ + case 1612: value = 3446; break; /* fmul --> bfmul. */ + case 3446: return NULL; /* bfmul --> NULL. */ + case 1590: value = 3440; break; /* fmax --> bfmax. */ + case 3440: return NULL; /* bfmax --> NULL. */ + case 1638: value = 3447; break; /* fsub --> bfsub. */ + case 3447: return NULL; /* bfsub --> NULL. */ + case 1598: value = 3443; break; /* fminnm --> bfminnm. */ + case 3443: return NULL; /* bfminnm --> NULL. */ + case 1596: value = 3442; break; /* fmin --> bfmin. */ + case 3442: return NULL; /* bfmin --> NULL. */ + case 1635: value = 3067; break; /* fscale --> bfscale. */ + case 3067: return NULL; /* bfscale --> NULL. */ case 863: value = 864; break; /* xaflag --> axflag. */ - case 864: value = 1276; break; /* axflag --> tcommit. */ - case 1276: value = 1279; break; /* tcommit --> smstart. */ - case 1279: value = 1280; break; /* smstart --> smstop. */ - case 1280: value = 1281; break; /* smstop --> smstart. */ - case 1281: value = 1282; break; /* smstart --> smstop. */ - case 1282: value = 1283; break; /* smstop --> chkfeat. */ - case 1283: value = 1284; break; /* chkfeat --> msr. */ - case 1284: value = 1285; break; /* msr --> hint. */ - case 1285: value = 1304; break; /* hint --> clrex. */ - case 1304: value = 1305; break; /* clrex --> dsb. */ - case 1305: value = 1306; break; /* dsb --> dsb. */ - case 1306: value = 1310; break; /* dsb --> dmb. */ - case 1310: value = 1311; break; /* dmb --> isb. */ - case 1311: value = 1312; break; /* isb --> sb. */ - case 1312: value = 1313; break; /* sb --> gcspushx. */ - case 1313: value = 1314; break; /* gcspushx --> gcspopx. */ - case 1314: value = 1315; break; /* gcspopx --> gcspopcx. */ - case 1315: value = 1316; break; /* gcspopcx --> gcsss1. */ - case 1316: value = 1317; break; /* gcsss1 --> gcspushm. */ - case 1317: value = 1324; break; /* gcspushm --> sys. */ - case 1324: value = 1331; break; /* sys --> wfet. */ - case 1331: value = 1332; break; /* wfet --> wfit. */ - case 1332: value = 1338; break; /* wfit --> cfinv. */ - case 1338: value = 1339; break; /* cfinv --> msr. */ - case 1339: return NULL; /* msr --> NULL. */ - case 1275: value = 1277; break; /* tstart --> ttest. */ - case 1277: value = 1318; break; /* ttest --> gcsss2. */ - case 1318: value = 1319; break; /* gcsss2 --> gcspopm. */ - case 1319: value = 1320; break; /* gcspopm --> gcspopm. */ - case 1320: value = 1340; break; /* gcspopm --> sysl. */ - case 1340: value = 1341; break; /* sysl --> mrs. */ - case 1341: return NULL; /* mrs --> NULL. */ + case 864: value = 1322; break; /* axflag --> tcommit. */ + case 1322: value = 1325; break; /* tcommit --> smstart. */ + case 1325: value = 1326; break; /* smstart --> smstop. */ + case 1326: value = 1327; break; /* smstop --> smstart. */ + case 1327: value = 1328; break; /* smstart --> smstop. */ + case 1328: value = 1329; break; /* smstop --> chkfeat. */ + case 1329: value = 1331; break; /* chkfeat --> msr. */ + case 1331: value = 1332; break; /* msr --> hint. */ + case 1332: value = 1351; break; /* hint --> clrex. */ + case 1351: value = 1352; break; /* clrex --> dsb. */ + case 1352: value = 1353; break; /* dsb --> dsb. */ + case 1353: value = 1357; break; /* dsb --> dmb. */ + case 1357: value = 1358; break; /* dmb --> isb. */ + case 1358: value = 1359; break; /* isb --> sb. */ + case 1359: value = 1360; break; /* sb --> gcspushx. */ + case 1360: value = 1361; break; /* gcspushx --> gcspopx. */ + case 1361: value = 1362; break; /* gcspopx --> gcspopcx. */ + case 1362: value = 1363; break; /* gcspopcx --> gcsss1. */ + case 1363: value = 1364; break; /* gcsss1 --> gcspushm. */ + case 1364: value = 1371; break; /* gcspushm --> sys. */ + case 1371: value = 1378; break; /* sys --> wfet. */ + case 1378: value = 1379; break; /* wfet --> wfit. */ + case 1379: value = 1385; break; /* wfit --> cfinv. */ + case 1385: value = 1386; break; /* cfinv --> msr. */ + case 1386: return NULL; /* msr --> NULL. */ + case 1321: value = 1323; break; /* tstart --> ttest. */ + case 1323: value = 1365; break; /* ttest --> gcsss2. */ + case 1365: value = 1366; break; /* gcsss2 --> gcspopm. */ + case 1366: value = 1367; break; /* gcspopm --> gcspopm. */ + case 1367: value = 1387; break; /* gcspopm --> sysl. */ + case 1387: value = 1388; break; /* sysl --> mrs. */ + case 1388: return NULL; /* mrs --> NULL. */ case 440: value = 441; break; /* st4 --> st1. */ case 441: value = 442; break; /* st1 --> st2. */ case 442: value = 443; break; /* st2 --> st3. */ case 443: return NULL; /* st3 --> NULL. */ + case 1025: value = 1287; break; /* stnp --> sttnp. */ + case 1287: return NULL; /* sttnp --> NULL. */ + case 1029: value = 1291; break; /* stp --> sttp. */ + case 1291: return NULL; /* sttp --> NULL. */ case 448: value = 449; break; /* st4 --> st1. */ case 449: value = 450; break; /* st1 --> st2. */ case 450: value = 451; break; /* st2 --> st3. */ case 451: return NULL; /* st3 --> NULL. */ + case 1035: value = 1295; break; /* stp --> sttp. */ + case 1295: return NULL; /* sttp --> NULL. */ case 444: value = 445; break; /* ld4 --> ld1. */ case 445: value = 446; break; /* ld1 --> ld2. */ case 446: value = 447; break; /* ld2 --> ld3. */ case 447: return NULL; /* ld3 --> NULL. */ + case 1026: value = 1285; break; /* ldnp --> ldtnp. */ + case 1285: return NULL; /* ldtnp --> NULL. */ case 460: value = 462; break; /* ld1 --> ld1r. */ case 462: return NULL; /* ld1r --> NULL. */ case 464: value = 466; break; /* ld2 --> ld2r. */ @@ -36488,6 +36980,8 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) case 463: return NULL; /* ld3r --> NULL. */ case 465: value = 467; break; /* ld4 --> ld4r. */ case 467: return NULL; /* ld4r --> NULL. */ + case 1030: value = 1289; break; /* ldp --> ldtp. */ + case 1289: return NULL; /* ldtp --> NULL. */ case 452: value = 453; break; /* ld4 --> ld1. */ case 453: value = 454; break; /* ld1 --> ld2. */ case 454: value = 455; break; /* ld2 --> ld3. */ @@ -36500,66 +36994,68 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) case 478: return NULL; /* ld2r --> NULL. */ case 477: value = 479; break; /* ld4 --> ld4r. */ case 479: return NULL; /* ld4r --> NULL. */ - case 3072: value = 3092; break; /* ldfadd --> ldbfadd. */ - case 3092: return NULL; /* ldbfadd --> NULL. */ - case 3073: value = 3093; break; /* ldfadda --> ldbfadda. */ - case 3093: return NULL; /* ldbfadda --> NULL. */ - case 3075: value = 3095; break; /* ldfaddl --> ldbfaddl. */ - case 3095: return NULL; /* ldbfaddl --> NULL. */ - case 3074: value = 3094; break; /* ldfaddal --> ldbfaddal. */ - case 3094: return NULL; /* ldbfaddal --> NULL. */ - case 3112: value = 3122; break; /* stfadd --> stbfadd. */ - case 3122: return NULL; /* stbfadd --> NULL. */ - case 3113: value = 3123; break; /* stfaddl --> stbfaddl. */ - case 3123: return NULL; /* stbfaddl --> NULL. */ - case 3076: value = 3096; break; /* ldfmax --> ldbfmax. */ - case 3096: return NULL; /* ldbfmax --> NULL. */ - case 3077: value = 3097; break; /* ldfmaxa --> ldbfmaxa. */ - case 3097: return NULL; /* ldbfmaxa --> NULL. */ - case 3079: value = 3099; break; /* ldfmaxl --> ldbfmaxl. */ - case 3099: return NULL; /* ldbfmaxl --> NULL. */ - case 3078: value = 3098; break; /* ldfmaxal --> ldbfmaxal. */ - case 3098: return NULL; /* ldbfmaxal --> NULL. */ - case 3114: value = 3124; break; /* stfmax --> stbfmax. */ - case 3124: return NULL; /* stbfmax --> NULL. */ - case 3115: value = 3125; break; /* stfmaxl --> stbfmaxl. */ - case 3125: return NULL; /* stbfmaxl --> NULL. */ - case 3080: value = 3100; break; /* ldfmaxnm --> ldbfmaxnm. */ - case 3100: return NULL; /* ldbfmaxnm --> NULL. */ - case 3081: value = 3101; break; /* ldfmaxnma --> ldbfmaxnma. */ - case 3101: return NULL; /* ldbfmaxnma --> NULL. */ - case 3083: value = 3103; break; /* ldfmaxnml --> ldbfmaxnml. */ - case 3103: return NULL; /* ldbfmaxnml --> NULL. */ - case 3082: value = 3102; break; /* ldfmaxnmal --> ldbfmaxnmal. */ - case 3102: return NULL; /* ldbfmaxnmal --> NULL. */ - case 3116: value = 3126; break; /* stfmaxnm --> stbfmaxnm. */ - case 3126: return NULL; /* stbfmaxnm --> NULL. */ - case 3117: value = 3127; break; /* stfmaxnml --> stbfmaxnml. */ - case 3127: return NULL; /* stbfmaxnml --> NULL. */ - case 3084: value = 3104; break; /* ldfmin --> ldbfmin. */ - case 3104: return NULL; /* ldbfmin --> NULL. */ - case 3085: value = 3105; break; /* ldfmina --> ldbfmina. */ - case 3105: return NULL; /* ldbfmina --> NULL. */ - case 3087: value = 3107; break; /* ldfminl --> ldbfminl. */ - case 3107: return NULL; /* ldbfminl --> NULL. */ - case 3086: value = 3106; break; /* ldfminal --> ldbfminal. */ - case 3106: return NULL; /* ldbfminal --> NULL. */ - case 3118: value = 3128; break; /* stfmin --> stbfmin. */ - case 3128: return NULL; /* stbfmin --> NULL. */ - case 3119: value = 3129; break; /* stfminl --> stbfminl. */ - case 3129: return NULL; /* stbfminl --> NULL. */ - case 3088: value = 3108; break; /* ldfminnm --> ldbfminnm. */ - case 3108: return NULL; /* ldbfminnm --> NULL. */ - case 3089: value = 3109; break; /* ldfminnma --> ldbfminnma. */ - case 3109: return NULL; /* ldbfminnma --> NULL. */ - case 3091: value = 3111; break; /* ldfminnml --> ldbfminnml. */ - case 3111: return NULL; /* ldbfminnml --> NULL. */ - case 3090: value = 3110; break; /* ldfminnmal --> ldbfminnmal. */ - case 3110: return NULL; /* ldbfminnmal --> NULL. */ - case 3120: value = 3130; break; /* stfminnm --> stbfminnm. */ - case 3130: return NULL; /* stbfminnm --> NULL. */ - case 3121: value = 3131; break; /* stfminnml --> stbfminnml. */ - case 3131: return NULL; /* stbfminnml --> NULL. */ + case 1036: value = 1293; break; /* ldp --> ldtp. */ + case 1293: return NULL; /* ldtp --> NULL. */ + case 3129: value = 3149; break; /* ldfadd --> ldbfadd. */ + case 3149: return NULL; /* ldbfadd --> NULL. */ + case 3130: value = 3150; break; /* ldfadda --> ldbfadda. */ + case 3150: return NULL; /* ldbfadda --> NULL. */ + case 3132: value = 3152; break; /* ldfaddl --> ldbfaddl. */ + case 3152: return NULL; /* ldbfaddl --> NULL. */ + case 3131: value = 3151; break; /* ldfaddal --> ldbfaddal. */ + case 3151: return NULL; /* ldbfaddal --> NULL. */ + case 3169: value = 3179; break; /* stfadd --> stbfadd. */ + case 3179: return NULL; /* stbfadd --> NULL. */ + case 3170: value = 3180; break; /* stfaddl --> stbfaddl. */ + case 3180: return NULL; /* stbfaddl --> NULL. */ + case 3133: value = 3153; break; /* ldfmax --> ldbfmax. */ + case 3153: return NULL; /* ldbfmax --> NULL. */ + case 3134: value = 3154; break; /* ldfmaxa --> ldbfmaxa. */ + case 3154: return NULL; /* ldbfmaxa --> NULL. */ + case 3136: value = 3156; break; /* ldfmaxl --> ldbfmaxl. */ + case 3156: return NULL; /* ldbfmaxl --> NULL. */ + case 3135: value = 3155; break; /* ldfmaxal --> ldbfmaxal. */ + case 3155: return NULL; /* ldbfmaxal --> NULL. */ + case 3171: value = 3181; break; /* stfmax --> stbfmax. */ + case 3181: return NULL; /* stbfmax --> NULL. */ + case 3172: value = 3182; break; /* stfmaxl --> stbfmaxl. */ + case 3182: return NULL; /* stbfmaxl --> NULL. */ + case 3137: value = 3157; break; /* ldfmaxnm --> ldbfmaxnm. */ + case 3157: return NULL; /* ldbfmaxnm --> NULL. */ + case 3138: value = 3158; break; /* ldfmaxnma --> ldbfmaxnma. */ + case 3158: return NULL; /* ldbfmaxnma --> NULL. */ + case 3140: value = 3160; break; /* ldfmaxnml --> ldbfmaxnml. */ + case 3160: return NULL; /* ldbfmaxnml --> NULL. */ + case 3139: value = 3159; break; /* ldfmaxnmal --> ldbfmaxnmal. */ + case 3159: return NULL; /* ldbfmaxnmal --> NULL. */ + case 3173: value = 3183; break; /* stfmaxnm --> stbfmaxnm. */ + case 3183: return NULL; /* stbfmaxnm --> NULL. */ + case 3174: value = 3184; break; /* stfmaxnml --> stbfmaxnml. */ + case 3184: return NULL; /* stbfmaxnml --> NULL. */ + case 3141: value = 3161; break; /* ldfmin --> ldbfmin. */ + case 3161: return NULL; /* ldbfmin --> NULL. */ + case 3142: value = 3162; break; /* ldfmina --> ldbfmina. */ + case 3162: return NULL; /* ldbfmina --> NULL. */ + case 3144: value = 3164; break; /* ldfminl --> ldbfminl. */ + case 3164: return NULL; /* ldbfminl --> NULL. */ + case 3143: value = 3163; break; /* ldfminal --> ldbfminal. */ + case 3163: return NULL; /* ldbfminal --> NULL. */ + case 3175: value = 3185; break; /* stfmin --> stbfmin. */ + case 3185: return NULL; /* stbfmin --> NULL. */ + case 3176: value = 3186; break; /* stfminl --> stbfminl. */ + case 3186: return NULL; /* stbfminl --> NULL. */ + case 3145: value = 3165; break; /* ldfminnm --> ldbfminnm. */ + case 3165: return NULL; /* ldbfminnm --> NULL. */ + case 3146: value = 3166; break; /* ldfminnma --> ldbfminnma. */ + case 3166: return NULL; /* ldbfminnma --> NULL. */ + case 3148: value = 3168; break; /* ldfminnml --> ldbfminnml. */ + case 3168: return NULL; /* ldbfminnml --> NULL. */ + case 3147: value = 3167; break; /* ldfminnmal --> ldbfminnmal. */ + case 3167: return NULL; /* ldbfminnmal --> NULL. */ + case 3177: value = 3187; break; /* stfminnm --> stbfminnm. */ + case 3187: return NULL; /* stbfminnm --> NULL. */ + case 3178: value = 3188; break; /* stfminnml --> stbfminnml. */ + case 3188: return NULL; /* stbfminnml --> NULL. */ case 804: value = 805; break; /* fcvtzs --> fcvtzs. */ case 805: return NULL; /* fcvtzs --> NULL. */ case 800: value = 801; break; /* scvtf --> scvtf. */ @@ -36612,8 +37108,8 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) case 876: return NULL; /* fsqrt --> NULL. */ case 884: value = 885; break; /* frintz --> frintz. */ case 885: return NULL; /* frintz --> NULL. */ - case 877: value = 3174; break; /* fcvt --> bfcvt. */ - case 3174: return NULL; /* bfcvt --> NULL. */ + case 877: value = 3231; break; /* fcvt --> bfcvt. */ + case 3231: return NULL; /* bfcvt --> NULL. */ case 886: value = 887; break; /* frinta --> frinta. */ case 887: return NULL; /* frinta --> NULL. */ case 888: value = 889; break; /* frintx --> frintx. */ @@ -36839,58 +37335,64 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode) case 1182: value = 1235; break; /* lduminlb --> stuminlb. */ case 1185: value = 1236; break; /* lduminlh --> stuminlh. */ case 1188: value = 1237; break; /* lduminl --> stuminl. */ - case 1268: value = 1269; break; /* movn --> mov. */ - case 1270: value = 1271; break; /* movz --> mov. */ - case 1285: value = 3316; break; /* hint --> clrbhb. */ - case 1305: value = 1309; break; /* dsb --> pssbb. */ - case 1306: value = 1306; break; /* dsb --> dsb. */ - case 1324: value = 3317; break; /* sys --> trcit. */ - case 1325: value = 1330; break; /* sysp --> tlbip. */ - case 1331: value = 1331; break; /* wfet --> wfet. */ - case 1332: value = 1332; break; /* wfit --> wfit. */ - case 1400: value = 2137; break; /* and --> bic. */ - case 1402: value = 1383; break; /* and --> mov. */ - case 1403: value = 1387; break; /* ands --> movs. */ - case 1438: value = 2138; break; /* cmpge --> cmple. */ - case 1441: value = 2141; break; /* cmpgt --> cmplt. */ - case 1443: value = 2139; break; /* cmphi --> cmplo. */ - case 1446: value = 2140; break; /* cmphs --> cmpls. */ - case 1468: value = 1380; break; /* cpy --> mov. */ - case 1469: value = 1382; break; /* cpy --> mov. */ - case 1470: value = 2148; break; /* cpy --> fmov. */ - case 1482: value = 1374; break; /* dup --> mov. */ - case 1483: value = 1377; break; /* dup --> mov. */ - case 1484: value = 2147; break; /* dup --> fmov. */ - case 1485: value = 1378; break; /* dupm --> mov. */ - case 1487: value = 2142; break; /* eor --> eon. */ - case 1489: value = 1388; break; /* eor --> not. */ - case 1490: value = 1389; break; /* eors --> nots. */ - case 1495: value = 2143; break; /* facge --> facle. */ - case 1496: value = 2144; break; /* facgt --> faclt. */ - case 1509: value = 2145; break; /* fcmge --> fcmle. */ - case 1511: value = 2146; break; /* fcmgt --> fcmlt. */ - case 1517: value = 1371; break; /* fcpy --> fmov. */ - case 1540: value = 1370; break; /* fdup --> fmov. */ - case 1825: value = 1826; break; /* ldr --> ldr. */ - case 1856: value = 1372; break; /* orr --> mov. */ - case 1857: value = 2149; break; /* orr --> orn. */ - case 1859: value = 1376; break; /* orr --> mov. */ - case 1860: value = 1386; break; /* orrs --> movs. */ - case 1862: value = 1863; break; /* pfalse --> pfalse. */ - case 1923: value = 1381; break; /* sel --> mov. */ - case 1924: value = 1384; break; /* sel --> mov. */ - case 2044: value = 2045; break; /* str --> str. */ - case 2474: value = 2472; break; /* mova --> mov. */ - case 2475: value = 2473; break; /* mova --> mov. */ - case 2492: value = 2493; break; /* psel --> psel. */ - case 2706: value = 2698; break; /* mova --> mov. */ - case 2707: value = 2699; break; /* mova --> mov. */ - case 2708: value = 2700; break; /* mova --> mov. */ - case 2709: value = 2701; break; /* mova --> mov. */ - case 2710: value = 2702; break; /* mova --> mov. */ - case 2711: value = 2703; break; /* mova --> mov. */ - case 2712: value = 2704; break; /* mova --> mov. */ - case 2713: value = 2705; break; /* mova --> mov. */ + case 1266: value = 1267; break; /* ldtadd --> sttadd. */ + case 1270: value = 1271; break; /* ldtaddl --> sttaddl. */ + case 1272: value = 1273; break; /* ldtclr --> sttclr. */ + case 1276: value = 1277; break; /* ldtclrl --> sttclrl. */ + case 1278: value = 1279; break; /* ldtset --> sttset. */ + case 1282: value = 1283; break; /* ldtsetl --> sttsetl. */ + case 1314: value = 1315; break; /* movn --> mov. */ + case 1316: value = 1317; break; /* movz --> mov. */ + case 1332: value = 3373; break; /* hint --> clrbhb. */ + case 1352: value = 1356; break; /* dsb --> pssbb. */ + case 1353: value = 1353; break; /* dsb --> dsb. */ + case 1371: value = 3374; break; /* sys --> trcit. */ + case 1372: value = 1377; break; /* sysp --> tlbip. */ + case 1378: value = 1378; break; /* wfet --> wfet. */ + case 1379: value = 1379; break; /* wfit --> wfit. */ + case 1447: value = 2184; break; /* and --> bic. */ + case 1449: value = 1430; break; /* and --> mov. */ + case 1450: value = 1434; break; /* ands --> movs. */ + case 1485: value = 2185; break; /* cmpge --> cmple. */ + case 1488: value = 2188; break; /* cmpgt --> cmplt. */ + case 1490: value = 2186; break; /* cmphi --> cmplo. */ + case 1493: value = 2187; break; /* cmphs --> cmpls. */ + case 1515: value = 1427; break; /* cpy --> mov. */ + case 1516: value = 1429; break; /* cpy --> mov. */ + case 1517: value = 2195; break; /* cpy --> fmov. */ + case 1529: value = 1421; break; /* dup --> mov. */ + case 1530: value = 1424; break; /* dup --> mov. */ + case 1531: value = 2194; break; /* dup --> fmov. */ + case 1532: value = 1425; break; /* dupm --> mov. */ + case 1534: value = 2189; break; /* eor --> eon. */ + case 1536: value = 1435; break; /* eor --> not. */ + case 1537: value = 1436; break; /* eors --> nots. */ + case 1542: value = 2190; break; /* facge --> facle. */ + case 1543: value = 2191; break; /* facgt --> faclt. */ + case 1556: value = 2192; break; /* fcmge --> fcmle. */ + case 1558: value = 2193; break; /* fcmgt --> fcmlt. */ + case 1564: value = 1418; break; /* fcpy --> fmov. */ + case 1587: value = 1417; break; /* fdup --> fmov. */ + case 1872: value = 1873; break; /* ldr --> ldr. */ + case 1903: value = 1419; break; /* orr --> mov. */ + case 1904: value = 2196; break; /* orr --> orn. */ + case 1906: value = 1423; break; /* orr --> mov. */ + case 1907: value = 1433; break; /* orrs --> movs. */ + case 1909: value = 1910; break; /* pfalse --> pfalse. */ + case 1970: value = 1428; break; /* sel --> mov. */ + case 1971: value = 1431; break; /* sel --> mov. */ + case 2091: value = 2092; break; /* str --> str. */ + case 2531: value = 2529; break; /* mova --> mov. */ + case 2532: value = 2530; break; /* mova --> mov. */ + case 2549: value = 2550; break; /* psel --> psel. */ + case 2763: value = 2755; break; /* mova --> mov. */ + case 2764: value = 2756; break; /* mova --> mov. */ + case 2765: value = 2757; break; /* mova --> mov. */ + case 2766: value = 2758; break; /* mova --> mov. */ + case 2767: value = 2759; break; /* mova --> mov. */ + case 2768: value = 2760; break; /* mova --> mov. */ + case 2769: value = 2761; break; /* mova --> mov. */ + case 2770: value = 2762; break; /* mova --> mov. */ default: return NULL; } @@ -37030,97 +37532,104 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode) case 1235: value = 1182; break; /* stuminlb --> lduminlb. */ case 1236: value = 1185; break; /* stuminlh --> lduminlh. */ case 1237: value = 1188; break; /* stuminl --> lduminl. */ - case 1269: value = 1268; break; /* mov --> movn. */ - case 1271: value = 1270; break; /* mov --> movz. */ - case 3316: value = 1351; break; /* clrbhb --> autibsp. */ - case 1351: value = 1350; break; /* autibsp --> autibz. */ - case 1350: value = 1349; break; /* autibz --> autiasp. */ - case 1349: value = 1348; break; /* autiasp --> autiaz. */ - case 1348: value = 1347; break; /* autiaz --> pacibsp. */ - case 1347: value = 1346; break; /* pacibsp --> pacibz. */ - case 1346: value = 1345; break; /* pacibz --> paciasp. */ - case 1345: value = 1344; break; /* paciasp --> paciaz. */ - case 1344: value = 1323; break; /* paciaz --> gcsb. */ - case 1323: value = 1303; break; /* gcsb --> clearbhb. */ - case 1303: value = 1302; break; /* clearbhb --> tsb. */ - case 1302: value = 1301; break; /* tsb --> psb. */ - case 1301: value = 1300; break; /* psb --> esb. */ - case 1300: value = 1299; break; /* esb --> autib1716. */ - case 1299: value = 1298; break; /* autib1716 --> autia1716. */ - case 1298: value = 1297; break; /* autia1716 --> pacib1716. */ - case 1297: value = 1296; break; /* pacib1716 --> pacia1716. */ - case 1296: value = 1295; break; /* pacia1716 --> xpaclri. */ - case 1295: value = 1294; break; /* xpaclri --> dgh. */ - case 1294: value = 1293; break; /* dgh --> sevl. */ - case 1293: value = 1292; break; /* sevl --> sev. */ - case 1292: value = 1291; break; /* sev --> wfi. */ - case 1291: value = 1290; break; /* wfi --> wfe. */ - case 1290: value = 1289; break; /* wfe --> yield. */ - case 1289: value = 1288; break; /* yield --> bti. */ - case 1288: value = 1287; break; /* bti --> csdb. */ - case 1287: value = 1286; break; /* csdb --> nop. */ - case 1286: value = 1285; break; /* nop --> hint. */ - case 1309: value = 1308; break; /* pssbb --> ssbb. */ - case 1308: value = 1307; break; /* ssbb --> dfb. */ - case 1307: value = 1305; break; /* dfb --> dsb. */ - case 3317: value = 1337; break; /* trcit --> brb. */ - case 1337: value = 1336; break; /* brb --> cosp. */ - case 1336: value = 1335; break; /* cosp --> cpp. */ - case 1335: value = 1334; break; /* cpp --> dvp. */ - case 1334: value = 1333; break; /* dvp --> cfp. */ - case 1333: value = 1329; break; /* cfp --> tlbi. */ - case 1329: value = 1328; break; /* tlbi --> ic. */ - case 1328: value = 1327; break; /* ic --> dc. */ - case 1327: value = 1326; break; /* dc --> at. */ - case 1326: value = 1324; break; /* at --> sys. */ - case 1330: value = 1325; break; /* tlbip --> sysp. */ - case 2137: value = 1400; break; /* bic --> and. */ - case 1383: value = 1402; break; /* mov --> and. */ - case 1387: value = 1403; break; /* movs --> ands. */ - case 2138: value = 1438; break; /* cmple --> cmpge. */ - case 2141: value = 1441; break; /* cmplt --> cmpgt. */ - case 2139: value = 1443; break; /* cmplo --> cmphi. */ - case 2140: value = 1446; break; /* cmpls --> cmphs. */ - case 1380: value = 1468; break; /* mov --> cpy. */ - case 1382: value = 1469; break; /* mov --> cpy. */ - case 2148: value = 1385; break; /* fmov --> mov. */ - case 1385: value = 1470; break; /* mov --> cpy. */ - case 1374: value = 1482; break; /* mov --> dup. */ - case 1377: value = 1373; break; /* mov --> mov. */ - case 1373: value = 1483; break; /* mov --> dup. */ - case 2147: value = 1379; break; /* fmov --> mov. */ - case 1379: value = 1484; break; /* mov --> dup. */ - case 1378: value = 1485; break; /* mov --> dupm. */ - case 2142: value = 1487; break; /* eon --> eor. */ - case 1388: value = 1489; break; /* not --> eor. */ - case 1389: value = 1490; break; /* nots --> eors. */ - case 2143: value = 1495; break; /* facle --> facge. */ - case 2144: value = 1496; break; /* faclt --> facgt. */ - case 2145: value = 1509; break; /* fcmle --> fcmge. */ - case 2146: value = 1511; break; /* fcmlt --> fcmgt. */ - case 1371: value = 1517; break; /* fmov --> fcpy. */ - case 1370: value = 1540; break; /* fmov --> fdup. */ - case 1826: value = 1825; break; /* ldr --> ldr. */ - case 1372: value = 1856; break; /* mov --> orr. */ - case 2149: value = 1857; break; /* orn --> orr. */ - case 1376: value = 1375; break; /* mov --> mov. */ - case 1375: value = 1859; break; /* mov --> orr. */ - case 1386: value = 1860; break; /* movs --> orrs. */ - case 1863: value = 1862; break; /* pfalse --> pfalse. */ - case 1381: value = 1923; break; /* mov --> sel. */ - case 1384: value = 1924; break; /* mov --> sel. */ - case 2045: value = 2044; break; /* str --> str. */ - case 2472: value = 2474; break; /* mov --> mova. */ - case 2473: value = 2475; break; /* mov --> mova. */ - case 2493: value = 2492; break; /* psel --> psel. */ - case 2698: value = 2706; break; /* mov --> mova. */ - case 2699: value = 2707; break; /* mov --> mova. */ - case 2700: value = 2708; break; /* mov --> mova. */ - case 2701: value = 2709; break; /* mov --> mova. */ - case 2702: value = 2710; break; /* mov --> mova. */ - case 2703: value = 2711; break; /* mov --> mova. */ - case 2704: value = 2712; break; /* mov --> mova. */ - case 2705: value = 2713; break; /* mov --> mova. */ + case 1267: value = 1266; break; /* sttadd --> ldtadd. */ + case 1271: value = 1270; break; /* sttaddl --> ldtaddl. */ + case 1273: value = 1272; break; /* sttclr --> ldtclr. */ + case 1277: value = 1276; break; /* sttclrl --> ldtclrl. */ + case 1279: value = 1278; break; /* sttset --> ldtset. */ + case 1283: value = 1282; break; /* sttsetl --> ldtsetl. */ + case 1315: value = 1314; break; /* mov --> movn. */ + case 1317: value = 1316; break; /* mov --> movz. */ + case 3373: value = 1398; break; /* clrbhb --> autibsp. */ + case 1398: value = 1397; break; /* autibsp --> autibz. */ + case 1397: value = 1396; break; /* autibz --> autiasp. */ + case 1396: value = 1395; break; /* autiasp --> autiaz. */ + case 1395: value = 1394; break; /* autiaz --> pacibsp. */ + case 1394: value = 1393; break; /* pacibsp --> pacibz. */ + case 1393: value = 1392; break; /* pacibz --> paciasp. */ + case 1392: value = 1391; break; /* paciasp --> paciaz. */ + case 1391: value = 1370; break; /* paciaz --> gcsb. */ + case 1370: value = 1350; break; /* gcsb --> clearbhb. */ + case 1350: value = 1349; break; /* clearbhb --> tsb. */ + case 1349: value = 1348; break; /* tsb --> psb. */ + case 1348: value = 1347; break; /* psb --> esb. */ + case 1347: value = 1346; break; /* esb --> autib1716. */ + case 1346: value = 1345; break; /* autib1716 --> autia1716. */ + case 1345: value = 1344; break; /* autia1716 --> pacib1716. */ + case 1344: value = 1343; break; /* pacib1716 --> pacia1716. */ + case 1343: value = 1342; break; /* pacia1716 --> xpaclri. */ + case 1342: value = 1341; break; /* xpaclri --> dgh. */ + case 1341: value = 1340; break; /* dgh --> sevl. */ + case 1340: value = 1339; break; /* sevl --> sev. */ + case 1339: value = 1338; break; /* sev --> wfi. */ + case 1338: value = 1337; break; /* wfi --> wfe. */ + case 1337: value = 1336; break; /* wfe --> yield. */ + case 1336: value = 1335; break; /* yield --> bti. */ + case 1335: value = 1334; break; /* bti --> csdb. */ + case 1334: value = 1333; break; /* csdb --> nop. */ + case 1333: value = 1330; break; /* nop --> stshh. */ + case 1330: value = 1332; break; /* stshh --> hint. */ + case 1356: value = 1355; break; /* pssbb --> ssbb. */ + case 1355: value = 1354; break; /* ssbb --> dfb. */ + case 1354: value = 1352; break; /* dfb --> dsb. */ + case 3374: value = 1384; break; /* trcit --> brb. */ + case 1384: value = 1383; break; /* brb --> cosp. */ + case 1383: value = 1382; break; /* cosp --> cpp. */ + case 1382: value = 1381; break; /* cpp --> dvp. */ + case 1381: value = 1380; break; /* dvp --> cfp. */ + case 1380: value = 1376; break; /* cfp --> tlbi. */ + case 1376: value = 1375; break; /* tlbi --> ic. */ + case 1375: value = 1374; break; /* ic --> dc. */ + case 1374: value = 1373; break; /* dc --> at. */ + case 1373: value = 1371; break; /* at --> sys. */ + case 1377: value = 1372; break; /* tlbip --> sysp. */ + case 2184: value = 1447; break; /* bic --> and. */ + case 1430: value = 1449; break; /* mov --> and. */ + case 1434: value = 1450; break; /* movs --> ands. */ + case 2185: value = 1485; break; /* cmple --> cmpge. */ + case 2188: value = 1488; break; /* cmplt --> cmpgt. */ + case 2186: value = 1490; break; /* cmplo --> cmphi. */ + case 2187: value = 1493; break; /* cmpls --> cmphs. */ + case 1427: value = 1515; break; /* mov --> cpy. */ + case 1429: value = 1516; break; /* mov --> cpy. */ + case 2195: value = 1432; break; /* fmov --> mov. */ + case 1432: value = 1517; break; /* mov --> cpy. */ + case 1421: value = 1529; break; /* mov --> dup. */ + case 1424: value = 1420; break; /* mov --> mov. */ + case 1420: value = 1530; break; /* mov --> dup. */ + case 2194: value = 1426; break; /* fmov --> mov. */ + case 1426: value = 1531; break; /* mov --> dup. */ + case 1425: value = 1532; break; /* mov --> dupm. */ + case 2189: value = 1534; break; /* eon --> eor. */ + case 1435: value = 1536; break; /* not --> eor. */ + case 1436: value = 1537; break; /* nots --> eors. */ + case 2190: value = 1542; break; /* facle --> facge. */ + case 2191: value = 1543; break; /* faclt --> facgt. */ + case 2192: value = 1556; break; /* fcmle --> fcmge. */ + case 2193: value = 1558; break; /* fcmlt --> fcmgt. */ + case 1418: value = 1564; break; /* fmov --> fcpy. */ + case 1417: value = 1587; break; /* fmov --> fdup. */ + case 1873: value = 1872; break; /* ldr --> ldr. */ + case 1419: value = 1903; break; /* mov --> orr. */ + case 2196: value = 1904; break; /* orn --> orr. */ + case 1423: value = 1422; break; /* mov --> mov. */ + case 1422: value = 1906; break; /* mov --> orr. */ + case 1433: value = 1907; break; /* movs --> orrs. */ + case 1910: value = 1909; break; /* pfalse --> pfalse. */ + case 1428: value = 1970; break; /* mov --> sel. */ + case 1431: value = 1971; break; /* mov --> sel. */ + case 2092: value = 2091; break; /* str --> str. */ + case 2529: value = 2531; break; /* mov --> mova. */ + case 2530: value = 2532; break; /* mov --> mova. */ + case 2550: value = 2549; break; /* psel --> psel. */ + case 2755: value = 2763; break; /* mov --> mova. */ + case 2756: value = 2764; break; /* mov --> mova. */ + case 2757: value = 2765; break; /* mov --> mova. */ + case 2758: value = 2766; break; /* mov --> mova. */ + case 2759: value = 2767; break; /* mov --> mova. */ + case 2760: value = 2768; break; /* mov --> mova. */ + case 2761: value = 2769; break; /* mov --> mova. */ + case 2762: value = 2770; break; /* mov --> mova. */ default: return NULL; } @@ -37163,10 +37672,9 @@ aarch64_extract_operand (const aarch64_operand *self, case 32: case 33: case 34: - case 126: case 127: case 128: - case 191: + case 129: case 192: case 193: case 194: @@ -37180,34 +37688,35 @@ aarch64_extract_operand (const aarch64_operand *self, case 202: case 203: case 204: - case 220: + case 205: case 221: case 222: case 223: - case 233: + case 224: case 234: case 235: case 236: case 237: - case 248: - case 252: - case 256: + case 238: + case 249: + case 253: case 257: - case 265: + case 258: case 266: case 267: - case 274: + case 268: case 275: case 276: case 277: - case 311: - case 315: + case 278: + case 313: + case 317: return aarch64_ext_regno (self, info, code, inst, errors); case 6: case 122: case 123: - case 321: - case 324: + case 323: + case 326: return aarch64_ext_none (self, info, code, inst, errors); case 11: return aarch64_ext_regrt_sysins (self, info, code, inst, errors); @@ -37227,17 +37736,16 @@ aarch64_extract_operand (const aarch64_operand *self, case 37: case 38: case 39: - case 326: + case 328: return aarch64_ext_reglane (self, info, code, inst, errors); case 40: case 41: case 42: - case 238: case 239: - case 242: - case 278: + case 240: + case 243: case 279: - case 294: + case 280: case 295: case 296: case 297: @@ -37254,12 +37762,14 @@ aarch64_extract_operand (const aarch64_operand *self, case 308: case 309: case 310: + case 311: case 312: - case 313: case 314: + case 315: case 316: - case 317: case 318: + case 319: + case 320: return aarch64_ext_simple_index (self, info, code, inst, errors); case 43: return aarch64_ext_reglist (self, info, code, inst, errors); @@ -37301,10 +37811,9 @@ aarch64_extract_operand (const aarch64_operand *self, case 94: case 95: case 121: - case 125: - case 188: - case 190: - case 211: + case 126: + case 189: + case 191: case 212: case 213: case 214: @@ -37313,14 +37822,15 @@ aarch64_extract_operand (const aarch64_operand *self, case 217: case 218: case 219: - case 280: - case 319: - case 320: + case 220: + case 281: + case 321: case 322: - case 323: + case 324: case 325: - case 330: - case 331: + case 327: + case 332: + case 333: return aarch64_ext_imm (self, info, code, inst, errors); case 52: case 53: @@ -37332,10 +37842,10 @@ aarch64_extract_operand (const aarch64_operand *self, case 57: return aarch64_ext_shll_imm (self, info, code, inst, errors); case 60: - case 178: + case 179: return aarch64_ext_fpimm (self, info, code, inst, errors); case 80: - case 186: + case 187: return aarch64_ext_limm (self, info, code, inst, errors); case 81: return aarch64_ext_aimm (self, info, code, inst, errors); @@ -37345,11 +37855,11 @@ aarch64_extract_operand (const aarch64_operand *self, return aarch64_ext_fbits (self, info, code, inst, errors); case 85: case 86: - case 183: + case 184: return aarch64_ext_imm_rotate2 (self, info, code, inst, errors); case 87: - case 182: - case 184: + case 183: + case 185: return aarch64_ext_imm_rotate1 (self, info, code, inst, errors); case 88: case 89: @@ -37393,25 +37903,25 @@ aarch64_extract_operand (const aarch64_operand *self, case 120: return aarch64_ext_prfop (self, info, code, inst, errors); case 124: + case 125: return aarch64_ext_hint (self, info, code, inst, errors); - case 129: case 130: - return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors); case 131: + return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors); case 132: case 133: case 134: - return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors); case 135: - return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors); + return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors); case 136: - return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors); + return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors); case 137: + return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors); case 138: case 139: case 140: - return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors); case 141: + return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors); case 142: case 143: case 144: @@ -37431,8 +37941,8 @@ aarch64_extract_operand (const aarch64_operand *self, case 158: case 159: case 160: - return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors); case 161: + return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors); case 162: case 163: case 164: @@ -37440,115 +37950,116 @@ aarch64_extract_operand (const aarch64_operand *self, case 166: case 167: case 168: - return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors); case 169: + return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors); case 170: case 171: case 172: - return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors); case 173: - return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors); + return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors); case 174: - return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors); + return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors); case 175: - return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors); + return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors); case 176: - return aarch64_ext_sve_aimm (self, info, code, inst, errors); + return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors); case 177: + return aarch64_ext_sve_aimm (self, info, code, inst, errors); + case 178: return aarch64_ext_sve_asimm (self, info, code, inst, errors); - case 179: - return aarch64_ext_sve_float_half_one (self, info, code, inst, errors); case 180: - return aarch64_ext_sve_float_half_two (self, info, code, inst, errors); + return aarch64_ext_sve_float_half_one (self, info, code, inst, errors); case 181: + return aarch64_ext_sve_float_half_two (self, info, code, inst, errors); + case 182: return aarch64_ext_sve_float_zero_one (self, info, code, inst, errors); - case 185: + case 186: return aarch64_ext_inv_limm (self, info, code, inst, errors); - case 187: + case 188: return aarch64_ext_sve_limm_mov (self, info, code, inst, errors); - case 189: + case 190: return aarch64_ext_sve_scale (self, info, code, inst, errors); - case 205: case 206: case 207: - return aarch64_ext_sve_shlimm (self, info, code, inst, errors); case 208: + return aarch64_ext_sve_shlimm (self, info, code, inst, errors); case 209: case 210: - case 293: + case 211: + case 294: return aarch64_ext_sve_shrimm (self, info, code, inst, errors); - case 224: case 225: case 226: case 227: - return aarch64_ext_sme_za_vrs1 (self, info, code, inst, errors); case 228: + return aarch64_ext_sme_za_vrs1 (self, info, code, inst, errors); case 229: case 230: case 231: - return aarch64_ext_sme_za_vrs2 (self, info, code, inst, errors); case 232: + return aarch64_ext_sme_za_vrs2 (self, info, code, inst, errors); + case 233: return aarch64_ext_sme_za_tile_to_vec (self, info, code, inst, errors); - case 240: case 241: - case 243: + case 242: case 244: case 245: case 246: case 247: + case 248: return aarch64_ext_sve_quad_index (self, info, code, inst, errors); - case 249: case 250: - return aarch64_ext_sve_index (self, info, code, inst, errors); case 251: - case 253: - case 273: - return aarch64_ext_sve_reglist (self, info, code, inst, errors); + return aarch64_ext_sve_index (self, info, code, inst, errors); + case 252: case 254: + case 274: + return aarch64_ext_sve_reglist (self, info, code, inst, errors); case 255: - case 258: + case 256: case 259: case 260: case 261: case 262: - case 272: - return aarch64_ext_sve_aligned_reglist (self, info, code, inst, errors); case 263: + case 273: + return aarch64_ext_sve_aligned_reglist (self, info, code, inst, errors); case 264: + case 265: return aarch64_ext_sve_strided_reglist (self, info, code, inst, errors); - case 268: - case 270: - case 281: - return aarch64_ext_sme_za_hv_tiles (self, info, code, inst, errors); case 269: case 271: - return aarch64_ext_sme_za_hv_tiles_range (self, info, code, inst, errors); case 282: + return aarch64_ext_sme_za_hv_tiles (self, info, code, inst, errors); + case 270: + case 272: + return aarch64_ext_sme_za_hv_tiles_range (self, info, code, inst, errors); case 283: case 284: case 285: case 286: case 287: case 288: - return aarch64_ext_sme_za_array (self, info, code, inst, errors); case 289: - return aarch64_ext_sme_addr_ri_u4xvl (self, info, code, inst, errors); + return aarch64_ext_sme_za_array (self, info, code, inst, errors); case 290: - return aarch64_ext_sme_sm_za (self, info, code, inst, errors); + return aarch64_ext_sme_addr_ri_u4xvl (self, info, code, inst, errors); case 291: - return aarch64_ext_sme_pred_reg_with_index (self, info, code, inst, errors); + return aarch64_ext_sme_sm_za (self, info, code, inst, errors); case 292: + return aarch64_ext_sme_pred_reg_with_index (self, info, code, inst, errors); + case 293: return aarch64_ext_plain_shrimm (self, info, code, inst, errors); - case 327: - case 328: case 329: + case 330: + case 331: return aarch64_ext_x0_to_x30 (self, info, code, inst, errors); - case 332: - case 333: case 334: case 335: - return aarch64_ext_rcpc3_addr_opt_offset (self, info, code, inst, errors); case 336: + case 337: + return aarch64_ext_rcpc3_addr_opt_offset (self, info, code, inst, errors); + case 338: return aarch64_ext_rcpc3_addr_offset (self, info, code, inst, errors); default: assert (0); abort (); } diff --git a/opcodes/aarch64-opc-2.c b/opcodes/aarch64-opc-2.c index 4adb43f..f36222c 100644 --- a/opcodes/aarch64-opc-2.c +++ b/opcodes/aarch64-opc-2.c @@ -149,6 +149,7 @@ const struct aarch64_operand aarch64_operands[] = {AARCH64_OPND_CLASS_SYSTEM, "BARRIER_PSB", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "the PSB/TSB option name CSYNC"}, {AARCH64_OPND_CLASS_SYSTEM, "BARRIER_GCSB", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "the GCSB option name DSYNC"}, {AARCH64_OPND_CLASS_SYSTEM, "BTI_TARGET", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "BTI targets j/c/jc"}, + {AARCH64_OPND_CLASS_SYSTEM, "STSHH_POLICY", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an STSHH policy (keep/strm)"}, {AARCH64_OPND_CLASS_SYSTEM, "BRBOP", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_brbop}, "Branch Record Buffer operation operand"}, {AARCH64_OPND_CLASS_INT_REG, "Rt_IN_SYS_ALIASES", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rt}, "Rt register with defaults for SYS aliases"}, {AARCH64_OPND_CLASS_INT_REG, "LSE128_Rt", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_LSE128_Rt}, "an integer register"}, @@ -332,6 +333,7 @@ const struct aarch64_operand aarch64_operands[] = {AARCH64_OPND_CLASS_SVE_REG, "SME_Zn_INDEX1_16", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm1_16}, "an indexed SVE vector register"}, {AARCH64_OPND_CLASS_SVE_REG, "SME_Zn_INDEX2_15", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm2_15}, "an indexed SVE vector register"}, {AARCH64_OPND_CLASS_SVE_REG, "SME_Zn_INDEX2_16", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm2_16}, "an indexed SVE vector register"}, + {AARCH64_OPND_CLASS_SVE_REG, "SME_Zn_INDEX2_19", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm2_19}, "an indexed SVE vector register"}, {AARCH64_OPND_CLASS_SVE_REG, "SME_Zn_INDEX3_14", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm3_14}, "an indexed SVE vector register"}, {AARCH64_OPND_CLASS_SVE_REG, "SME_Zn_INDEX3_15", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm3_15}, "an indexed SVE vector register"}, {AARCH64_OPND_CLASS_SVE_REG, "SME_Zn_INDEX4_14", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm4_14}, "an indexed SVE vector register"}, @@ -401,12 +403,12 @@ static const unsigned op_enum_table [] = 12, 636, 637, - 1268, - 1270, - 1272, + 1314, + 1316, + 1318, 1050, - 1271, - 1269, + 1317, + 1315, 318, 624, 635, @@ -438,18 +440,18 @@ static const unsigned op_enum_table [] = 391, 413, 415, - 1375, - 1376, - 1381, - 1373, - 1372, - 1377, - 1384, - 1386, - 1387, - 1383, - 1389, - 1388, + 1422, + 1423, + 1428, + 1420, + 1419, + 1424, + 1431, + 1433, + 1434, + 1430, + 1436, + 1435, 131, }; diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index ba08050..9c4e181 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -599,6 +599,8 @@ const struct aarch64_name_value_pair aarch64_hint_options[] = { "c", HINT_OPD_C }, /* BTI C. */ { "j", HINT_OPD_J }, /* BTI J. */ { "jc", HINT_OPD_JC }, /* BTI JC. */ + { "keep", HINT_OPD_KEEP }, /* STSHH KEEP */ + { "strm", HINT_OPD_STRM }, /* STSHH STRM */ { NULL, HINT_OPD_NULL }, }; @@ -632,7 +634,7 @@ const struct aarch64_name_value_pair aarch64_prfops[32] = { "pstl3strm", B(2, 3, 1) }, { "pstslckeep", B(2, 4, 0) }, { "pstslcstrm", B(2, 4, 1) }, - { NULL, 0x18 }, + { "ir", B(3, 1, 0) }, { NULL, 0x19 }, { NULL, 0x1a }, { NULL, 0x1b }, @@ -1896,6 +1898,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx, return 0; break; + case AARCH64_OPND_SME_Zn_INDEX2_19: case AARCH64_OPND_SVE_Zm2_22_INDEX: size = get_operand_fields_width (get_operand_from_code (type)); if (!check_reglane (opnd, mismatch_detail, idx, "z", 0, 31, 0, 3)) @@ -4385,6 +4388,7 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc, case AARCH64_OPND_SME_Zn_INDEX1_16: case AARCH64_OPND_SME_Zn_INDEX2_15: case AARCH64_OPND_SME_Zn_INDEX2_16: + case AARCH64_OPND_SME_Zn_INDEX2_19: case AARCH64_OPND_SME_Zn_INDEX3_14: case AARCH64_OPND_SME_Zn_INDEX3_15: case AARCH64_OPND_SME_Zn_INDEX4_14: @@ -5032,11 +5036,12 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc, break; case AARCH64_OPND_PRFOP: - if (opnd->prfop->name != NULL) - snprintf (buf, size, "%s", style_sub_mnem (styler, opnd->prfop->name)); + if ((opnd->prfop->name == NULL) + || (opcode->iclass != ldst_pos && opnd->prfop->value == 0x18)) + snprintf (buf, size, "%s", + style_imm (styler, "#0x%02x", opnd->prfop->value)); else - snprintf (buf, size, "%s", style_imm (styler, "#0x%02x", - opnd->prfop->value)); + snprintf (buf, size, "%s", style_sub_mnem (styler, opnd->prfop->name)); break; case AARCH64_OPND_RPRFMOP: @@ -5086,6 +5091,10 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc, style_sub_mnem (styler, opnd->hint_option->name)); break; + case AARCH64_OPND_STSHH_POLICY: + snprintf (buf, size, "%s", style_sub_mnem (styler, opnd->hint_option->name)); + break; + case AARCH64_OPND_MOPS_ADDR_Rd: case AARCH64_OPND_MOPS_ADDR_Rs: snprintf (buf, size, "[%s]!", @@ -5711,10 +5720,21 @@ verify_constraints (const struct aarch64_inst *inst, { /* Check to see if the MOVPRFX SVE instruction is followed by an SVE instruction for better error messages. */ - if (!opcode->avariant - || (!AARCH64_CPU_HAS_FEATURE (*opcode->avariant, SVE) - && !AARCH64_CPU_HAS_FEATURE (*opcode->avariant, SVE2) - && !AARCH64_CPU_HAS_FEATURE (*opcode->avariant, SVE2p1))) + bool sve_operand_p = false; + for (int i = 0; i < AARCH64_MAX_OPND_NUM; ++i) + { + enum aarch64_operand_class op_class + = aarch64_get_operand_class (opcode->operands[i]); + if (op_class == AARCH64_OPND_CLASS_SVE_REG + || op_class == AARCH64_OPND_CLASS_SVE_REGLIST + || op_class == AARCH64_OPND_CLASS_PRED_REG) + { + sve_operand_p = true; + break; + } + } + + if (!sve_operand_p) { mismatch_detail->kind = AARCH64_OPDE_SYNTAX_ERROR; mismatch_detail->error = _("SVE instruction expected after " diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index bf91efe..b23fc7c 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -1356,6 +1356,12 @@ QLF3(X, X, S_D), \ } +/* e.g. LDTP <Xt1>, <Xt2>, [<Xn|SP>, #<imm>]!. */ +#define QL_LDST_PAIR_X \ +{ \ + QLF3(X, X, S_D), \ +} + /* e.g. STNP <Qt1>, <Qt2>, [<Xn|SP>{, #<imm>}]. */ #define QL_LDST_PAIR_FP \ { \ @@ -1364,6 +1370,12 @@ QLF3(S_Q, S_Q, S_Q), \ } +/* e.g. LDTP <Qt1>, <Qt2>, [<Xn|SP>{, #<imm>}]. */ +#define QL_LDST_PAIR_S_Q \ +{ \ + QLF3(S_Q, S_Q, S_Q), \ +} + /* e.g. LD3 {<Vt>.<T>, <Vt2>.<T>, <Vt3>.<T>}, [<Xn|SP>]. */ #define QL_SIMD_LDST \ { \ @@ -2300,6 +2312,10 @@ QLF3(S_S,S_S,S_S), \ QLF3(S_D,S_D,S_D), \ } +#define OP_SVE_BBQ \ +{ \ + QLF3(S_B, S_B, S_Q) \ +} #define OP_SVE_VVV_D \ { \ QLF3(S_D,S_D,S_D), \ @@ -2773,12 +2789,7 @@ QLF3(V_4S, V_8H, S_H), \ } -/* Opcode table. - - Any SVE or SVE2 feature must include AARCH64_FEATURE_{SVE|SVE2} in its - bitmask, even if this is implied by other selected feature bits. This - allows verify_constraints to identify SVE instructions when selecting an - error message for MOVPRFX constraint violations. */ +/* Opcode table. */ static const aarch64_feature_set aarch64_feature_v8 = AARCH64_FEATURE (V8); @@ -2794,6 +2805,10 @@ static const aarch64_feature_set aarch64_feature_lsfe = AARCH64_FEATURE (LSFE); static const aarch64_feature_set aarch64_feature_lse128 = AARCH64_FEATURES (2, LSE, LSE128); +static const aarch64_feature_set aarch64_feature_lsui = + AARCH64_FEATURE (LSUI); +static const aarch64_feature_set aarch64_feature_lsui_fp = + AARCH64_FEATURES (2, LSUI, FP); static const aarch64_feature_set aarch64_feature_lor = AARCH64_FEATURE (LOR); static const aarch64_feature_set aarch64_feature_rdma = @@ -2851,25 +2866,25 @@ static const aarch64_feature_set aarch64_feature_tme = static const aarch64_feature_set aarch64_feature_sve2 = AARCH64_FEATURE (SVE2); static const aarch64_feature_set aarch64_feature_sve2aes = - AARCH64_FEATURES (2, SVE2, SVE2_AES); + AARCH64_FEATURES (2, SVE_AES, SVE2_SSVE_AES); static const aarch64_feature_set aarch64_feature_sve2sha3 = - AARCH64_FEATURES (2, SVE2, SVE2_SHA3); + AARCH64_FEATURE (SVE2_SHA3); static const aarch64_feature_set aarch64_feature_sve2sm4 = - AARCH64_FEATURES (2, SVE2, SVE2_SM4); + AARCH64_FEATURE (SVE2_SM4); static const aarch64_feature_set aarch64_feature_sve2bitperm = - AARCH64_FEATURES (2, SVE2, SVE2_BITPERM); + AARCH64_FEATURE (SVE2_BITPERM); static const aarch64_feature_set aarch64_feature_sme = - AARCH64_FEATURES (2, SVE2, SME); + AARCH64_FEATURE (SME); static const aarch64_feature_set aarch64_feature_sme_f64f64 = - AARCH64_FEATURES (3, SVE2, SME, SME_F64F64); + AARCH64_FEATURE (SME_F64F64); static const aarch64_feature_set aarch64_feature_sme_i16i64 = - AARCH64_FEATURES (3, SVE2, SME, SME_I16I64); + AARCH64_FEATURE (SME_I16I64); static const aarch64_feature_set aarch64_feature_sme2 = - AARCH64_FEATURES (3, SVE2, SME, SME2); + AARCH64_FEATURE (SME2); static const aarch64_feature_set aarch64_feature_sme2_i16i64 = - AARCH64_FEATURES (2, SME2, SME_I16I64); + AARCH64_FEATURE (SME_I16I64); static const aarch64_feature_set aarch64_feature_sme2_f64f64 = - AARCH64_FEATURES (2, SME2, SME_F64F64); + AARCH64_FEATURE (SME_F64F64); static const aarch64_feature_set aarch64_feature_i8mm = AARCH64_FEATURE (I8MM); static const aarch64_feature_set aarch64_feature_i8mm_sve = @@ -2909,7 +2924,7 @@ static const aarch64_feature_set aarch64_feature_the = static const aarch64_feature_set aarch64_feature_d128_the = AARCH64_FEATURES (2, D128, THE); static const aarch64_feature_set aarch64_feature_sve_b16b16_sve2 = - AARCH64_FEATURES (2, SVE_B16B16, SVE2); + AARCH64_FEATURES (2, SVE_B16B16, SVE2_SME2); static const aarch64_feature_set aarch64_feature_sve_b16b16_sme2 = AARCH64_FEATURES (2, SVE_B16B16, SME2); static const aarch64_feature_set aarch64_feature_sme_b16b16 = @@ -2928,6 +2943,8 @@ static const aarch64_feature_set aarch64_feature_f8f16mm = AARCH64_FEATURE (F8F16MM); static const aarch64_feature_set aarch64_feature_f8f16mm_sve2 = AARCH64_FEATURES (2, SVE2, F8F16MM); +static const aarch64_feature_set aarch64_feature_sve_aes2 = + AARCH64_FEATURES (2, SVE_AES2, SVE2_SSVE_AES); static const aarch64_feature_set aarch64_feature_rcpc3 = AARCH64_FEATURE (RCPC3); static const aarch64_feature_set aarch64_feature_cpa = @@ -2939,7 +2956,7 @@ static const aarch64_feature_set aarch64_feature_faminmax = static const aarch64_feature_set aarch64_feature_faminmax_sve2 = AARCH64_FEATURES (2, FAMINMAX, SVE2); static const aarch64_feature_set aarch64_feature_faminmax_sme2 = - AARCH64_FEATURES (3, SVE2, FAMINMAX, SME2); + AARCH64_FEATURES (2, FAMINMAX, SME2); static const aarch64_feature_set aarch64_feature_fp8 = AARCH64_FEATURE (FP8); static const aarch64_feature_set aarch64_feature_fp8_sve2 = @@ -2967,31 +2984,31 @@ static const aarch64_feature_set aarch64_feature_fp8dot4 = static const aarch64_feature_set aarch64_feature_fp8dot2 = AARCH64_FEATURE (FP8DOT2); static const aarch64_feature_set aarch64_feature_fp8fma_sve = - AARCH64_FEATURES (2, FP8FMA_SVE, SVE); + AARCH64_FEATURE (FP8FMA_SVE); static const aarch64_feature_set aarch64_feature_fp8dot4_sve = - AARCH64_FEATURES (2, FP8DOT4_SVE, SVE); + AARCH64_FEATURE (FP8DOT4_SVE); static const aarch64_feature_set aarch64_feature_fp8dot2_sve = - AARCH64_FEATURES (2, FP8DOT2_SVE, SVE); + AARCH64_FEATURE (FP8DOT2_SVE); static const aarch64_feature_set aarch64_feature_sme_f8f32 = - AARCH64_FEATURES (2, SME_F8F32, SME2); + AARCH64_FEATURE (SME_F8F32); static const aarch64_feature_set aarch64_feature_sme_f8f16 = - AARCH64_FEATURES (2, SME_F8F16, SME2); + AARCH64_FEATURE (SME_F8F16); static const aarch64_feature_set aarch64_feature_sme_f16f16_f8f16 = - AARCH64_FEATURES (2, SME_F16F16_F8F16, SME2); + AARCH64_FEATURE (SME_F16F16_F8F16); static const aarch64_feature_set aarch64_feature_sme_f16f16 = - AARCH64_FEATURES (2, SME_F16F16, SME2); + AARCH64_FEATURE (SME_F16F16); static const aarch64_feature_set aarch64_feature_sve2p1_sme = - AARCH64_FEATURES (2, SVE2p1_SME, SVE); + AARCH64_FEATURE (SVE2p1_SME); static const aarch64_feature_set aarch64_feature_sve2p1_sme2 = - AARCH64_FEATURES (2, SVE2p1_SME2, SVE); + AARCH64_FEATURE (SVE2p1_SME2); static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 = - AARCH64_FEATURES (2, SVE2p1_SME2p1, SVE); + AARCH64_FEATURE (SVE2p1_SME2p1); static const aarch64_feature_set aarch64_feature_sme2p2 = - AARCH64_FEATURES (2, SME2p2, SME); + AARCH64_FEATURE (SME2p2); static const aarch64_feature_set aarch64_feature_sve_sme2p2 = - AARCH64_FEATURES (2, SVE_SME2p2, SVE); + AARCH64_FEATURE (SVE_SME2p2); static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = - AARCH64_FEATURES (2, SVE2p2_SME2p2, SVE); + AARCH64_FEATURE (SVE2p2_SME2p2); #define CORE &aarch64_feature_v8 #define FP &aarch64_feature_fp @@ -3000,6 +3017,8 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = #define LSE &aarch64_feature_lse #define LSFE &aarch64_feature_lsfe #define LSE128 &aarch64_feature_lse128 +#define LSUI &aarch64_feature_lsui +#define LSUI_FP &aarch64_feature_lsui_fp #define LOR &aarch64_feature_lor #define RDMA &aarch64_feature_rdma #define FP_F16 &aarch64_feature_fp_f16 @@ -3067,6 +3086,7 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = #define F8F32MM_SVE2 &aarch64_feature_f8f32mm_sve2 #define F8F16MM &aarch64_feature_f8f16mm #define F8F16MM_SVE2 &aarch64_feature_f8f16mm_sve2 +#define SVE_AES2 &aarch64_feature_sve_aes2 #define RCPC3 &aarch64_feature_rcpc3 #define CPA &aarch64_feature_cpa #define CPA_SVE &aarch64_feature_cpa_sve @@ -3101,11 +3121,11 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = #define SVE2p2_SME2p2 &aarch64_feature_sve2p2_sme2p2 #define CORE_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, OP, CORE, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, OP, CORE, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define __FP_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, OP, FP, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, OP, FP, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define SIMD_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, OP, SIMD, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, OP, SIMD, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define _SIMD_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,VERIFIER) \ { NAME, OPCODE, MASK, CLASS, OP, SIMD, OPS, QUALS, FLAGS, 0, 0, VERIFIER } #define _CRC_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ @@ -3116,26 +3136,30 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = { NAME, OPCODE, MASK, CLASS, 0, LSFE, OPS, QUALS, FLAGS, 0, 0, NULL } #define _LSE128_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, LSE128, OPS, QUALS, FLAGS, 0, 0, NULL } +#define _LSUI_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ + { NAME, OPCODE, MASK, CLASS, 0, LSUI, OPS, QUALS, FLAGS, 0, 0, NULL } +#define _LSUI_FP_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ + { NAME, OPCODE, MASK, CLASS, 0, LSUI_FP, OPS, QUALS, FLAGS, 0, 0, NULL } #define _LOR_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, LOR, OPS, QUALS, FLAGS, 0, 0, NULL } #define RDMA_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, RDMA, OPS, QUALS, FLAGS, 0, 0, NULL } #define FF16_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, 0, FP_F16, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, 0, FP_F16, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define SF16_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, 0, SIMD_F16, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, 0, SIMD_F16, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define FPRCVT_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, FPRCVT, OPS, QUALS, FLAGS, 0, 0, NULL } #define _SVE_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE, OPS, QUALS, \ - FLAGS | F_STRICT, 0, TIED, NULL } + FLAGS | F_STRICT | F_INVALID_IMM_SYMS_2, 0, TIED, NULL } #define _SVE_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE, OPS, QUALS, \ - FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL } + FLAGS | F_STRICT | F_INVALID_IMM_SYMS_2, CONSTRAINTS, TIED, NULL } #define PAUTH_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, PAUTH, OPS, QUALS, FLAGS, 0, 0, NULL } #define CNUM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, OP, COMPNUM, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, OP, COMPNUM, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define JSCVT_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, JSCVT, OPS, QUALS, FLAGS, 0, 0, NULL } #define RCPC_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ @@ -3147,7 +3171,7 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = #define AES_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, AES, OPS, QUALS, FLAGS, 0, 0, NULL } #define SHA3_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, 0, SHA3, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, 0, SHA3, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define SM4_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, SM4, OPS, QUALS, FLAGS, 0, 0, NULL } #define FP16_V8_2A_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ @@ -3163,30 +3187,30 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = #define PREDRES_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, PREDRES, OPS, QUALS, FLAGS, 0, 0, NULL } #define CMPBR_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, 0, CMPBR, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, 0, CMPBR, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define MEMTAG_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, 0, MEMTAG, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, 0, MEMTAG, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define _TME_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, OP, TME, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, OP, TME, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define SVE2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE2, OPS, QUALS, \ - FLAGS | F_STRICT, 0, TIED, NULL } + FLAGS | F_STRICT | F_INVALID_IMM_SYMS_2, 0, TIED, NULL } #define SME2p1_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SME2p1, OPS, QUALS, \ FLAGS | F_STRICT, 0, TIED, NULL } #define SVE_F16F32MM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, OP, SVE_F16F32MM, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, OP, SVE_F16F32MM, OPS, QUALS, FLAGS | F_STRICT, 0, 0, NULL } #define F8F32MM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, OP, F8F32MM, OPS, QUALS, FLAGS, 0, 0, NULL } #define F8F32MM_SVE2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, OP, F8F32MM_SVE2, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, OP, F8F32MM_SVE2, OPS, QUALS, FLAGS | F_STRICT, 0, 0, NULL } #define F8F16MM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, OP, F8F16MM, OPS, QUALS, FLAGS, 0, 0, NULL } #define F8F16MM_SVE2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, OP, F8F16MM_SVE2, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, OP, F8F16MM_SVE2, OPS, QUALS, FLAGS | F_STRICT, 0, 0, NULL } #define SVE2_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE2, OPS, QUALS, \ - FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL } + FLAGS | F_STRICT | F_INVALID_IMM_SYMS_2, CONSTRAINTS, TIED, NULL } #define B16B16_SVE2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, B16B16_SVE2, OPS, QUALS, \ FLAGS | F_STRICT, 0, TIED, NULL } @@ -3211,6 +3235,9 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = #define SVE2AES_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE2_AES, OPS, QUALS, \ FLAGS | F_STRICT, 0, TIED, NULL } +#define SVE_AES2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ + { NAME, OPCODE, MASK, CLASS, OP, SVE_AES2, OPS, QUALS, \ + FLAGS | F_STRICT, 0, TIED, NULL } #define SVE2SHA3_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE2_SHA3, OPS, QUALS, \ FLAGS | F_STRICT, 0, TIED, NULL } @@ -3222,7 +3249,7 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL } #define SME_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SME, OPS, QUALS, \ - F_STRICT | FLAGS, 0, TIED, NULL } + F_STRICT | F_INVALID_IMM_SYMS_2 | FLAGS, 0, TIED, NULL } #define SME_F64F64_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SME_F64F64, OPS, QUALS, \ F_STRICT | FLAGS, 0, TIED, NULL } @@ -3234,7 +3261,7 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = F_STRICT | FLAGS, CONSTRAINTS, TIED, NULL } #define SME2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SME2, OPS, QUALS, \ - F_STRICT | FLAGS, 0, TIED, NULL } + F_STRICT | F_INVALID_IMM_SYMS_3 | FLAGS, 0, TIED, NULL } #define SME2_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SME2, OPS, QUALS, \ FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL } @@ -3248,36 +3275,34 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = { NAME, OPCODE, MASK, CLASS, OP, SVE2_BITPERM, OPS, QUALS, \ FLAGS | F_STRICT, 0, TIED, NULL } #define SVE_BFSCALE_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS,TIED) \ - { NAME, OPCODE, MASK, CLASS, 0, SVE_BFSCALE, OPS, QUALS, FLAGS, 0, TIED, NULL } + { NAME, OPCODE, MASK, CLASS, 0, SVE_BFSCALE, OPS, QUALS, FLAGS | F_STRICT, 0, TIED, NULL } #define SVE_BFSCALE_SME2_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS,TIED) \ - { NAME, OPCODE, MASK, CLASS, 0, SVE_BFSCALE_SME2, OPS, QUALS, FLAGS, 0, TIED, NULL } -#define BFLOAT16_SVE_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, 0, BFLOAT16_SVE, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, 0, SVE_BFSCALE_SME2, OPS, QUALS, FLAGS | F_STRICT, 0, TIED, NULL } #define BFLOAT16_SVE_INSNC(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS, CONSTRAINTS, TIED) \ { NAME, OPCODE, MASK, CLASS, 0, BFLOAT16_SVE, OPS, QUALS, FLAGS | F_STRICT, \ CONSTRAINTS, TIED, NULL } #define BFLOAT16_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, BFLOAT16, OPS, QUALS, FLAGS, 0, 0, NULL } #define INT8MATMUL_SVE_INSNC(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS, CONSTRAINTS, TIED) \ - { NAME, OPCODE, MASK, CLASS, 0, I8MM_SVE, OPS, QUALS, FLAGS, CONSTRAINTS, TIED, NULL } + { NAME, OPCODE, MASK, CLASS, 0, I8MM_SVE, OPS, QUALS, FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL } #define INT8MATMUL_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, I8MM, OPS, QUALS, FLAGS, 0, 0, NULL } #define F64MATMUL_SVE_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS,TIED) \ - { NAME, OPCODE, MASK, CLASS, 0, F64MM_SVE, OPS, QUALS, FLAGS, 0, TIED, NULL } + { NAME, OPCODE, MASK, CLASS, 0, F64MM_SVE, OPS, QUALS, FLAGS | F_STRICT, 0, TIED, NULL } #define F64MATMUL_SVE_INSNC(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS, CONSTRAINTS, TIED) \ - { NAME, OPCODE, MASK, CLASS, 0, F64MM_SVE, OPS, QUALS, FLAGS, CONSTRAINTS, TIED, NULL } + { NAME, OPCODE, MASK, CLASS, 0, F64MM_SVE, OPS, QUALS, FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL } #define F32MATMUL_SVE_INSNC(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS, CONSTRAINTS, TIED) \ - { NAME, OPCODE, MASK, CLASS, 0, F32MM_SVE, OPS, QUALS, FLAGS, CONSTRAINTS, TIED, NULL } + { NAME, OPCODE, MASK, CLASS, 0, F32MM_SVE, OPS, QUALS, FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL } #define V8R_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, ARMV8R, OPS, QUALS, FLAGS, 0, 0, NULL } #define XS_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, 0, XS, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, 0, XS, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define WFXT_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, WFXT, OPS, QUALS, FLAGS, 0, 0, NULL } #define _LS64_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, LS64, OPS, QUALS, FLAGS, 0, 0, NULL } #define FLAGM_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, CLASS, 0, FLAGM, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, CLASS, 0, FLAGM, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define MOPS_INSN(NAME, OPCODE, MASK, CLASS, OPS, QUALS, FLAGS, CONSTRAINTS, VERIFIER) \ { NAME, OPCODE, MASK, CLASS, 0, MOPS, OPS, QUALS, FLAGS, CONSTRAINTS, \ 0, VERIFIER } @@ -3287,13 +3312,13 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = #define HBC_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, HBC, OPS, QUALS, FLAGS, 0, 0, NULL } #define CSSC_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, cssc, 0, CSSC, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, cssc, 0, CSSC, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define CHK_INSN(NAME, OPCODE, MASK, OPS, QUALS, FLAGS) \ { NAME, OPCODE, MASK, ic_system, 0, CHK, OPS, QUALS, FLAGS, 0, 0, NULL } #define GCS_INSN(NAME, OPCODE, MASK, OPS, QUALS, FLAGS) \ { NAME, OPCODE, MASK, gcs, 0, GCS, OPS, QUALS, FLAGS, 0, 0, NULL } #define D128_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \ - { NAME, OPCODE, MASK, ic_system, 0, D128, OPS, QUALS, FLAGS, 0, 0, NULL } + { NAME, OPCODE, MASK, ic_system, 0, D128, OPS, QUALS, FLAGS | F_INVALID_IMM_SYMS_1, 0, 0, NULL } #define THE_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, the, 0, THE, OPS, QUALS, FLAGS, 0, 0, NULL } #define D128_THE_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \ @@ -3309,10 +3334,10 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = { NAME, OPCODE, MASK, asimdsame, 0, FAMINMAX, OPS, QUALS, FLAGS, 0, 0, NULL } #define FAMINMAX_SVE2_INSN(NAME,OPCODE,MASK,OPS,QUALS,CONSTRAINTS) \ { NAME, OPCODE, MASK, sve_size_hsd, 0, FAMINMAX_SVE2, OPS, QUALS, \ - 0 | F_STRICT, CONSTRAINTS, 2, NULL } + F_STRICT, CONSTRAINTS, 2, NULL } #define FAMINMAX_SME2_INSN(NAME,OPCODE,MASK,OPS,QUALS) \ { NAME, OPCODE, MASK, sme_size_22_hsd, 0, FAMINMAX_SME2, OPS, QUALS, \ - F_STRICT | 0, 0, 1, NULL } + F_STRICT, 0, 1, NULL } #define FP8_INSN(NAME, OPCODE, MASK, CLASS, OPS, QUALS, FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, FP8, OPS, QUALS, FLAGS, 0, 0, NULL } #define FP8_SVE2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ @@ -3324,16 +3349,16 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = #define LUT_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, lut, 0, LUT, OPS, QUALS, FLAGS, 0, 0, NULL } #define LUT_SVE2_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS,CONSTRAINTS) \ - { NAME, OPCODE, MASK, lut, 0, LUT_SVE2, OPS, QUALS, \ - FLAGS, CONSTRAINTS, 0, NULL } + { NAME, OPCODE, MASK, sve_misc, 0, LUT_SVE2, OPS, QUALS, \ + FLAGS | F_STRICT, CONSTRAINTS, 0, NULL } #define BRBE_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, ic_system, 0, BRBE, OPS, QUALS, FLAGS, 0, 0, NULL } #define LUTv2_SME2_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, LUTv2_SME2, OPS, QUALS, \ - FLAGS, 0, 0, NULL } + FLAGS | F_STRICT, 0, 0, NULL } #define LUTv2_SME2p1_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, LUTv2_SME2p1, OPS, QUALS, \ - FLAGS, 0, 0, NULL } + FLAGS | F_STRICT, 0, 0, NULL } #define FP8FMA_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, 0, FP8FMA, OPS, QUALS, FLAGS, 0, 0, NULL } #define FP8DOT4_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \ @@ -3363,7 +3388,7 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = F_STRICT | FLAGS, CONSTRAINTS, TIED, NULL } #define SVE2p1_SME2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE2p1_SME2, OPS, QUALS, \ - F_STRICT | FLAGS, 0, TIED, NULL } + F_STRICT | F_INVALID_IMM_SYMS_2 | FLAGS, 0, TIED, NULL } #define SVE2p1_SME2_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE2p1_SME2, OPS, QUALS, \ F_STRICT | FLAGS, CONSTRAINTS, TIED, NULL } @@ -3372,7 +3397,7 @@ static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = F_STRICT | FLAGS, 0, TIED, NULL } #define SVE2p1_SME2p1_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE2p1_SME2p1, OPS, QUALS, \ - F_STRICT | FLAGS, CONSTRAINTS, TIED, NULL } + F_STRICT | F_INVALID_IMM_SYMS_2 | FLAGS, CONSTRAINTS, TIED, NULL } #define SVE_SME2p2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE_SME2p2, OPS, QUALS, \ FLAGS | F_STRICT, 0, TIED, NULL } @@ -4766,6 +4791,55 @@ const struct aarch64_opcode aarch64_opcode_table[] = _LSE128_INSN ("swppa", 0x19a08000, 0xffe0fc00, lse128_atomic, OP3 (LSE128_Rt, LSE128_Rt2, ADDR_SIMPLE), QL_X2NIL, 0), _LSE128_INSN ("swppal", 0x19e08000, 0xffe0fc00, lse128_atomic, OP3 (LSE128_Rt, LSE128_Rt2, ADDR_SIMPLE), QL_X2NIL, 0), _LSE128_INSN ("swppl", 0x19608000, 0xffe0fc00, lse128_atomic, OP3 (LSE128_Rt, LSE128_Rt2, ADDR_SIMPLE), QL_X2NIL, 0), + + /* LSUI extension */ + _LSUI_INSN ("ldtxr", 0x895f7c00, 0xbffffc00, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_R1NIL, F_GPRSIZE_IN_Q), + _LSUI_INSN ("ldatxr", 0x895ffc00, 0xbffffc00, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_R1NIL, F_GPRSIZE_IN_Q), + _LSUI_INSN ("sttxr", 0x89007c00, 0xbfe0fc00, ldstexcl, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2_LDST_EXC, F_GPRSIZE_IN_Q), + _LSUI_INSN ("stltxr", 0x8900fc00, 0xbfe0fc00, ldstexcl, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2_LDST_EXC, F_GPRSIZE_IN_Q), + _LSUI_INSN ("cast", 0xc9807c00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0), + _LSUI_INSN ("casat", 0xc9c07c00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0), + _LSUI_INSN ("casalt", 0xc9c0fc00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0), + _LSUI_INSN ("caslt", 0xc980fc00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0), + _LSUI_INSN ("caspt", 0x49807c00, 0xffe0fc00, lse_atomic, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0), + _LSUI_INSN ("caspat", 0x49c07c00, 0xffe0fc00, lse_atomic, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0), + _LSUI_INSN ("caspalt", 0x49c0fc00, 0xffe0fc00, lse_atomic, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0), + _LSUI_INSN ("casplt", 0x4980fc00, 0xffe0fc00, lse_atomic, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0), + _LSUI_INSN ("swpt", 0x19208400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ), + _LSUI_INSN ("swpta", 0x19a08400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ), + _LSUI_INSN ("swptal", 0x19e08400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ), + _LSUI_INSN ("swptl", 0x19608400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ), + _LSUI_INSN ("ldtadd", 0x19200400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS), + _LSUI_INSN ("sttadd", 0x1920041f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS), + _LSUI_INSN ("ldtadda", 0x19a00400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ), + _LSUI_INSN ("ldtaddal", 0x19e00400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ), + _LSUI_INSN ("ldtaddl", 0x19600400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS), + _LSUI_INSN ("sttaddl", 0x1960041f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS), + _LSUI_INSN ("ldtclr", 0x19201400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS), + _LSUI_INSN ("sttclr", 0x1920141f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS), + _LSUI_INSN ("ldtclra", 0x19a01400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ), + _LSUI_INSN ("ldtclral", 0x19e01400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ), + _LSUI_INSN ("ldtclrl", 0x19601400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS), + _LSUI_INSN ("sttclrl", 0x1960141f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS), + _LSUI_INSN ("ldtset", 0x19203400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS), + _LSUI_INSN ("sttset", 0x1920341f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS), + _LSUI_INSN ("ldtseta", 0x19a03400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ), + _LSUI_INSN ("ldtsetal", 0x19e03400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ), + _LSUI_INSN ("ldtsetl", 0x19603400, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS), + _LSUI_INSN ("sttsetl", 0x1960341f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS), + _LSUI_INSN ("ldtnp", 0xe8400000, 0xffc00000, ldstnapair_offs, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X, F_LDST_LOAD), + _LSUI_FP_INSN ("ldtnp", 0xec400000, 0xffc00000, ldstnapair_offs, OP3 (Fd, Fa, ADDR_SIMM7), QL_LDST_PAIR_S_Q, F_LDST_LOAD), + _LSUI_INSN ("sttnp", 0xe8000000, 0xffc00000, ldstnapair_offs, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X, F_LDST_STORE), + _LSUI_FP_INSN ("sttnp", 0xec000000, 0xffc00000, ldstnapair_offs, OP3 (Fd, Fa, ADDR_SIMM7), QL_LDST_PAIR_S_Q, F_LDST_STORE), + _LSUI_INSN ("ldtp", 0xe9400000, 0xffc00000, ldstpair_off, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X, F_LDST_LOAD), + _LSUI_FP_INSN ("ldtp", 0xed400000, 0xffc00000, ldstpair_off, OP3 (Fd, Fa, ADDR_SIMM7), QL_LDST_PAIR_S_Q, F_LDST_LOAD), + _LSUI_INSN ("sttp", 0xe9000000, 0xffc00000, ldstpair_off, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X, F_LDST_STORE), + _LSUI_FP_INSN ("sttp", 0xed000000, 0xffc00000, ldstpair_off, OP3 (Fd, Fa, ADDR_SIMM7), QL_LDST_PAIR_S_Q, F_LDST_STORE), + _LSUI_INSN ("ldtp", 0xe8c00000, 0xfec00000, ldstpair_indexed, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X, F_LDST_LOAD), + _LSUI_FP_INSN ("ldtp", 0xecc00000, 0xfec00000, ldstpair_indexed, OP3 (Fd, Fa, ADDR_SIMM7), QL_LDST_PAIR_S_Q, F_LDST_LOAD), + _LSUI_INSN ("sttp", 0xe8800000, 0xfec00000, ldstpair_indexed, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X, F_LDST_STORE), + _LSUI_FP_INSN ("sttp", 0xec800000, 0xfec00000, ldstpair_indexed, OP3 (Fd, Fa, ADDR_SIMM7), QL_LDST_PAIR_S_Q, F_LDST_STORE), + /* RCPC3 extension. */ RCPC3_INSN ("ldiapp", 0x19400800, 0x3fe0ec00, rcpc3, OP3 (Rt, Rs, RCPC3_ADDR_OPT_POSTIND), QL_R2NIL, F_RCPC3_SIZE), RCPC3_INSN ("stilp", 0x19000800, 0x3fe0ec00, rcpc3, OP3 (Rt, Rs, RCPC3_ADDR_OPT_PREIND_WB), QL_R2NIL, F_RCPC3_SIZE), @@ -4809,6 +4883,7 @@ const struct aarch64_opcode aarch64_opcode_table[] = SME_INSN ("smstop", 0xd503407f, 0xfffff1ff, sme_stop, 0, OP1 (SME_SM_ZA), {}, F_SYS_WRITE, 0), /* System. */ CHK_INSN ("chkfeat", 0xd503251f, 0xffffffff, OP1 (X16), QL_I1X, 0), + CORE_INSN ("stshh", 0xd503261f, 0xffffffdf, ic_system, 0, OP1 (STSHH_POLICY), {}, F_ALIAS), CORE_INSN ("msr", 0xd500401f, 0xfff8f01f, ic_system, 0, OP2 (PSTATEFIELD, UIMM4), {}, F_SYS_WRITE), CORE_INSN ("hint",0xd503201f, 0xfffff01f, ic_system, 0, OP1 (UIMM7), {}, F_HAS_ALIAS), CORE_INSN ("nop", 0xd503201f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS), @@ -5990,6 +6065,17 @@ const struct aarch64_opcode aarch64_opcode_table[] = SVE2BITPERM_INSN ("bdep", 0x4500b400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0), SVE2BITPERM_INSN ("bext", 0x4500b000, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0), SVE2BITPERM_INSN ("bgrp", 0x4500b800, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0), + /* SVE_AES2 instructions */ + SVE_AES2_INSN ("aesdimc", 0x4523ec00, 0xffe7fc01, sve_misc, 0, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zn_INDEX2_19), OP_SVE_BBQ, 0, 1), + SVE_AES2_INSN ("aesdimc", 0x4527ec00, 0xffe7fc03, sve_misc, 0, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zn_INDEX2_19), OP_SVE_BBQ, 0, 1), + SVE_AES2_INSN ("aesd", 0x4522ec00, 0xffe7fc01, sve_misc, 0, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zn_INDEX2_19), OP_SVE_BBQ, 0, 1), + SVE_AES2_INSN ("aesd", 0x4526ec00, 0xffe7fc03, sve_misc, 0, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zn_INDEX2_19), OP_SVE_BBQ, 0, 1), + SVE_AES2_INSN ("aesemc", 0x4523e800, 0xffe7fc01, sve_misc, 0, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zn_INDEX2_19), OP_SVE_BBQ, 0, 1), + SVE_AES2_INSN ("aesemc", 0x4527e800, 0xffe7fc03, sve_misc, 0, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zn_INDEX2_19), OP_SVE_BBQ, 0, 1), + SVE_AES2_INSN ("aese", 0x4522e800, 0xffe7fc01, sve_misc, 0, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zn_INDEX2_19), OP_SVE_BBQ, 0, 1), + SVE_AES2_INSN ("aese", 0x4526e800, 0xffe7fc03, sve_misc, 0, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zn_INDEX2_19), OP_SVE_BBQ, 0, 1), + SVE_AES2_INSN ("pmlal", 0x4520fc00, 0xffe0fc01, sve_misc, 0, OP3 (SME_Zdnx2, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_Q_D, 0, 0), + SVE_AES2_INSN ("pmull", 0x4520f800, 0xffe0fc01, sve_misc, 0, OP3 (SME_Zdnx2, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_Q_D, 0, 0), /* SME instructions. */ SME_INSN ("addha", 0xc0900000, 0xffff001c, sme_misc, 0, OP4 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn), OP_SVE_SMMS, 0, 0), SME_I16I64_INSN ("addha", 0xc0d00000, 0xffff0018, sme_misc, 0, OP4 (SME_ZAda_3b, SVE_Pg3, SME_Pm, SVE_Zn), OP_SVE_DMMD, 0, 0), @@ -7629,6 +7715,8 @@ const struct aarch64_opcode aarch64_opcode_table[] = "the GCSB option name DSYNC") \ Y(SYSTEM, hint, "BTI_TARGET", 0, F (), \ "BTI targets j/c/jc") \ + Y(SYSTEM, hint, "STSHH_POLICY", 0, F(), \ + "an STSHH policy (keep/strm)") \ Y(SYSTEM, imm, "BRBOP", 0, F(FLD_brbop), \ "Branch Record Buffer operation operand") \ Y(INT_REG, regno, "Rt_IN_SYS_ALIASES", 0, F(FLD_Rt), \ @@ -8061,6 +8149,8 @@ const struct aarch64_opcode aarch64_opcode_table[] = F(FLD_SVE_Zn, FLD_imm2_15), "an indexed SVE vector register") \ Y(SVE_REG, simple_index, "SME_Zn_INDEX2_16", 0, \ F(FLD_SVE_Zn, FLD_imm2_16), "an indexed SVE vector register") \ + Y(SVE_REG, simple_index, "SME_Zn_INDEX2_19", 0, \ + F(FLD_SVE_Zn, FLD_imm2_19), "an indexed SVE vector register") \ Y(SVE_REG, simple_index, "SME_Zn_INDEX3_14", 0, \ F(FLD_SVE_Zn, FLD_imm3_14), "an indexed SVE vector register") \ Y(SVE_REG, simple_index, "SME_Zn_INDEX3_15", 0, \ diff --git a/opcodes/configure b/opcodes/configure index 4b6e965..ee9df4d 100755 --- a/opcodes/configure +++ b/opcodes/configure @@ -13518,287 +13518,6 @@ $as_echo "$LINGUAS" >&6; } fi - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - rm -f messages.po - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; } - GMSGFMT=":" - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT=":" - fi - rm -f messages.po - fi - - ac_config_commands="$ac_config_commands default-2" - - - . ${srcdir}/../bfd/configure.host # Put a plausible default for CC_FOR_BUILD in Makefile. @@ -15357,13 +15076,6 @@ fi # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - _ACEOF @@ -15377,7 +15089,6 @@ do "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;; @@ -16808,107 +16519,6 @@ _LT_EOF ;; esac done ;; - "default-2":C) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.ac is obsolete" || echo "setting ALL_LINGUAS in configure.ac is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.ac. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; esac done # for ac_tag diff --git a/opcodes/configure.ac b/opcodes/configure.ac index b30f9f8..e31ddde 100644 --- a/opcodes/configure.ac +++ b/opcodes/configure.ac @@ -86,8 +86,8 @@ AC_EXEEXT # host-specific stuff: ALL_LINGUAS="da de es fi fr ga id it nl pt_BR ro sr sv tr uk vi zh_CN" -ZW_GNU_GETTEXT_SISTER_DIR AM_PO_SUBDIRS +ZW_GNU_GETTEXT_SISTER_DIR . ${srcdir}/../bfd/configure.host diff --git a/sim/riscv/sim-main.c b/sim/riscv/sim-main.c index 4c949c4..172c593 100644 --- a/sim/riscv/sim-main.c +++ b/sim/riscv/sim-main.c @@ -1302,7 +1302,7 @@ execute_one (SIM_CPU *cpu, unsigned_word iw, const struct riscv_opcode *op) case INSN_CLASS_ZAAMO: case INSN_CLASS_ZALRSC: return execute_a (cpu, iw, op); - case INSN_CLASS_C: + case INSN_CLASS_ZCA: /* Check whether model with C extension is selected. */ if (riscv_cpu->csr.misa & 4) return execute_c (cpu, iw, op); |