1# Copyright (C) 2012-2021 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program; if not, write to the Free Software 15# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 16 17# 18# Some generic MIPS tests 19# 20 21# When adding a new test to this file, try to do the following things: 22# 23# * If testing assembly and disassembly of code, don't forget to test 24# the actual bit encodings of the instructions (using the 25# --show-raw-insn flag to objdump). 26# 27# * Try to run the test for as many architectures as appropriate, 28# using the "run_dump_test_arches" or "run_list_test_arches" functions, 29# along with the output from a call to "mips_arch_list_matching." 30# 31# * Be sure to compare the test output before and after your testsuite 32# changes, to verify that existing and new tests were run as expected. 33# Look for expect ERROR messages in the testsuite .log file to make sure 34# the new expect code did not contain errors. 35 36# To add support for a new CPU to this file, add an appropriate entry 37# to the sequence of "mips_arch_create" function calls below, and test 38# the result. The new CPU should automatically be used when running 39# various tests. If the new CPU is the default CPU for any tool 40# targets, make sure the call to "mips_arch_create" reflects that fact. 41 42 43# The functions below create and manipulate an "architecture data 44# array" which contains entries for each MIPS architecture (or CPU) 45# known to these tests. The array contains the following information 46# for each architecture, indexed by the name of the architecture 47# described by the entry: 48# 49# displayname: The name of the entry to be used for pretty-printing. 50# 51# gprsize: The size in bits of General Purpose Registers provided by 52# the architecture (must be 32 or 64). 53# 54# props: A list of text strings which are associated with the 55# architecture. These include the architecture name as well as 56# information about what instructions the CPU supports. When matching 57# based on properties, an additional property is added to the normal 58# property list, "gpr<gprsize>" so that tests can match CPUs which 59# have GPRs of a specific size. The following properties are most 60# useful when matching properties for generic (i.e., not CPU-specific) 61# tests: 62# 63# mips1, mips2, mips3, mips4, mips5, mips32, mips64 64# The architecture includes the instructions defined 65# by that MIPS ISA. 66# 67# fpisa3, fpisa4, fpisa5 68# The architecture includes the floating-point 69# instructions defined by that MIPS ISA. 70# 71# gpr_ilocks 72# The architecture interlocks GPRs accesses. (That is, 73# there are no load delay slots.) 74# 75# mips3d The architecture includes the MIPS-3D ASE. 76# 77# ror The architecture includes hardware rotate instructions. 78# 79# gpr32, gpr64 80# The architecture provides 32- or 64-bit General Purpose 81# Registers. 82# 83# singlefloat 84# The CPU is 64 bit, but only supports 32 bit FPU. 85# 86# nollsc 87# The CPU doesn't support ll, sc, lld and scd instructions. 88# 89# oddspreg 90# The CPU has odd-numbered single-precision registers 91# available and GAS enables use of them by default. 92# 93# as_flags: The assembler flags used when assembling tests for this 94# architecture. 95# 96# objdump_flags: The objdump flags used when disassembling tests for 97# this architecture. 98# 99# Most entries in the architecture array will have values in all of 100# the fields above. One entry, "default" represents the default CPU 101# based on the target of the assembler being built. If always has 102# empty "as_flags" and "objdump_flags." 103 104# mips_arch_init 105# 106# This function initializes the architecture data array ("mips_arches") 107# to be empty. 108proc mips_arch_init {} { 109 global mips_arches 110 111 # Catch because the variable won't be set the first time through. 112 catch {unset mips_arches} 113} 114 115# mips_arch_create ARCH GPRSIZE EXTENDS PROPS AS_FLAGS OBJDUMP_FLAGS \ 116# (optional:) DEFAULT_FOR_TARGETS 117# 118# This function creates a new entry in the architecture data array, 119# for the architecture or CPU named ARCH, and fills in the entry 120# according to the rest of the arguments. 121# 122# The new entry's property list is initialized to contain ARCH, any 123# properties specified by PROPS, and the properties associated with 124# the entry specified by EXTENDS. (The new architecture is considered 125# to extend the capabilities provided by that architecture.) 126# 127# If DEFAULT_FOR_TARGETS is specified, it is a list of targets for which 128# this architecture is the default architecture. If "istarget" returns 129# true for any of the targets in the list, a "default" entry will be 130# added to the architecture array which indicates that ARCH is the default 131# architecture. 132proc mips_arch_create {arch gprsize extends props as_flags objdump_flags 133 {default_for_targets {}}} { 134 global mips_arches 135 136 if { [info exists mips_arches($arch)] } { 137 error "mips_arch_create: arch \"$arch\" already exists" 138 } 139 if { $gprsize != 32 && $gprsize != 64 } { 140 error "mips_arch_create: invalid GPR size $gprsize" 141 } 142 143 set archdata(displayname) $arch 144 set archdata(gprsize) $gprsize 145 set archdata(as_flags) $as_flags 146 set archdata(objdump_flags) $objdump_flags 147 set archdata(props) $arch 148 eval lappend archdata(props) $props 149 if { [string length $extends] != 0 } { 150 eval lappend archdata(props) [mips_arch_properties $extends 0] 151 } 152 153 set mips_arches($arch) [array get archdata] 154 155 # Set as default if appropriate. 156 foreach target $default_for_targets { 157 if { [istarget $target] } { 158 if { [info exists mips_arches(default)] } { 159 error "mips_arch_create: default arch already exists" 160 } 161 162 set archdata(displayname) "default = $arch" 163 set archdata(as_flags) "" 164 set archdata(objdump_flags) "" 165 166 set mips_arches(default) [array get archdata] 167 break 168 } 169 } 170} 171 172# mips_arch_destroy ARCH 173# 174# The opposite of the above. This function removes an entry from 175# the architecture data array, for the architecture or CPU named ARCH. 176 177proc mips_arch_destroy {arch} { 178 global mips_arches 179 180 if { [info exists mips_arches($arch)] } { 181 unset mips_arches($arch) 182 } 183} 184 185# mips_arch_list_all 186# 187# This function returns the list of all names of entries in the 188# architecture data array (including the default entry, if a default 189# is known). 190proc mips_arch_list_all {} { 191 global mips_arches 192 return [lsort -dictionary [array names mips_arches]] 193} 194 195# mips_arch_data ARCH 196# 197# This function returns the information associated with ARCH 198# in the architecture data array, in "array get" form. 199proc mips_arch_data {arch} { 200 global mips_arches 201 202 if { ! [info exists mips_arches($arch)] } { 203 error "mips_arch_data: unknown arch \"$arch\"" 204 } 205 return $mips_arches($arch) 206} 207 208# mips_arch_displayname ARCH 209# 210# This function returns the printable name associated with ARCH in 211# the architecture data array. 212proc mips_arch_displayname {arch} { 213 array set archdata [mips_arch_data $arch] 214 return $archdata(displayname) 215} 216 217# mips_arch_properties ARCH (optional:) INCLUDE_GPRSIZE 218# 219# This function returns the property list associated with ARCH in the 220# architecture data array, including the "canonical" target name as the 221# first element. 222# 223# If INCLUDE_GPRSIZE is non-zero, an additional "gpr32" or "gpr64" 224# property will be returned as part of the list based on the 225# architecture's GPR size. 226proc mips_arch_properties {arch {include_gprsize 1}} { 227 array set archdata [mips_arch_data $arch] 228 set props $archdata(props) 229 if { $include_gprsize } { 230 lappend props gpr$archdata(gprsize) 231 } 232 return $props 233} 234 235# mips_arch_as_flags ARCH 236# 237# This function returns the assembler flags associated with ARCH in 238# the architecture data array. 239proc mips_arch_as_flags {arch} { 240 array set archdata [mips_arch_data $arch] 241 return $archdata(as_flags) 242} 243 244# mips_arch_objdump_flags ARCH 245# 246# This function returns the objdump disassembly flags associated with 247# ARCH in the architecture data array. 248proc mips_arch_objdump_flags {arch} { 249 array set archdata [mips_arch_data $arch] 250 return $archdata(objdump_flags) 251} 252 253# mips_arch_matches ARCH PROPMATCHLIST 254# 255# This function returns non-zero if ARCH matches the set of properties 256# described by PROPMATCHLIST. Each entry in PROPMATCHLIST can either 257# be the name of a property which must be matched, or "!" followed by 258# the name of a property which must not be matched. ARCH matches 259# PROPMATCHLIST if and only if all of the conditions specified by 260# PROPMATCHLIST are satisfied. 261proc mips_arch_matches {arch propmatchlist} { 262 foreach pm $propmatchlist { 263 if { [string match {!*} $pm] } { 264 # fail if present. 265 set inverted 1 266 set p [string range $pm 1 end] 267 } { 268 # fail if not present. 269 set inverted 0 270 set p $pm 271 } 272 273 set loc [lsearch -exact [mips_arch_properties $arch] $p] 274 275 # required-absent and found, or required-present and not found: fail. 276 if { ($inverted && $loc != -1) || (! $inverted && $loc == -1) } { 277 return 0 278 } 279 } 280 return 1 281} 282 283# mips_arch_list_matching ARGS 284# 285# This function returns a list of all architectures which match 286# the conditions described by its arguments. Its arguments are 287# taken as a list and used as the PROPMATCHLIST in a call to 288# "mips_arch_matches" for each known architecture. 289proc mips_arch_list_matching {args} { 290 set l "" 291 foreach arch [mips_arch_list_all] { 292 # For now, don't match default arch until we know what its 293 # properties actually are. 294 if { [string compare $arch default] == 0 295 && [string length [mips_arch_properties default]] == 0} { 296 continue 297 } 298 if { [mips_arch_matches $arch $args] } { 299 lappend l $arch 300 } 301 } 302 return $l 303} 304 305 306# The functions below facilitate running various types of tests. 307 308# run_dump_test_arch NAME OPTS ARCH 309# 310# Invoke "run_dump_test" for test NAME with additional assembler options OPTS. 311# Add the assembler and disassembler flags that are associated with 312# architecture ARCH. 313# 314# You can override the expected output for particular architectures. 315# The possible test names are, in order of preference: 316# 317# 1. CARCH@NAME.d 318# 2. NAME.d 319# 320# where CARCH is the "canonical" name of architecture ARCH as recorded 321# in its associated property list. 322proc run_dump_test_arch { name opts arch } { 323 global subdir srcdir 324 325 set proparch [lindex [mips_arch_properties $arch 0] 0] 326 set prefixes [list ${proparch}@ ] 327 if { [ string match "mips16e2*" $proparch ] } { 328 lappend prefixes mips16e2@ 329 } 330 if { [ string match "mips16e*" $proparch ] } { 331 lappend prefixes mips16e@ 332 } 333 if { [ string match "mips16*" $proparch ] } { 334 lappend prefixes mips16@ 335 } 336 if { [ string match "octeon*" $proparch ] && $proparch != "octeon" } { 337 lappend prefixes octeon@ 338 } 339 if { [ string match "mips*r6" $proparch ]} { 340 lappend prefixes mipsr6@ 341 } 342 foreach prefix ${prefixes} { 343 set archname ${prefix}${name} 344 if { [file exists "$srcdir/$subdir/${archname}.d"] } { 345 set name $archname 346 break 347 } 348 } 349 350 if [catch {run_dump_test $name \ 351 "{name {([concat $opts [mips_arch_displayname $arch]])}} 352 {objdump {[mips_arch_objdump_flags $arch]}} 353 {as {[concat $opts [mips_arch_as_flags $arch]]}}"} rv] { 354 perror "$rv" 355 untested "$subdir/$name ($arch)" 356 } 357} 358 359# run_dump_test_arches NAME [OPTS] ARCH_LIST 360# 361# Invoke "run_dump_test_arch" for test NAME, for each architecture 362# listed in ARCH_LIST. OPTS, if specified, is a list of additional 363# assembler options that should be used for all architectures. 364proc run_dump_test_arches { name args } { 365 set opts "" 366 if { [llength $args] > 1 } { 367 set opts [lindex $args 0] 368 set args [lrange $args 1 end] 369 } 370 set arch_list [lindex $args 0] 371 foreach arch $arch_list { 372 run_dump_test_arch $name $opts $arch 373 } 374} 375 376# run_list_test_arch NAME OPTS ARCH 377# 378# Invoke "run_list_test" for test NAME with additional assembler options OPTS. 379# Add the assembler flags that are associated with architecture ARCH. 380proc run_list_test_arch { name opts arch } { 381 global subdir srcdir 382 383 set testname "MIPS $name ([concat $opts [mips_arch_displayname $arch]])" 384 set proparch [lindex [mips_arch_properties $arch 0] 0] 385 set prefixes [list ${proparch}@ ] 386 if { [ string match "mips16e2*" $proparch ] } { 387 lappend prefixes mips16e2@ 388 } 389 if { [ string match "mips16e*" $proparch ] } { 390 lappend prefixes mips16e@ 391 } 392 if { [ string match "mips16*" $proparch ] } { 393 lappend prefixes mips16@ 394 } 395 if { [ string match "octeon*" $proparch ] && $proparch != "octeon" } { 396 lappend prefixes octeon@ 397 } 398 if { [ string match "mips*r6" $proparch ]} { 399 lappend prefixes mipsr6@ 400 } 401 foreach prefix ${prefixes} { 402 set archname ${prefix}${name} 403 if { [file exists "$srcdir/$subdir/${archname}.l"] } { 404 set name $archname 405 break 406 } 407 } 408 409 if [catch {run_list_test \ 410 $name \ 411 [concat $opts [mips_arch_as_flags $arch]] \ 412 $testname} rv] { 413 perror "$rv" 414 untested "$testname" 415 } 416} 417 418# run_list_test_arches NAME [OPTS] ARCH_LIST 419# 420# Invoke "run_list_test_arch" for test NAME, for each architecture listed 421# in ARCH_LIST. OPTS, if specified, is a list of additional assembler 422# options that should be used for all architectures. 423proc run_list_test_arches { name args } { 424 set opts "" 425 if { [llength $args] > 1 } { 426 set opts [lindex $args 0] 427 set args [lrange $args 1 end] 428 } 429 set arch_list [lindex $args 0] 430 foreach arch $arch_list { 431 run_list_test_arch "$name" "$opts" "$arch" 432 } 433} 434 435 436# Create the architecture data array by providing data for all 437# known architectures. 438# 439# Note that several targets pick default CPU based on ABI. We 440# can't easily handle that; do NOT list those targets as defaulting 441# to any architecture. 442mips_arch_init 443mips_arch_create mips1 32 {} {} \ 444 { -march=mips1 -mtune=mips1 } { -mmips:3000 } 445mips_arch_create mips2 32 mips1 { gpr_ilocks } \ 446 { -march=mips2 -mtune=mips2 } { -mmips:6000 } 447mips_arch_create mips3 64 mips2 { fpisa3 } \ 448 { -march=mips3 -mtune=mips3 } { -mmips:4000 } 449mips_arch_create mips4 64 mips3 { fpisa4 } \ 450 { -march=mips4 -mtune=mips4 } { -mmips:8000 } 451mips_arch_create mips5 64 mips4 { fpisa5 } \ 452 { -march=mips5 -mtune=mips5 } { -mmips:mips5 } 453mips_arch_create mips32 32 mips2 {} \ 454 { -march=mips32 -mtune=mips32 } { -mmips:isa32 } \ 455 { mipsisa32-*-* mipsisa32el-*-* } 456mips_arch_create mips32r2 32 mips32 { fpisa3 fpisa4 fpisa5 ror } \ 457 { -march=mips32r2 -mtune=mips32r2 } \ 458 { -mmips:isa32r2 } \ 459 { mipsisa32r2-*-* mipsisa32r2el-*-* } 460mips_arch_create mips32r3 32 mips32r2 { fpisa3 fpisa4 fpisa5 ror } \ 461 { -march=mips32r3 -mtune=mips32r3 } \ 462 { -mmips:isa32r3 } \ 463 { mipsisa32r3-*-* mipsisa32r3el-*-* } 464mips_arch_create mips32r5 32 mips32r3 { fpisa3 fpisa4 fpisa5 ror } \ 465 { -march=mips32r5 -mtune=mips32r5 } \ 466 { -mmips:isa32r5 } \ 467 { mipsisa32r5-*-* mipsisa32r5el-*-* } 468mips_arch_create mips32r6 32 mips32r5 { fpisa3 fpisa4 fpisa5 ror } \ 469 { -march=mips32r6 -mtune=mips32r6 --defsym r6=} \ 470 { -mmips:isa32r6 } \ 471 { mipsisa32r6-*-* mipsisa32r6el-*-* } 472mips_arch_create mips64 64 mips5 { mips32 } \ 473 { -march=mips64 -mtune=mips64 } { -mmips:isa64 } \ 474 { mipsisa64-*-* mipsisa64el-*-* } 475mips_arch_create mips64r2 64 mips64 { mips32r2 ror } \ 476 { -march=mips64r2 -mtune=mips64r2 } \ 477 { -mmips:isa64r2 } \ 478 { mipsisa64r2-*-* mipsisa64r2el-*-* } 479mips_arch_create mips64r3 64 mips64r2 { mips32r3 ror } \ 480 { -march=mips64r3 -mtune=mips64r3 } \ 481 { -mmips:isa64r3 } \ 482 { mipsisa64r3-*-* mipsisa64r3el-*-* } 483mips_arch_create mips64r5 64 mips64r3 { mips32r5 ror } \ 484 { -march=mips64r5 -mtune=mips64r5 } \ 485 { -mmips:isa64r5 } \ 486 { mipsisa64r5-*-* mipsisa64r5el-*-* } 487mips_arch_create mips64r6 64 mips64r5 { mips32r6 ror } \ 488 { -march=mips64r6 -mtune=mips64r6 --defsym r6=} \ 489 { -mmips:isa64r6 } \ 490 { mipsisa64r6-*-* mipsisa64r6el-*-* } 491mips_arch_create mips16-32 32 {} {} \ 492 { -march=mips1 -mips16 } { -mmips:3000 } 493mips_arch_create mips16-64 64 mips16-32 {} \ 494 { -march=mips3 -mips16 } { -mmips:4000 } 495mips_arch_create mips16e-32 32 mips16-32 {} \ 496 { -march=mips32 -mips16 } { -mmips:isa32 } 497mips_arch_create mips16e2-32 32 mips16e-32 {} \ 498 { -march=mips32r2 -mips16 -mmips16e2 } \ 499 { -mmips:isa32r2 } 500mips_arch_create mips16e-64 64 mips16-64 { mips16e-32 } \ 501 { -march=mips64 -mips16 } { -mmips:isa64 } 502mips_arch_create mips16e2-64 64 mips16e-64 { mips16e2-32 } \ 503 { -march=mips64r2 -mips16 -mmips16e2 } \ 504 { -mmips:isa64r2 } 505mips_arch_create micromips 64 mips64r2 {} \ 506 { -march=mips64r2 -mmicromips } {} 507mips_arch_create r3000 32 mips1 {} \ 508 { -march=r3000 -mtune=r3000 } { -mmips:3000 } 509mips_arch_create r3900 32 mips1 { gpr_ilocks } \ 510 { -march=r3900 -mtune=r3900 } { -mmips:3900 } \ 511 { mipstx39-*-* mipstx39el-*-* } 512mips_arch_create r4000 64 mips3 {} \ 513 { -march=r4000 -mtune=r4000 } { -mmips:4000 } 514mips_arch_create vr5400 64 mips4 { ror } \ 515 { -march=vr5400 -mtune=vr5400 } { -mmips:5400 } 516mips_arch_create interaptiv-mr2 32 mips32r3 {} \ 517 { -march=interaptiv-mr2 -mtune=interaptiv-mr2 } \ 518 { -mmips:interaptiv-mr2 } 519mips_arch_create sb1 64 mips64 { mips3d oddspreg } \ 520 { -march=sb1 -mtune=sb1 } { -mmips:sb1 } \ 521 { mipsisa64sb1-*-* mipsisa64sb1el-*-* } 522mips_arch_create octeon 64 mips64r2 { oddspreg } \ 523 { -march=octeon -mtune=octeon } { -mmips:octeon } \ 524 { mips64octeon*-*-* } 525mips_arch_create octeonp 64 octeon { oddspreg } \ 526 { -march=octeon+ -mtune=octeon+ } { -mmips:octeon+ } \ 527 { } 528mips_arch_create octeon2 64 octeonp { oddspreg } \ 529 { -march=octeon2 -mtune=octeon2 } { -mmips:octeon2 } \ 530 { } 531mips_arch_create octeon3 64 octeon2 { oddspreg } \ 532 { -march=octeon3 -mtune=octeon3 } { -mmips:octeon3 } \ 533 { } 534mips_arch_create xlr 64 mips64 { oddspreg } \ 535 { -march=xlr -mtune=xlr } { -mmips:xlr } 536mips_arch_create r5900 64 mips3 { gpr_ilocks singlefloat nollsc } \ 537 { -march=r5900 -mtune=r5900 } { -mmips:5900 } \ 538 { mipsr5900el-*-* mips64r5900el-*-* } 539mips_arch_create mips16e2-interaptiv-mr2 32 mips16e2-32 {} \ 540 { -march=interaptiv-mr2 -mips16 } \ 541 { -mmips:interaptiv-mr2 } 542 543# 544# And now begin the actual tests! VxWorks uses RELA rather than REL 545# relocations, so most of the generic dump tests will not work there. 546# 547if { [istarget mips*-*-vxworks*] } { 548 run_dump_test "vxworks1" 549 run_dump_test "vxworks1-xgot" 550 run_dump_test "vxworks1-el" 551 run_dump_test "vxworks1-xgot-el" 552 553 run_list_test "option-pic-vxworks-1" "-mvxworks-pic" \ 554 "MIPS invalid PIC option in VxWorks PIC" 555 run_list_test "option-pic-vxworks-2" "-mvxworks-pic" \ 556 "MIPS invalid switch to SVR4 PIC from VxWorks PIC" 557} elseif { [istarget mips*-*-*] } { 558 set addr32 [expr [istarget mipstx39*-*-*] || [istarget mips-*-linux*] || [istarget mipsel-*-linux*] \ 559 || [istarget mipsisa32-*-linux*] || [istarget mipsisa32el-*-linux*]] 560 set has_newabi [expr [istarget *-*-irix6*] || [istarget mips*-*-linux*] \ 561 || [istarget mips*-sde-elf*] || [istarget mips*-mti-elf*] \ 562 || [istarget mips*-img-elf*]] 563 564 if { [istarget "mips*-*-*linux*"] 565 || [istarget "mips*-sde-elf*"] 566 || [istarget "mips*-mti-elf*"] 567 || [istarget "mips*-img-elf*"] 568 || [istarget "mips*-*-*bsd*"] } then { 569 set tmips "t" 570 } else { 571 set tmips "" 572 } 573 if [istarget mips*el-*-*] { 574 set el "el" 575 } { 576 set el "" 577 } 578 set imips [expr [istarget *-*-irix*] ? {"-irix"} : {""}] 579 580 run_dump_test_arches "dot-1" [mips_arch_list_matching mips1] 581 run_dump_test_arches "abs" [mips_arch_list_matching mips1] 582 run_dump_test_arches "add" [mips_arch_list_matching mips1] 583 run_dump_test_arches "and" [mips_arch_list_matching mips1] 584 run_dump_test_arches "mips1-fp" [mips_arch_list_matching mips1] 585 run_list_test_arches "mips1-fp" "-32 -msoft-float" \ 586 [mips_arch_list_matching mips1] 587 run_dump_test "break20" 588 run_dump_test "trap20" 589 590 run_dump_test_arches "beq" [mips_arch_list_matching mips1] 591 run_dump_test_arches "bge" [mips_arch_list_matching mips1] 592 run_dump_test_arches "bgeu" [mips_arch_list_matching mips1] 593 run_dump_test_arches "blt" [mips_arch_list_matching mips1] 594 run_dump_test_arches "bltu" [mips_arch_list_matching mips1] 595 run_dump_test_arches "branch-likely" [mips_arch_list_matching mips2 !mips32r6] 596 run_dump_test_arches "branch-misc-1" [mips_arch_list_matching mips1] 597 run_dump_test_arches "branch-misc-2" [mips_arch_list_matching mips1] 598 run_dump_test_arches "branch-misc-2pic" [mips_arch_list_matching mips1] 599 run_dump_test "branch-misc-3" 600 run_dump_test_arches "branch-misc-4" [mips_arch_list_matching mips1] 601 run_dump_test_arches "branch-misc-5" [mips_arch_list_matching mips1] 602 run_dump_test_arches "branch-misc-5pic" [mips_arch_list_matching mips1] 603 if $has_newabi { 604 run_dump_test_arches "branch-misc-2-64" \ 605 [mips_arch_list_matching mips3] 606 run_dump_test_arches "branch-misc-2pic-64" \ 607 [mips_arch_list_matching mips3] 608 run_dump_test_arches "branch-misc-4-64" \ 609 [mips_arch_list_matching mips3] 610 run_dump_test_arches "branch-misc-5-64" \ 611 [mips_arch_list_matching mips3] 612 run_dump_test_arches "branch-misc-5pic-64" \ 613 [mips_arch_list_matching mips3] 614 } 615 run_dump_test "branch-swap" 616 617 # Sweep a range of branch offsets so that it hits a position where 618 # it is at the beginning of a frag and then swapped with a 16-bit 619 # instruction from the preceding frag. The offset will be somewhere 620 # close below 4096 as this is the default obstack size limit that 621 # we use and some space will have been already consumed. The exact 622 # amount depends on the host's programming model. 623 for { set count 960 } { $count <= 1024 } { incr count } { 624 run_list_test "branch-swap-2" "--defsym count=$count" \ 625 "MIPS branch swapping ($count)" 626 } 627 628 run_dump_test_arches "branch-swap-3" [mips_arch_list_all] 629 run_dump_test_arches "branch-swap-4" [mips_arch_list_all] 630 631 run_dump_test "branch-section-1" 632 run_dump_test "branch-section-2" 633 run_dump_test "branch-section-3" 634 run_dump_test "branch-section-4" 635 run_dump_test "branch-extern-1" 636 run_dump_test "branch-extern-2" 637 run_dump_test "branch-extern-3" 638 run_dump_test "branch-extern-4" 639 run_dump_test "branch-weak-1" 640 run_dump_test "branch-weak-2" 641 run_dump_test "branch-weak-3" 642 run_dump_test "branch-weak-4" 643 run_dump_test "branch-weak-5" 644 run_dump_test "branch-weak-6" 645 run_dump_test "branch-weak-7" 646 run_dump_test "branch-local-1" 647 run_dump_test "branch-local-2" 648 run_dump_test "branch-local-ignore-2" 649 run_dump_test "branch-local-3" 650 run_dump_test "branch-local-ignore-3" 651 run_dump_test "branch-local-4" 652 run_dump_test "branch-local-5" 653 run_dump_test "branch-local-ignore-5" 654 run_dump_test "branch-local-6" 655 run_dump_test "branch-local-ignore-6" 656 run_dump_test "branch-local-7" 657 if $has_newabi { 658 run_dump_test "branch-local-n32-1" 659 run_dump_test "branch-local-n32-2" 660 run_dump_test "branch-local-ignore-n32-2" 661 run_dump_test "branch-local-n32-3" 662 run_dump_test "branch-local-ignore-n32-3" 663 run_dump_test "branch-local-n32-4" 664 run_dump_test "branch-local-n32-5" 665 run_dump_test "branch-local-ignore-n32-5" 666 run_dump_test "branch-local-n32-6" 667 run_dump_test "branch-local-ignore-n32-6" 668 run_dump_test "branch-local-n32-7" 669 run_dump_test "branch-local-n64-1" 670 run_dump_test "branch-local-n64-2" 671 run_dump_test "branch-local-ignore-n64-2" 672 run_dump_test "branch-local-n64-3" 673 run_dump_test "branch-local-ignore-n64-3" 674 run_dump_test "branch-local-n64-4" 675 run_dump_test "branch-local-n64-5" 676 run_dump_test "branch-local-ignore-n64-5" 677 run_dump_test "branch-local-n64-6" 678 run_dump_test "branch-local-ignore-n64-6" 679 run_dump_test "branch-local-n64-7" 680 } 681 run_dump_test "branch-addend" 682 run_dump_test "branch-addend-micromips" 683 if $has_newabi { 684 run_dump_test "branch-addend-n32" 685 run_dump_test "branch-addend-micromips-n32" 686 run_dump_test "branch-addend-n64" 687 run_dump_test "branch-addend-micromips-n64" 688 } 689 run_dump_test "branch-absolute" 690 run_dump_test "branch-absolute-addend" 691 if $has_newabi { 692 run_dump_test "branch-absolute-n32" 693 run_dump_test "branch-absolute-addend-n32" 694 run_dump_test "branch-absolute-n64" 695 run_dump_test "branch-absolute-addend-n64" 696 } 697 698 run_dump_test_arches "nal-1" [mips_arch_list_matching mips1 !micromips] 699 run_dump_test_arches "nal-2" [mips_arch_list_matching mips1 !micromips] 700 701 run_dump_test "compact-eh-eb-1" 702 run_dump_test "compact-eh-eb-2" 703 run_dump_test "compact-eh-eb-3" 704 run_dump_test "compact-eh-eb-4" 705 run_dump_test "compact-eh-eb-5" 706 run_dump_test "compact-eh-eb-6" 707 run_dump_test "compact-eh-eb-7" 708 run_dump_test "compact-eh-el-1" 709 run_dump_test "compact-eh-el-2" 710 run_dump_test "compact-eh-el-3" 711 run_dump_test "compact-eh-el-4" 712 run_dump_test "compact-eh-el-5" 713 run_dump_test "compact-eh-el-6" 714 run_dump_test "compact-eh-el-7" 715 run_list_test "compact-eh-err1" 716 run_list_test "compact-eh-err2" 717 718 run_dump_test "div" 719 720 if { !$addr32 && $has_newabi } { 721 run_dump_test_arches "dli" [mips_arch_list_matching mips3] 722 } 723 run_dump_test_arches "jal" [mips_arch_list_matching mips1] 724 run_dump_test_arches "jal-mask-11" [mips_arch_list_matching mips1] 725 run_dump_test_arches "jal-mask-12" [mips_arch_list_matching mips1] 726 run_dump_test_arches "jal-mask-21" [mips_arch_list_matching micromips] 727 run_dump_test_arches "jal-mask-22" [mips_arch_list_matching micromips] 728 run_dump_test "eret-1" 729 run_dump_test "eret-2" 730 run_dump_test "eret-3" 731 if { $has_newabi } { 732 run_dump_test_arches "fix-rm7000-1" \ 733 [mips_arch_list_matching mips3 !singlefloat \ 734 !mips64r6] 735 } 736 run_dump_test_arches "fix-rm7000-2" \ 737 [mips_arch_list_matching mips3 !singlefloat \ 738 !mips64r6] 739 run_dump_test_arches "24k-branch-delay-1" \ 740 [mips_arch_list_matching mips1] 741 run_dump_test_arches "24k-triple-stores-1" \ 742 [mips_arch_list_matching fpisa5 !octeon] 743 run_dump_test_arches "24k-triple-stores-2" \ 744 [mips_arch_list_matching mips2] 745 run_dump_test_arches "24k-triple-stores-2-llsc" \ 746 [mips_arch_list_matching mips2 !nollsc] 747 run_dump_test_arches "24k-triple-stores-3" \ 748 [mips_arch_list_matching mips2] 749 run_dump_test_arches "24k-triple-stores-4" \ 750 [mips_arch_list_matching mips2 !singlefloat] 751 run_dump_test_arches "24k-triple-stores-5" \ 752 [mips_arch_list_matching mips1] 753 run_dump_test_arches "24k-triple-stores-6" \ 754 [mips_arch_list_matching mips2 !singlefloat] 755 run_dump_test_arches "24k-triple-stores-7" \ 756 [mips_arch_list_matching mips2 !singlefloat] 757 run_dump_test_arches "24k-triple-stores-8" \ 758 [mips_arch_list_matching mips1] 759 run_dump_test_arches "24k-triple-stores-9" \ 760 [mips_arch_list_matching mips1] 761 run_dump_test_arches "24k-triple-stores-10" \ 762 [mips_arch_list_matching mips1] 763 run_dump_test_arches "24k-triple-stores-11" \ 764 [mips_arch_list_matching mips1] 765 766 run_dump_test_arches "jal-svr4pic${imips}" \ 767 [mips_arch_list_matching mips1] 768 run_dump_test_arches "jal-svr4pic-noreorder${imips}" \ 769 [mips_arch_list_matching mips1] 770 run_dump_test_arches "jal-svr4pic-local${imips}" \ 771 [mips_arch_list_matching mips1] 772 if $has_newabi { 773 run_dump_test_arches "jal-svr4pic-local-n32" \ 774 [mips_arch_list_matching mips3] 775 run_dump_test_arches "jal-svr4pic-local-n64" \ 776 [mips_arch_list_matching mips3] 777 } 778 run_dump_test "jal-xgot${imips}" 779 run_list_test_arches "jal-range" "-32" [mips_arch_list_matching mips1] 780 if $has_newabi { run_dump_test "jal-newabi" } 781 run_dump_test "la" 782 run_dump_test "la-svr4pic" 783 run_dump_test "la-xgot" 784 run_dump_test "lca-svr4pic" 785 run_dump_test "lca-xgot" 786 # XXX FIXME: Has mips2 and later insns with mips1 disassemblies. 787 # (Should split and then use appropriate arch lists.) 788 run_dump_test_arches "lb" [mips_arch_list_matching mips1 !mips2] 789 run_dump_test_arches "lb-svr4pic" \ 790 [mips_arch_list_matching mips1 !gpr_ilocks] 791 run_dump_test_arches "lb-svr4pic-ilocks" [mips_arch_list_matching gpr_ilocks] 792 # Both versions specify the cpu, so we can run both regardless of 793 # the interlocking in the configured default cpu. 794 run_dump_test "lb-xgot" 795 run_dump_test "lb-xgot-ilocks" 796 run_dump_test_arches "ld" [mips_arch_list_matching mips1] 797 run_dump_test_arches "ld-forward" [mips_arch_list_matching mips1] 798 run_dump_test_arches "sd" [mips_arch_list_matching mips1] 799 run_dump_test_arches "sd-forward" [mips_arch_list_matching mips1] 800 run_dump_test_arches "l_d" [mips_arch_list_matching mips1 !singlefloat] 801 run_dump_test_arches "l_d-single" [mips_arch_list_matching mips1 singlefloat] 802 run_dump_test_arches "l_d-forward" [mips_arch_list_matching mips1 !singlefloat] 803 run_dump_test_arches "s_d" [mips_arch_list_matching mips1 !singlefloat] 804 run_dump_test_arches "s_d-single" [mips_arch_list_matching mips1 singlefloat] 805 run_dump_test_arches "s_d-forward" [mips_arch_list_matching mips1 !singlefloat] 806 run_dump_test_arches "ldc1" [mips_arch_list_matching mips2 !singlefloat] 807 run_dump_test_arches "ldc1-forward" [mips_arch_list_matching mips2 !singlefloat] 808 run_dump_test_arches "sdc1" [mips_arch_list_matching mips2 !singlefloat] 809 run_dump_test_arches "sdc1-forward" [mips_arch_list_matching mips2 !singlefloat] 810 if $has_newabi { 811 run_dump_test_arches "ld-n32" [mips_arch_list_matching mips3] 812 run_dump_test_arches "ld-forward-n32" \ 813 [mips_arch_list_matching mips3] 814 run_dump_test_arches "sd-n32" [mips_arch_list_matching mips3] 815 run_dump_test_arches "sd-forward-n32" \ 816 [mips_arch_list_matching mips3] 817 run_dump_test_arches "l_d-n32" [mips_arch_list_matching mips3 !singlefloat] 818 run_dump_test_arches "l_d-forward-n32" \ 819 [mips_arch_list_matching mips3 !singlefloat] 820 run_dump_test_arches "s_d-n32" [mips_arch_list_matching mips3 !singlefloat] 821 run_dump_test_arches "s_d-forward-n32" \ 822 [mips_arch_list_matching mips3 !singlefloat] 823 run_dump_test_arches "ldc1-n32" [mips_arch_list_matching mips3 !singlefloat] 824 run_dump_test_arches "ldc1-forward-n32" \ 825 [mips_arch_list_matching mips3 !singlefloat] 826 run_dump_test_arches "sdc1-n32" [mips_arch_list_matching mips3 !singlefloat] 827 run_dump_test_arches "sdc1-forward-n32" \ 828 [mips_arch_list_matching mips3 !singlefloat] 829 run_dump_test_arches "ld-n64" [mips_arch_list_matching mips3] 830 run_dump_test_arches "ld-forward-n64" \ 831 [mips_arch_list_matching mips3] 832 run_dump_test_arches "sd-n64" [mips_arch_list_matching mips3] 833 run_dump_test_arches "sd-forward-n64" \ 834 [mips_arch_list_matching mips3] 835 run_dump_test_arches "l_d-n64" [mips_arch_list_matching mips3 !singlefloat] 836 run_dump_test_arches "l_d-forward-n64" \ 837 [mips_arch_list_matching mips3 !singlefloat] 838 run_dump_test_arches "s_d-n64" [mips_arch_list_matching mips3 !singlefloat] 839 run_dump_test_arches "s_d-forward-n64" \ 840 [mips_arch_list_matching mips3 !singlefloat] 841 run_dump_test_arches "ldc1-n64" [mips_arch_list_matching mips3 !singlefloat] 842 run_dump_test_arches "ldc1-forward-n64" \ 843 [mips_arch_list_matching mips3 !singlefloat] 844 run_dump_test_arches "sdc1-n64" [mips_arch_list_matching mips3 !singlefloat] 845 run_dump_test_arches "sdc1-forward-n64" \ 846 [mips_arch_list_matching mips3 !singlefloat] 847 } 848 run_dump_test_arches "ld-zero" [mips_arch_list_matching mips1] 849 run_dump_test_arches "ld-zero-2" [mips_arch_list_matching mips2 !nollsc] 850 run_dump_test_arches "ld-zero-3" [mips_arch_list_matching mips3 !nollsc] 851 run_dump_test_arches "ld-zero-u" [mips_arch_list_matching micromips] 852 run_dump_test_arches "ld-zero-q" [mips_arch_list_matching r5900] 853 run_dump_test "ld-svr4pic" 854 run_dump_test "ld-xgot" 855 run_dump_test_arches "li" [mips_arch_list_matching mips1] 856 run_dump_test "lifloat" 857 run_dump_test "lif-svr4pic" 858 run_dump_test "lif-xgot" 859 run_dump_test_arches "mips4" [mips_arch_list_matching mips4] 860 run_dump_test_arches "mips4-fp" "-32" \ 861 [mips_arch_list_matching fpisa4] 862 run_dump_test_arches "mips4-fp" "-mabi=o64" \ 863 [mips_arch_list_matching fpisa4 gpr64] 864 run_list_test_arches "mips4-fp" "-32 -msoft-float" \ 865 [mips_arch_list_matching fpisa4] 866 run_dump_test_arches "mips4-branch-likely" \ 867 [mips_arch_list_matching mips4 !mips32r6] 868 run_list_test_arches "mips4-branch-likely" "-32 -msoft-float" \ 869 [mips_arch_list_matching mips4 !mips32r6] 870 run_dump_test_arches "mips5-fp" "-32" \ 871 [mips_arch_list_matching fpisa5] 872 run_dump_test_arches "mips5-fp" "-mabi=o64" \ 873 [mips_arch_list_matching fpisa5 gpr64] 874 run_dump_test "mul" 875 876 run_dump_test_arches "rol" [mips_arch_list_matching mips1 !ror] 877 run_dump_test_arches "rol-hw" [mips_arch_list_matching ror] 878 879 run_dump_test_arches "rol64" \ 880 [mips_arch_list_matching gpr64 !ror !mips16-32] 881 run_dump_test_arches "rol64-hw" [mips_arch_list_matching gpr64 ror] 882 883 run_dump_test "sb" 884 run_dump_test_arches "sdata-gp" [mips_arch_list_matching mips1] 885 run_dump_test "trunc" 886 run_dump_test "ulh" 887 run_dump_test_arches "ulh2-eb" [mips_arch_list_matching mips1 !mips32r6] 888 run_dump_test_arches "ulh2-el" [mips_arch_list_matching mips1 !mips32r6] 889 run_dump_test "ulh-svr4pic" 890 run_dump_test "ulh-xgot" 891 run_dump_test "ulw" 892 run_dump_test "uld" 893 run_dump_test "ush" 894 run_dump_test "usw" 895 run_dump_test "usd" 896 run_dump_test_arches "ulw2-eb" [mips_arch_list_matching mips1 !gpr_ilocks \ 897 !mips32r6] 898 run_dump_test_arches "ulw2-eb-ilocks" [mips_arch_list_matching gpr_ilocks \ 899 !mips32r6] 900 run_dump_test_arches "ulw2-el" [mips_arch_list_matching mips1 !gpr_ilocks \ 901 !mips32r6] 902 run_dump_test_arches "ulw2-el-ilocks" [mips_arch_list_matching gpr_ilocks \ 903 !mips32r6] 904 905 run_dump_test_arches "uld2-eb" [mips_arch_list_matching mips3 !mips32r6] 906 run_dump_test_arches "uld2-el" [mips_arch_list_matching mips3 !mips32r6] 907 908 run_dump_test_arches "mips16" [mips_arch_list_matching mips16-64] 909 if { $has_newabi } { 910 run_dump_test_arches "mips16-64" \ 911 [mips_arch_list_matching mips16-64] 912 } 913 run_dump_test_arches "mips16-macro" [mips_arch_list_matching mips16-32] 914 run_dump_test_arches "mips16-macro-t" \ 915 [mips_arch_list_matching mips16-32] 916 run_dump_test_arches "mips16-macro-e" \ 917 [mips_arch_list_matching mips16-32] 918 run_dump_test_arches "mips16-insn-t" \ 919 [mips_arch_list_matching mips16-32] 920 run_dump_test_arches "mips16-insn-e" \ 921 [mips_arch_list_matching mips16-32] 922 # Check MIPS16e extensions 923 run_dump_test_arches "mips16e" [mips_arch_list_matching mips16e-32] 924 run_dump_test_arches "mips16e-64" [mips_arch_list_matching mips16e-32] 925 # Check MIPS16e2 extensions. 926 run_dump_test_arches "mips16e2" [mips_arch_list_matching mips16e2-32] 927 run_dump_test_arches "mips16e2-mt" [mips_arch_list_matching mips16e2-32] 928 # Check MIPS16 ISA subset disassembly 929 run_dump_test_arches "mips16-sub" [mips_arch_list_matching mips16-32] 930 run_dump_test_arches "mips16e-sub" [mips_arch_list_matching mips16-32] 931 run_dump_test_arches "mips16e-64-sub" \ 932 [mips_arch_list_matching mips16-32] 933 run_dump_test_arches "mips16e2-sub" [mips_arch_list_matching mips16-32] 934 run_dump_test_arches "mips16e2-mt-sub" \ 935 [mips_arch_list_matching mips16-32] 936 937 # Check jalx handling 938 run_dump_test "mips16-jalx" 939 run_dump_test "mips-jalx" 940 run_dump_test "mips-jalx-2" 941 run_dump_test "jalx-imm" 942 run_dump_test "jalx-addend" 943 run_dump_test "jalx-local" 944 if $has_newabi { 945 run_dump_test "jalx-imm-n32" 946 run_dump_test "jalx-addend-n32" 947 run_dump_test "jalx-local-n32" 948 run_dump_test "jalx-imm-n64" 949 run_dump_test "jalx-addend-n64" 950 run_dump_test "jalx-local-n64" 951 } 952 953 run_list_test "unaligned-jump-1" "-32" \ 954 "MIPS jump to unaligned symbol 1" 955 run_list_test "unaligned-jump-2" "-32" \ 956 "MIPS jump to unaligned symbol 2" 957 if $has_newabi { 958 run_dump_test "unaligned-jump-3" 959 } 960 run_list_test "unaligned-jump-mips16-1" "-32" \ 961 "MIPS16 jump to unaligned symbol 1" 962 run_list_test "unaligned-jump-mips16-2" "-32" \ 963 "MIPS16 jump to unaligned symbol 2" 964 if $has_newabi { 965 run_dump_test "unaligned-jump-mips16-3" 966 } 967 run_list_test "unaligned-jump-micromips-1" "-32" \ 968 "microMIPS jump to unaligned symbol 1" 969 run_list_test "unaligned-jump-micromips-2" "-32" \ 970 "microMIPS jump to unaligned symbol 2" 971 if $has_newabi { 972 run_dump_test "unaligned-jump-micromips-3" 973 } 974 run_list_test "unaligned-branch-1" "-32" \ 975 "MIPS branch to unaligned symbol 1" 976 run_list_test "unaligned-branch-2" "-32" \ 977 "MIPS branch to unaligned symbol 2" 978 if $has_newabi { 979 run_dump_test "unaligned-branch-3" 980 } 981 run_list_test "unaligned-branch-r6-1" "-32" \ 982 "MIPSr6 branch to unaligned symbol 1" 983 run_list_test "unaligned-branch-r6-2" "-32 -mips64r6" \ 984 "MIPSr6 branch to unaligned symbol 2" 985 run_list_test "unaligned-branch-r6-3" "-32" \ 986 "MIPSr6 branch to unaligned symbol 3" 987 run_list_test "unaligned-branch-r6-4" "-32 -mips64r6" \ 988 "MIPSr6 branch to unaligned symbol 4" 989 if $has_newabi { 990 run_dump_test "unaligned-branch-r6-5" 991 run_dump_test "unaligned-branch-r6-6" 992 } 993 run_list_test "unaligned-branch-mips16-1" "-32" \ 994 "MIPS16 branch to unaligned symbol 1" 995 run_list_test "unaligned-branch-mips16-2" "-32" \ 996 "MIPS16 branch to unaligned symbol 2" 997 if $has_newabi { 998 run_dump_test "unaligned-branch-mips16-3" 999 } 1000 run_list_test "unaligned-branch-micromips-1" "-32" \ 1001 "microMIPS branch to unaligned symbol 1" 1002 run_list_test "unaligned-branch-micromips-2" "-32" \ 1003 "microMIPS branch to unaligned symbol 2" 1004 if $has_newabi { 1005 run_dump_test "unaligned-branch-micromips-3" 1006 } 1007 1008 # Check MIPS16 HI16/LO16 relocations 1009 run_dump_test "mips16-hilo" 1010 run_dump_test "mips16e2-hilo" 1011 if $has_newabi { 1012 run_dump_test "mips16-hilo-n32" 1013 run_dump_test "mips16e2-hilo-n32" 1014 } 1015 run_dump_test "mips16-hilo-match" 1016 run_dump_test "mips16-reloc-error" 1017 run_dump_test "mips16e2-reloc-error" 1018 run_dump_test "mips16-reg-error" 1019 run_dump_test "mips16e2-imm-error" 1020 1021 run_dump_test "delay" 1022 run_dump_test "nodelay" 1023 run_dump_test "mips4010" 1024 run_dump_test "mips4650" 1025 run_dump_test "mips4100" 1026 run_dump_test "vr4111" 1027 run_dump_test "vr4120" 1028 run_dump_test "vr4120-2" 1029 run_dump_test "vr4130" 1030 run_dump_test "vr5400" 1031 run_list_test "vr5400-ill" "-march=vr5400" 1032 run_dump_test "vr5500" 1033 run_dump_test "rm7000" 1034 run_dump_test "perfcount" 1035 run_dump_test "lineno" 1036 run_dump_test "sync" 1037 1038 run_dump_test_arches "virt" [mips_arch_list_matching mips32r2] 1039 if { $has_newabi } { 1040 run_dump_test_arches "virt64" [mips_arch_list_matching mips64r2] 1041 } 1042 1043 run_dump_test_arches "mips32" [mips_arch_list_matching mips32] 1044 run_dump_test_arches "mips32-imm" [mips_arch_list_matching mips32] 1045 1046 run_dump_test_arches "mips32-sf32" [mips_arch_list_matching mips32] 1047 run_list_test_arches "mips32-sf32" "-32 -msoft-float" \ 1048 [mips_arch_list_matching mips32] 1049 run_dump_test_arches "mips32-cp2" [mips_arch_list_matching mips32 \ 1050 !octeon] 1051 1052 run_dump_test_arches "mips32r2" [mips_arch_list_matching mips32r2] 1053 run_dump_test_arches "mips32r2-cp2" [mips_arch_list_matching mips32r2 \ 1054 !octeon] 1055 run_dump_test_arches "mips32r2-fp32" \ 1056 [mips_arch_list_matching mips32r2] 1057 run_list_test_arches "mips32r2-fp32" "-32 -msoft-float" \ 1058 [mips_arch_list_matching mips32r2] 1059 run_list_test_arches "mips32r2-ill" "-32" \ 1060 [mips_arch_list_matching mips32r2 gpr32] 1061 run_list_test_arches "mips32r2-ill-fp64" "-mabi=o64" \ 1062 [mips_arch_list_matching mips32r2 gpr64] 1063 run_list_test_arches "mips32r2-ill-nofp" "-32 -msoft-float" \ 1064 [mips_arch_list_matching mips32r2] 1065 1066 run_dump_test_arches "mips64" [mips_arch_list_matching mips64] 1067 run_dump_test_arches "mips64-cp2" [mips_arch_list_matching mips64 \ 1068 !octeon] 1069 1070 run_dump_test_arches "mips64r2" [mips_arch_list_matching mips64r2] 1071 run_list_test_arches "mips64r2-ill" [mips_arch_list_matching mips64r2] 1072 1073 run_dump_test "set-arch" 1074 1075 if { !$addr32 } { 1076 run_dump_test "mips64-mips3d" 1077 if { $has_newabi } { 1078 run_dump_test_arches "mips64-mips3d-incl" \ 1079 [mips_arch_list_matching mips3d] 1080 } 1081 1082 run_dump_test "mips64-mdmx" 1083 if { $has_newabi } { 1084 run_dump_test "sb1-ext-mdmx" 1085 run_dump_test "sb1-ext-ps" 1086 } 1087 run_dump_test "xlr-ext" 1088 } 1089 1090 run_dump_test_arches "relax" [mips_arch_list_matching mips2 !mips32r6] 1091 run_dump_test_arches "relax-at" [mips_arch_list_matching mips2 !mips32r6] 1092 run_dump_test_arches "relax-offset" [mips_arch_list_matching mips1 \ 1093 !mips32r6] 1094 run_dump_test "relax-swap1-mips1" 1095 run_dump_test "relax-swap1-mips2" 1096 run_dump_test "relax-swap2" 1097 run_dump_test_arches "relax-swap3" [mips_arch_list_all] 1098 run_list_test_arches "relax-bc1any" "-mips3d -mabi=o64 -relax-branch" \ 1099 [mips_arch_list_matching mips64 \ 1100 !micromips !mips32r6] 1101 run_list_test_arches "relax-bposge" "-mdsp -relax-branch" \ 1102 [mips_arch_list_matching mips64r2 \ 1103 !micromips !mips32r6] 1104 1105 run_dump_test_arches "eva" [mips_arch_list_matching mips32r2 !octeon] 1106 1107 run_list_test "illegal" "-32" 1108 run_list_test "baddata1" "-32" 1109 run_list_test "jalr" "" 1110 1111 run_dump_test "mips-gp32-fp32" 1112 run_dump_test "mips-gp32-fp64" 1113 run_dump_test "mips-gp64-fp32" 1114 run_dump_test "mips-gp64-fp64" 1115 1116 # Make sure that -mcpu=FOO and -mFOO are equivalent. Assemble a file 1117 # containing 4650-specific instructions with -m4650 and -mcpu=4650, 1118 # and verify that they're the same. Specifically, we're checking 1119 # that the EF_MIPS_MACH field is set, and that the 4650 'mul' 1120 # instruction does get used. In previous versions of GAS, 1121 # only -mcpu=4650 would set the EF_MIPS_MACH field; -m4650 wouldn't. 1122 run_dump_test "elf_e_flags1" 1123 run_dump_test "elf_e_flags2" 1124 run_dump_test "elf_e_flags3" 1125 run_dump_test "elf_e_flags4" 1126 1127 # Check EF_MIPS_ARCH markings for each supported architecture. 1128 run_dump_test "elf_arch_mips1" 1129 run_dump_test "elf_arch_mips2" 1130 run_dump_test "elf_arch_mips3" 1131 run_dump_test "elf_arch_mips4" 1132 run_dump_test "elf_arch_mips5" 1133 run_dump_test "elf_arch_mips32" 1134 run_dump_test "elf_arch_mips32r2" 1135 run_dump_test "elf_arch_mips32r3" 1136 run_dump_test "elf_arch_mips32r5" 1137 run_dump_test "elf_arch_mips32r6" 1138 run_dump_test "elf_arch_mips64" 1139 run_dump_test "elf_arch_mips64r2" 1140 run_dump_test "elf_arch_mips64r3" 1141 run_dump_test "elf_arch_mips64r5" 1142 run_dump_test "elf_arch_mips64r6" 1143 1144 # Verify that ASE markings are handled properly. 1145 run_dump_test "elf_ase_mips16" 1146 run_dump_test "elf_ase_mips16-2" 1147 run_dump_test "elf_ase_mips16e2" 1148 run_dump_test "elf_ase_mips16e2-2" 1149 1150 run_dump_test "elf_ase_micromips" 1151 run_dump_test "elf_ase_micromips-2" 1152 1153 # Verify that machine markings are handled properly. 1154 run_dump_test "elf_mach_5900" 1155 run_dump_test "elf_mach_interaptiv-mr2" 1156 run_dump_test "elf_mach_p6600" 1157 run_dump_test "elf_mach_i6400" 1158 run_dump_test "elf_mach_i6500" 1159 1160 run_dump_test "mips-gp32-fp32-pic" 1161 run_dump_test "mips-gp32-fp64-pic" 1162 run_dump_test "mips-gp64-fp32-pic" 1163 run_dump_test "mips-gp64-fp64-pic" 1164 1165 run_dump_test "mips-abi32" 1166 run_dump_test "mips-abi32-pic" 1167 run_dump_test "mips-abi32-pic2${imips}" 1168 1169 run_dump_test "elf${el}-rel" 1170 run_dump_test_arches "elf${el}-rel2" \ 1171 [mips_arch_list_matching gpr64 !singlefloat !mips16-32] 1172 run_dump_test "e32${el}-rel2" 1173 run_dump_test "elf${el}-rel3" 1174 run_dump_test_arches "elf-rel4" [mips_arch_list_matching gpr64 !mips16-32] 1175 run_dump_test "e32-rel4" 1176 run_dump_test "elf-rel5" 1177 run_dump_test "elf-rel6" 1178 if $has_newabi { 1179 run_dump_test "elf-rel6-n32" 1180 run_dump_test "elf-rel6-n64" 1181 } 1182 run_dump_test "elf-rel7" 1183 run_dump_test "elf-rel8" 1184 run_dump_test "elf-rel8-mips16" 1185 run_dump_test "elf-rel9" 1186 run_dump_test "elf-rel9-mips16" 1187 run_dump_test "elf-rel9-mips16e2" 1188 if $has_newabi { 1189 run_dump_test "elf-rel10" 1190 run_dump_test "elf-rel11" 1191 } 1192 run_dump_test "elf-rel12" 1193 run_dump_test "elf-rel13" 1194 run_dump_test "elf-rel13-mips16" 1195 run_dump_test "elf-rel14" 1196 1197 if $has_newabi { 1198 run_dump_test "elf-rel15" 1199 run_dump_test "elf-rel16" 1200 1201 run_dump_test "elf-rel-got-n32" 1202 run_dump_test "elf-rel-xgot-n32" 1203 run_dump_test "elf-rel-got-n64" 1204 run_dump_test "elf-rel-xgot-n64" 1205 } 1206 run_dump_test "elf-rel17" 1207 if $has_newabi { 1208 run_dump_test "elf-rel18" 1209 } 1210 run_dump_test "elf-rel19" 1211 run_dump_test "elf-rel20" 1212 if $has_newabi { 1213 run_dump_test "elf-rel21" 1214 run_dump_test "elf-rel22" 1215 run_dump_test "elf-rel23" 1216 run_dump_test "elf-rel23a" 1217 run_dump_test "elf-rel23b" 1218 run_dump_test "elf-rel24" 1219 } 1220 1221 run_dump_test "elf-rel25" 1222 run_dump_test "elf-rel25a" 1223 run_dump_test "elf-rel26" 1224 1225 run_dump_test_arches "elf-rel27" [mips_arch_list_all] 1226 1227 if $has_newabi { 1228 run_dump_test "elf-rel28-n32" 1229 run_dump_test "elf-rel28-micromips-n32" 1230 run_dump_test "elf-rel28-n64" 1231 run_dump_test "elf-rel28-micromips-n64" 1232 run_dump_test "elf-rel28-lldscd-n32" 1233 run_dump_test "elf-rel28-lldscd-micromips-n32" 1234 run_dump_test "elf-rel28-lldscd-n64" 1235 run_dump_test "elf-rel28-lldscd-micromips-n64" 1236 run_dump_test_arches "elf-rel29" [mips_arch_list_matching mips3] 1237 } 1238 run_list_test_arches "elf-rel30" "-32" [mips_arch_list_all] 1239 1240 run_dump_test "comdat-reloc" 1241 1242 run_dump_test "${tmips}mips${el}16-e" 1243 run_dump_test "${tmips}mips${el}16-f" 1244 1245 run_dump_test "elf-consthilo" 1246 run_dump_test "expr1" 1247 1248 run_list_test "tls-ill" "-32" 1249 run_dump_test "tls-o32" 1250 run_dump_test "tls-relw" 1251 run_dump_test "jalr2${imips}" 1252 run_dump_test_arches "jalr3" [mips_arch_list_matching mips1 \ 1253 !micromips] 1254 run_dump_test_arches "jalr4" [mips_arch_list_matching mips1 \ 1255 !micromips] 1256 if $has_newabi { 1257 run_dump_test_arches "jalr3-n32" \ 1258 [mips_arch_list_matching mips3 \ 1259 !micromips] 1260 run_dump_test_arches "jalr4-n32" \ 1261 [mips_arch_list_matching mips3 \ 1262 !micromips] 1263 run_dump_test_arches "jalr3-n64" \ 1264 [mips_arch_list_matching mips3 \ 1265 !micromips] 1266 run_dump_test_arches "jalr4-n64" \ 1267 [mips_arch_list_matching mips3 \ 1268 !micromips] 1269 } 1270 1271 run_dump_test_arches "aent" [mips_arch_list_matching mips1] 1272 run_dump_test_arches "aent-2" [mips_arch_list_matching mips1] 1273 run_dump_test_arches "aent-mdebug" [mips_arch_list_matching mips1] 1274 run_dump_test_arches "aent-mdebug-2" \ 1275 [mips_arch_list_matching mips1] 1276 1277 run_dump_test_arches "loc-swap" [mips_arch_list_all] 1278 run_dump_test_arches "loc-swap-dis" [mips_arch_list_all] 1279 run_dump_test_arches "loc-swap-2" [mips_arch_list_all] 1280 run_dump_test_arches "loc-swap-3" [mips_arch_list_all] 1281 1282 run_dump_test "nan-legacy-1" 1283 run_dump_test "nan-legacy-2" 1284 run_dump_test "nan-legacy-3" 1285 run_dump_test "nan-legacy-4" 1286 run_dump_test "nan-legacy-5" 1287 1288 run_dump_test "nan-2008-1" 1289 run_dump_test "nan-2008-2" 1290 run_dump_test "nan-2008-3" 1291 run_dump_test "nan-2008-4" 1292 1293 run_list_test "nan-error-1" 1294 run_list_test "nan-error-2" "-mnan=foo" 1295 1296 if $has_newabi { 1297 run_dump_test "n32-consec" 1298 } 1299 1300 # tests of objdump's ability to disassemble the move mnemonic 1301 run_dump_test_arches "move" [mips_arch_list_matching mips64 !micromips] 1302 run_dump_test_arches "micromips32-move" [mips_arch_list_matching micromips] 1303 1304 # tests of objdump's ability to disassemble using different 1305 # register names. 1306 run_dump_test "gpr-names-numeric" 1307 run_dump_test "gpr-names-32" 1308 run_dump_test "gpr-names-n32" 1309 run_dump_test "gpr-names-64" 1310 1311 run_dump_test "fpr-names-numeric" 1312 run_dump_test "fpr-names-32" 1313 run_dump_test "fpr-names-n32" 1314 run_dump_test "fpr-names-64" 1315 1316 run_dump_test "cp0-names-numeric" 1317 run_dump_test "cp0-names-r3000" 1318 run_dump_test "cp0-names-r3900" 1319 run_dump_test "cp0-names-r4000" \ 1320 { { {name} {(r4000)} } { {objdump} {-M cp0-names=r4000} } } 1321 run_dump_test "cp0-names-r4000" \ 1322 { { {name} {(r4400)} } { {objdump} {-M cp0-names=r4400} } } 1323 run_dump_test "cp0-names-mips32" 1324 run_dump_test "cp0-names-mips32r2" 1325 run_dump_test "cp0-names-mips64" 1326 run_dump_test "cp0-names-mips64r2" 1327 run_dump_test "cp0-names-sb1" 1328 1329 run_dump_test "cp0sel-names-numeric" 1330 run_dump_test "cp0sel-names-mips32" 1331 run_dump_test "cp0sel-names-mips32r2" 1332 run_dump_test "cp0sel-names-mips64" 1333 run_dump_test "cp0sel-names-mips64r2" 1334 run_dump_test "cp0sel-names-sb1" 1335 1336 run_dump_test_arches "cp0c" [mips_arch_list_matching mips1 \ 1337 !micromips] 1338 run_dump_test_arches "cp0b" [mips_arch_list_matching mips1 \ 1339 !micromips] 1340 run_dump_test_arches "cp0bl" [mips_arch_list_matching mips1 \ 1341 !micromips] 1342 run_dump_test_arches "cp0m" [mips_arch_list_matching mips1 \ 1343 !micromips] 1344 1345 run_dump_test_arches "rfe" [mips_arch_list_matching mips1 \ 1346 !micromips] 1347 1348 run_dump_test "cp1-names-numeric" 1349 run_dump_test "cp1-names-r3000" 1350 run_dump_test "cp1-names-r3900" 1351 run_dump_test "cp1-names-r4000" \ 1352 { { {name} {(r4000)} } { {objdump} {-M cp0-names=r4000} } } 1353 run_dump_test "cp1-names-r4000" \ 1354 { { {name} {(r4400)} } { {objdump} {-M cp0-names=r4400} } } 1355 run_dump_test "cp1-names-mips32" 1356 run_dump_test "cp1-names-mips32r2" 1357 run_dump_test "cp1-names-mips64" 1358 run_dump_test "cp1-names-mips64r2" 1359 run_dump_test "cp1-names-sb1" 1360 1361 # The VR5400 and R5900 have their own sets of COP2 instructions, so 1362 # exclude them from generic testing. Likewise the Octeon and DMFC2/DMTC2. 1363 run_dump_test_arches "cp2" [mips_arch_list_matching mips1 \ 1364 !vr5400 !r5900] 1365 run_dump_test_arches "cp2-64" [mips_arch_list_matching mips1 \ 1366 !vr5400 !r5900 !octeon] 1367 run_dump_test_arches "cp2b" [mips_arch_list_matching mips1] 1368 run_dump_test_arches "cp2bl" [mips_arch_list_matching mips1] 1369 run_dump_test_arches "cp2m" [mips_arch_list_matching mips1] 1370 run_dump_test_arches "cp2d" [mips_arch_list_matching mips1] 1371 1372 run_dump_test_arches "cp3" [mips_arch_list_matching mips1 \ 1373 !micromips] 1374 run_dump_test_arches "cp3b" [mips_arch_list_matching mips1 \ 1375 !micromips] 1376 run_dump_test_arches "cp3bl" [mips_arch_list_matching mips1 \ 1377 !micromips] 1378 run_dump_test_arches "cp3m" [mips_arch_list_matching mips1 \ 1379 !micromips] 1380 run_dump_test_arches "cp3d" [mips_arch_list_matching mips1 \ 1381 !micromips] 1382 1383 run_dump_test_arches "c0" [mips_arch_list_matching mips1 \ 1384 !micromips] 1385 run_dump_test_arches "c1" [mips_arch_list_matching mips1 \ 1386 !micromips] 1387 run_dump_test_arches "c2" [mips_arch_list_matching mips1 \ 1388 !micromips] 1389 run_dump_test_arches "c3" [mips_arch_list_matching mips1 \ 1390 !micromips] 1391 1392 run_dump_test "hwr-names-numeric" 1393 run_dump_test "hwr-names-mips32r2" 1394 run_dump_test "hwr-names-mips64r2" 1395 run_dump_test_arches "hwr-names" [mips_arch_list_matching mips32r6 \ 1396 !micromipsr6] 1397 1398 run_dump_test "ldstla-32" 1399 run_dump_test "ldstla-32-mips3" 1400 run_dump_test "ldstla-32-shared" 1401 run_dump_test "ldstla-32-mips3-shared" 1402 run_list_test "ldstla-32-1" "-mabi=32" \ 1403 "MIPS ld-st-la bad constants (ABI o32)" 1404 run_list_test "ldstla-32-mips3-1" "-mabi=32" \ 1405 "MIPS ld-st-la bad constants (ABI o32, mips3)" 1406 run_list_test "ldstla-32-1" "-KPIC -mabi=32" \ 1407 "MIPS ld-st-la bad constants (ABI o32, shared)" 1408 run_list_test "ldstla-32-mips3-1" "-KPIC -mabi=32" \ 1409 "MIPS ld-st-la bad constants (ABI o32, mips3, shared)" 1410 run_dump_test "ldstla-eabi64" 1411 if $has_newabi { 1412 run_dump_test "ldstla-n64" 1413 run_dump_test "ldstla-n64-shared" 1414 run_dump_test "ldstla-n64-sym32" 1415 } 1416 1417 run_dump_test "macro-warn-1" 1418 run_dump_test "macro-warn-2" 1419 run_dump_test "macro-warn-3" 1420 run_dump_test "macro-warn-4" 1421 if $has_newabi { 1422 run_dump_test "macro-warn-1-n32" 1423 run_dump_test "macro-warn-2-n32" 1424 } 1425 1426 run_dump_test "noat-1" 1427 run_list_test "noat-2" "" 1428 run_list_test "noat-3" "" 1429 run_list_test "noat-4" "" 1430 run_list_test "noat-5" "" 1431 run_list_test "noat-6" "" 1432 run_list_test "noat-7" "" 1433 1434 run_dump_test "at-1" 1435 run_list_test "at-2" "-32 -mips1" "MIPS at-2" 1436 1437 run_dump_test "loongson-2e" 1438 run_dump_test "loongson-2f" 1439 run_dump_test "loongson-2f-2" 1440 run_dump_test "loongson-2f-3" 1441 1442 run_dump_test "loongson-3a" 1443 run_dump_test "loongson-3a-2" 1444 run_dump_test "loongson-3a-3" 1445 1446 run_dump_test "loongson-2f-mmi" 1447 run_dump_test "loongson-3a-mmi" 1448 1449 run_dump_test_arches "loongson-cam" [mips_arch_list_matching gs464] 1450 run_dump_test_arches "loongson-ext2" [mips_arch_list_matching gs464] 1451 1452 if { $has_newabi } { 1453 run_dump_test_arches "octeon" [mips_arch_list_matching octeon] 1454 } 1455 run_dump_test_arches "octeon-saa-saad" [mips_arch_list_matching octeonp] 1456 run_list_test_arches "octeon-ill" [mips_arch_list_matching octeon] 1457 if { $has_newabi } { 1458 run_dump_test_arches "octeon-pref" \ 1459 [mips_arch_list_matching octeon] 1460 } 1461 run_dump_test_arches "octeon2" [mips_arch_list_matching octeon2] 1462 run_dump_test_arches "octeon3" [mips_arch_list_matching octeon3] 1463 1464 run_dump_test "smartmips" 1465 run_dump_test_arches "mips32-dsp" [mips_arch_list_matching mips32r2 \ 1466 !octeon] 1467 run_dump_test_arches "mips32-dspr2" [mips_arch_list_matching mips32r2 \ 1468 !octeon] 1469 run_dump_test_arches "mips32-dspr3" [mips_arch_list_matching mips32r6] 1470 run_dump_test "mips64-dsp" 1471 run_dump_test "mips32-mt" 1472 1473 run_dump_test_arches "save" [lsort -dictionary -unique [concat \ 1474 [mips_arch_list_matching mips16e-32] \ 1475 [mips_arch_list_matching interaptiv-mr2]]] 1476 run_dump_test_arches "save-err" [lsort -dictionary -unique [concat \ 1477 [mips_arch_list_matching mips16e-32] \ 1478 [mips_arch_list_matching interaptiv-mr2]]] 1479 run_dump_test_arches "save-sub" [lsort -dictionary -unique [concat \ 1480 [mips_arch_list_matching mips1 !micromips] \ 1481 [mips_arch_list_matching mips16-32]]] 1482 1483 run_dump_test "mips16-dwarf2" 1484 if $has_newabi { 1485 run_dump_test "mips16-dwarf2-n32" 1486 } 1487 run_dump_test "mips16-stabs" 1488 1489 run_dump_test "mips16e-jrc" 1490 run_dump_test "mips16e2-lui" 1491 run_dump_test "mips16e2-mt-err" 1492 run_dump_test "mips16e2-copy" 1493 run_dump_test "mips16e2-copy-err" 1494 1495 run_dump_test "mips16-intermix" 1496 run_dump_test "mips16-extend" 1497 run_dump_test "mips16-extend-swap" 1498 run_dump_test "mips16-sprel-swap" 1499 run_dump_test "mips16-sdrasp" 1500 run_dump_test "mips16-insn-length-noargs" 1501 1502 run_dump_test "mips16-branch-unextended-1" 1503 run_dump_test "mips16-branch-unextended-2" 1504 run_dump_test "mips16-relax-unextended-1" 1505 run_dump_test "mips16-relax-unextended-2" 1506 run_dump_test "mips16-jal-t" 1507 run_dump_test "mips16-jal-e" 1508 1509 run_dump_test_arches "mips16-asmacro" [mips_arch_list_matching mips16-32] 1510 1511 run_dump_test "vxworks1" 1512 run_dump_test "vxworks1-xgot" 1513 run_dump_test "vxworks1-el" 1514 run_dump_test "vxworks1-xgot-el" 1515 1516 run_dump_test "noreorder" 1517 run_dump_test "align" 1518 run_dump_test "align2" 1519 run_dump_test "align2-el" 1520 run_dump_test "align3" 1521 run_dump_test "odd-float" 1522 run_dump_test "insn-opts" 1523 1524 run_list_test_arches "mips-macro-ill-sfp" "-32 -msingle-float" \ 1525 [mips_arch_list_matching mips2] 1526 run_list_test_arches "mips-macro-ill-nofp" "-32 -msoft-float" \ 1527 [mips_arch_list_matching mips2] 1528 1529 run_list_test_arches "mips-hard-float-flag" \ 1530 "-32 -msoft-float -mhard-float" \ 1531 [mips_arch_list_matching mips1 !singlefloat] 1532 run_list_test_arches "mips-double-float-flag" \ 1533 "-32 -msingle-float -mdouble-float" \ 1534 [mips_arch_list_matching mips1 !singlefloat] 1535 1536 run_dump_test "mips16-vis-1" 1537 run_dump_test "call-nonpic-1" 1538 run_dump_test "mips32-sync" 1539 run_dump_test_arches "mips32r2-sync" [lsort -dictionary -unique [concat \ 1540 [mips_arch_list_matching mips32r2] \ 1541 [mips_arch_list_matching mips16e2-32]]] 1542 run_dump_test_arches "mips32r2-sync-1" [lsort -dictionary -unique [concat \ 1543 [mips_arch_list_matching mips32r2] \ 1544 [mips_arch_list_matching mips16e2-32]]] 1545 run_dump_test_arches "alnv_ps-swap" [mips_arch_list_matching fpisa5 \ 1546 !mips32r6] 1547 run_dump_test_arches "cache" [lsort -dictionary -unique [concat \ 1548 [mips_arch_list_matching mips3] \ 1549 [mips_arch_list_matching mips32] ] ] 1550 run_dump_test_arches "daddi" [mips_arch_list_matching mips3 \ 1551 !mips32r6] 1552 run_dump_test_arches "dadd" [mips_arch_list_matching mips64r6] 1553 run_dump_test_arches "pref" [lsort -dictionary -unique [concat \ 1554 [mips_arch_list_matching mips4] \ 1555 [mips_arch_list_matching mips32] ] ] 1556 1557 if $has_newabi { run_dump_test "cfi-n64-1" } 1558 1559 run_dump_test "pr12915" 1560 run_dump_test "reginfo-1a" 1561 run_dump_test "reginfo-1b" 1562 run_dump_test "reginfo-2" 1563 if $has_newabi { 1564 run_dump_test "reginfo-2-n32" 1565 } 1566 1567 run_dump_test "micromips" 1568 run_dump_test "micromips-trap" 1569 run_dump_test "micromips-compact" 1570 run_dump_test "micromips-insn32" 1571 run_dump_test "micromips-noinsn32" 1572 run_list_test "micromips" "-mips32r2 -32 -mfp64 -minsn32" \ 1573 "microMIPS for MIPS32r2 (instructions invalid in insn32 mode)" 1574 run_list_test "micromips-size-0" \ 1575 "-32 -march=mips64 -mmicromips" "microMIPS instruction size 0" 1576 run_dump_test "micromips-size-1" 1577 run_dump_test "micromips-branch-relax" 1578 run_dump_test "micromips-branch-relax-pic${imips}" 1579 run_dump_test "micromips-branch-relax-insn32" 1580 run_dump_test "micromips-branch-relax-insn32-pic${imips}" 1581 run_dump_test "micromips-branch-delay" 1582 run_dump_test "micromips-warn-branch-delay" 1583 run_dump_test "micromips-warn-branch-delay-1" 1584 run_dump_test "micromips-branch-absolute" 1585 run_dump_test "micromips-branch-absolute-addend" 1586 if $has_newabi { 1587 run_dump_test "micromips-branch-absolute-n32" 1588 run_dump_test "micromips-branch-absolute-addend-n32" 1589 run_dump_test "micromips-branch-absolute-n64" 1590 run_dump_test "micromips-branch-absolute-addend-n64" 1591 } 1592 run_dump_test "micromips-b16" 1593 run_list_test "micromips-ill" 1594 1595 run_dump_test_arches "mcu" [mips_arch_list_matching mips32r2 \ 1596 !octeon] 1597 run_dump_test_arches "hilo-diff-eb" [mips_arch_list_all] 1598 run_dump_test_arches "hilo-diff-el" [mips_arch_list_all] 1599 if $has_newabi { 1600 run_dump_test_arches "hilo-diff-eb-n32" [mips_arch_list_matching mips3] 1601 run_dump_test_arches "hilo-diff-el-n32" [mips_arch_list_matching mips3] 1602 run_dump_test_arches "hilo-diff-eb-n64" [mips_arch_list_matching mips3] 1603 run_dump_test_arches "hilo-diff-el-n64" [mips_arch_list_matching mips3] 1604 } 1605 run_dump_test_arches "lui" [mips_arch_list_matching mips1] 1606 run_dump_test_arches "lui-1" [lsort -dictionary -unique [concat \ 1607 [mips_arch_list_matching mips1] \ 1608 [mips_arch_list_matching mips16e2-32]]] 1609 run_dump_test_arches "lui-2" [lsort -dictionary -unique [concat \ 1610 [mips_arch_list_matching mips1] \ 1611 [mips_arch_list_matching mips16e2-32]]] 1612 run_dump_test_arches "addiu-error" [mips_arch_list_all] 1613 run_dump_test_arches "break-error" [mips_arch_list_all] 1614 1615 run_dump_test "r5900" 1616 run_dump_test "r5900-fix" 1617 run_dump_test "r5900-no-fix" 1618 run_dump_test "r5900-full" 1619 run_list_test "r5900-nollsc" "-mabi=o64 -march=r5900" 1620 run_dump_test "r5900-vu0" 1621 run_dump_test "r5900-full-vu0" 1622 run_dump_test "r5900-all-vu0" 1623 run_list_test "r5900-error-vu0" "-march=r5900" 1624 1625 run_list_test_arches "ext-ill" [mips_arch_list_matching mips64r2] 1626 1627 run_list_test "ase-errors-1" "-mabi=32 -march=mips1" "ASE errors (1)" 1628 run_list_test "ase-errors-2" "-mabi=o64 -march=mips3" "ASE errors (2)" 1629 run_list_test "ase-errors-3" "-mabi=32 -march=mips1" "ASE errors (3)" 1630 run_list_test "ase-errors-4" "-mabi=o64 -march=mips3" "ASE errors (4)" 1631 1632 run_dump_test_arches "la-reloc" [mips_arch_list_matching mips1] 1633 run_list_test "dla-warn" "-mabi=32 -march=mips3" \ 1634 "DLA with 32-bit addresses" 1635 if { $has_newabi } { 1636 run_dump_test_arches "dla-reloc" [mips_arch_list_matching mips3] 1637 run_list_test "la-warn" "-mabi=64 -march=mips3" \ 1638 "LA with 64-bit addresses" 1639 } 1640 1641 # Start with MIPS II to avoid load delay nops. 1642 run_dump_test_arches "ld-reloc" [mips_arch_list_matching mips2] 1643 run_dump_test_arches "ulw-reloc" [mips_arch_list_matching mips2 !mips32r6] 1644 run_dump_test_arches "ulh-reloc" [mips_arch_list_matching mips2 !mips32r6] 1645 1646 run_dump_test "l_d-reloc" 1647 run_list_test "bltzal" 1648 1649 run_dump_test_arches "msa" [mips_arch_list_matching mips32r2] 1650 if { $has_newabi } { 1651 run_dump_test_arches "msa64" [mips_arch_list_matching mips64r2] 1652 } 1653 run_dump_test_arches "msa-relax" [mips_arch_list_matching mips32r2 !mips32r6] 1654 run_dump_test_arches "msa-branch" [mips_arch_list_matching mips32r2] 1655 1656 run_dump_test_arches "xpa" [mips_arch_list_matching mips32r2] 1657 run_dump_test_arches "xpa-err" [mips_arch_list_matching mips32r2] 1658 run_dump_test_arches "xpa-virt-err" [mips_arch_list_matching mips32r2] 1659 run_dump_test_arches "r5" "-32" [mips_arch_list_matching mips32r5] 1660 1661 run_dump_test "pcrel-1" 1662 run_dump_test "pcrel-2" 1663 run_list_test "pcrel-3" "" "Invalid cross-section PC-relative references" 1664 run_dump_test "pcrel-4-32" 1665 if $has_newabi { 1666 run_dump_test "pcrel-4-n32" 1667 run_dump_test "pcrel-4-64" 1668 } 1669 1670 run_dump_test "pcrel-reloc-1" 1671 run_dump_test "pcrel-reloc-1-r6" 1672 run_dump_test "pcrel-reloc-2" 1673 run_dump_test "pcrel-reloc-2-r6" 1674 run_dump_test "pcrel-reloc-3" 1675 run_dump_test "pcrel-reloc-3-r6" 1676 run_dump_test "pcrel-reloc-4" 1677 run_dump_test "pcrel-reloc-4-r6" 1678 run_dump_test "pcrel-reloc-5" 1679 run_dump_test "pcrel-reloc-5-r6" 1680 run_dump_test "pcrel-reloc-6" 1681 run_list_test "pcrel-reloc-6" "-32 --defsym offset=4" \ 1682 "MIPS local PC-relative relocations 6b" 1683 1684 run_dump_test_arches "mips16-pcrel-0" [mips_arch_list_matching mips16-32] 1685 run_dump_test_arches "mips16-pcrel-1" [mips_arch_list_matching mips16-64] 1686 run_dump_test_arches "mips16-pcrel-2" [mips_arch_list_matching mips16-32] 1687 run_dump_test_arches "mips16-pcrel-3" [mips_arch_list_matching mips16-32] 1688 run_dump_test_arches "mips16-pcrel-4" [mips_arch_list_matching mips16-32] 1689 run_dump_test_arches "mips16-pcrel-5" [mips_arch_list_matching mips16-32] 1690 run_dump_test_arches "mips16-pcrel-pic-0" \ 1691 [mips_arch_list_matching mips16-32] 1692 run_dump_test_arches "mips16-pcrel-pic-1" \ 1693 [mips_arch_list_matching mips16-64] 1694 if $has_newabi { 1695 run_dump_test_arches "mips16-pcrel-n32-0" \ 1696 [mips_arch_list_matching mips16-64] 1697 run_dump_test_arches "mips16-pcrel-n32-1" \ 1698 [mips_arch_list_matching mips16-64] 1699 run_dump_test_arches "mips16-pcrel-n64-sym32-0" \ 1700 [mips_arch_list_matching mips16-64] 1701 run_dump_test_arches "mips16-pcrel-n64-sym32-1" \ 1702 [mips_arch_list_matching mips16-64] 1703 run_dump_test_arches "mips16-pcrel-n64-0" \ 1704 [mips_arch_list_matching mips16-64] 1705 run_dump_test_arches "mips16-pcrel-n64-1" \ 1706 [mips_arch_list_matching mips16-64] 1707 } 1708 run_dump_test_arches "mips16-pcrel-delay-0" \ 1709 [mips_arch_list_matching mips16-32] 1710 run_dump_test_arches "mips16-pcrel-delay-1" \ 1711 [mips_arch_list_matching mips16-32] 1712 run_dump_test "mips16-pcrel-relax-0" 1713 run_dump_test "mips16-pcrel-relax-1" 1714 run_dump_test "mips16-pcrel-relax-2" 1715 run_dump_test "mips16-pcrel-relax-3" 1716 run_dump_test_arches "mips16-pcrel-reloc-0" \ 1717 [mips_arch_list_matching mips16-32] 1718 run_dump_test_arches "mips16-pcrel-reloc-1" \ 1719 [mips_arch_list_matching mips16-32] 1720 run_dump_test_arches "mips16-pcrel-reloc-2" \ 1721 [mips_arch_list_matching mips16-32] 1722 run_dump_test_arches "mips16-pcrel-reloc-3" \ 1723 [mips_arch_list_matching mips16-32] 1724 run_dump_test_arches "mips16-pcrel-reloc-4" \ 1725 [mips_arch_list_matching mips16-64] 1726 run_dump_test_arches "mips16-pcrel-reloc-5" \ 1727 [mips_arch_list_matching mips16-64] 1728 run_dump_test_arches "mips16-pcrel-reloc-6" \ 1729 [mips_arch_list_matching mips16-64] 1730 run_dump_test_arches "mips16-pcrel-reloc-7" \ 1731 [mips_arch_list_matching mips16-64] 1732 run_dump_test_arches "mips16-pcrel-addend-0" \ 1733 [mips_arch_list_matching mips16-32] 1734 run_dump_test_arches "mips16-pcrel-addend-1" \ 1735 [mips_arch_list_matching mips16-32] 1736 run_dump_test_arches "mips16-pcrel-addend-2" \ 1737 [mips_arch_list_matching mips16-32] 1738 run_dump_test_arches "mips16-pcrel-addend-3" \ 1739 [mips_arch_list_matching mips16-32] 1740 run_dump_test_arches "mips16-pcrel-addend-4" \ 1741 [mips_arch_list_matching mips16-64] 1742 run_dump_test_arches "mips16-pcrel-addend-5" \ 1743 [mips_arch_list_matching mips16-64] 1744 run_dump_test_arches "mips16-pcrel-addend-6" \ 1745 [mips_arch_list_matching mips16-64] 1746 run_dump_test_arches "mips16-pcrel-addend-7" \ 1747 [mips_arch_list_matching mips16-64] 1748 run_dump_test_arches "mips16-pcrel-addend-8" \ 1749 [mips_arch_list_matching mips16-32] 1750 run_dump_test_arches "mips16-pcrel-addend-9" \ 1751 [mips_arch_list_matching mips16-64] 1752 run_dump_test_arches "mips16-pcrel-addend-pic-8" \ 1753 [mips_arch_list_matching mips16-32] 1754 run_dump_test_arches "mips16-pcrel-addend-pic-9" \ 1755 [mips_arch_list_matching mips16-64] 1756 if $has_newabi { 1757 run_dump_test_arches "mips16-pcrel-addend-n32-8" \ 1758 [mips_arch_list_matching mips16-64] 1759 run_dump_test_arches "mips16-pcrel-addend-n32-9" \ 1760 [mips_arch_list_matching mips16-64] 1761 run_dump_test_arches "mips16-pcrel-addend-n64-sym32-8" \ 1762 [mips_arch_list_matching mips16-64] 1763 run_dump_test_arches "mips16-pcrel-addend-n64-sym32-9" \ 1764 [mips_arch_list_matching mips16-64] 1765 run_dump_test_arches "mips16-pcrel-addend-n64-8" \ 1766 [mips_arch_list_matching mips16-64] 1767 run_dump_test_arches "mips16-pcrel-addend-n64-9" \ 1768 [mips_arch_list_matching mips16-64] 1769 } 1770 run_dump_test_arches "mips16-pcrel-absolute" \ 1771 [mips_arch_list_matching mips16-32] 1772 run_dump_test_arches "mips16-pcrel-absolute-1" \ 1773 [mips_arch_list_matching mips16-32] 1774 run_dump_test_arches "mips16-pcrel-absolute-2" \ 1775 [mips_arch_list_matching mips16-64] 1776 run_dump_test_arches "mips16-pcrel-absolute-3" \ 1777 [mips_arch_list_matching mips16-64] 1778 run_dump_test_arches "mips16-pcrel-absolute-4" \ 1779 [mips_arch_list_matching mips16-32] 1780 run_dump_test_arches "mips16-pcrel-absolute-5" \ 1781 [mips_arch_list_matching mips16-32] 1782 run_dump_test_arches "mips16-pcrel-absolute-6" \ 1783 [mips_arch_list_matching mips16-64] 1784 run_dump_test_arches "mips16-pcrel-absolute-7" \ 1785 [mips_arch_list_matching mips16-64] 1786 run_dump_test_arches "mips16-pcrel-absolute-pic-4" \ 1787 [mips_arch_list_matching mips16-32] 1788 run_dump_test_arches "mips16-pcrel-absolute-pic-6" \ 1789 [mips_arch_list_matching mips16-64] 1790 if $has_newabi { 1791 run_dump_test_arches "mips16-pcrel-absolute-n32-4" \ 1792 [mips_arch_list_matching mips16-64] 1793 run_dump_test_arches "mips16-pcrel-absolute-n32-6" \ 1794 [mips_arch_list_matching mips16-64] 1795 run_dump_test_arches "mips16-pcrel-absolute-n64-4" \ 1796 [mips_arch_list_matching mips16-64] 1797 run_dump_test_arches "mips16-pcrel-absolute-n64-6" \ 1798 [mips_arch_list_matching mips16-64] 1799 run_dump_test_arches "mips16-pcrel-absolute-n64-sym32-4" \ 1800 [mips_arch_list_matching mips16-64] 1801 run_dump_test_arches "mips16-pcrel-absolute-n64-sym32-6" \ 1802 [mips_arch_list_matching mips16-64] 1803 run_dump_test_arches "mips16-pcrel-absolute-pic-n32-4" \ 1804 [mips_arch_list_matching mips16-64] 1805 run_dump_test_arches "mips16-pcrel-absolute-pic-n32-6" \ 1806 [mips_arch_list_matching mips16-64] 1807 run_dump_test_arches "mips16-pcrel-absolute-pic-n64-4" \ 1808 [mips_arch_list_matching mips16-64] 1809 run_dump_test_arches "mips16-pcrel-absolute-pic-n64-6" \ 1810 [mips_arch_list_matching mips16-64] 1811 run_dump_test_arches "mips16-pcrel-absolute-pic-n64-sym32-4" \ 1812 [mips_arch_list_matching mips16-64] 1813 run_dump_test_arches "mips16-pcrel-absolute-pic-n64-sym32-6" \ 1814 [mips_arch_list_matching mips16-64] 1815 } 1816 run_dump_test "mips16-branch-reloc-0" 1817 run_dump_test "mips16-branch-reloc-1" 1818 run_dump_test "mips16-branch-reloc-2" 1819 run_dump_test "mips16-branch-reloc-3" 1820 run_dump_test "mips16-branch-reloc-4" 1821 run_dump_test "mips16-branch-reloc-5" 1822 run_dump_test "mips16-branch-addend-0" 1823 run_dump_test "mips16-branch-addend-1" 1824 run_dump_test "mips16-branch-addend-2" 1825 run_dump_test "mips16-branch-addend-3" 1826 run_dump_test "mips16-branch-addend-4" 1827 run_dump_test "mips16-branch-addend-5" 1828 run_dump_test "mips16-branch-absolute" 1829 run_dump_test "mips16-branch-absolute-1" 1830 run_dump_test "mips16-branch-absolute-2" 1831 run_dump_test "mips16-branch-absolute-addend" 1832 run_dump_test "mips16-branch-absolute-addend-1" 1833 if $has_newabi { 1834 run_dump_test "mips16-branch-absolute-n32" 1835 run_dump_test "mips16-branch-absolute-n32-1" 1836 run_dump_test "mips16-branch-absolute-n32-2" 1837 run_dump_test "mips16-branch-absolute-addend-n32" 1838 run_dump_test "mips16-branch-absolute-addend-n32-1" 1839 run_dump_test "mips16-branch-absolute-n64" 1840 run_dump_test "mips16-branch-absolute-n64-1" 1841 run_dump_test "mips16-branch-absolute-n64-2" 1842 run_dump_test "mips16-branch-absolute-addend-n64" 1843 run_dump_test "mips16-branch-absolute-addend-n64-1" 1844 } 1845 run_dump_test "mips16-absolute-reloc-0" 1846 run_dump_test "mips16-absolute-reloc-1" 1847 run_dump_test "mips16-absolute-reloc-2" 1848 run_dump_test "mips16-absolute-reloc-3" 1849 1850 run_dump_test_arches "attr-gnu-4-0" "-32" \ 1851 [mips_arch_list_matching mips1] 1852 if { $has_newabi } { 1853 run_dump_test_arches "attr-gnu-4-0" "-64" \ 1854 [mips_arch_list_matching mips3] 1855 } 1856 run_dump_test_arches "attr-gnu-4-0" "-mfp32 -32" \ 1857 [mips_arch_list_matching mips1 !mips32r6] 1858 run_dump_test_arches "attr-gnu-4-0" "-mfpxx -32" \ 1859 [mips_arch_list_matching mips2 !r5900] 1860 run_dump_test_arches "attr-gnu-4-0" "-mfp64 -32" \ 1861 [mips_arch_list_matching mips32r2] 1862 run_dump_test_arches "attr-gnu-4-0" "-mfp64 -mno-odd-spreg -32" \ 1863 [mips_arch_list_matching mips32r2] 1864 if { $has_newabi } { 1865 run_dump_test_arches "attr-gnu-4-0" "-mfp64 -64" \ 1866 [mips_arch_list_matching mips3] 1867 } 1868 run_dump_test_arches "attr-gnu-4-0" "-msingle-float -32" \ 1869 [mips_arch_list_matching mips1] 1870 if { $has_newabi } { 1871 run_dump_test_arches "attr-gnu-4-0" "-msingle-float -64" \ 1872 [mips_arch_list_matching mips3] 1873 } 1874 run_dump_test_arches "attr-gnu-4-0" "-msoft-float -32" \ 1875 [mips_arch_list_matching mips1] 1876 if { $has_newabi } { 1877 run_dump_test_arches "attr-gnu-4-0" "-msoft-float -64" \ 1878 [mips_arch_list_matching mips3] 1879 } 1880 run_dump_test_arches "attr-none-double" "-32" \ 1881 [mips_arch_list_matching mips1 !mips32r6] 1882 run_dump_test_arches "r6-attr-none-double" "-32" \ 1883 [mips_arch_list_matching mips32r6] 1884 if { $has_newabi } { 1885 run_dump_test_arches "attr-none-double" "-64" \ 1886 [mips_arch_list_matching mips3] 1887 } 1888 run_dump_test_arches "attr-none-o32-fpxx" \ 1889 [mips_arch_list_matching mips2 !r5900] 1890 run_dump_test_arches "attr-none-o32-fp64" \ 1891 [mips_arch_list_matching mips32r2] 1892 run_dump_test_arches "attr-none-o32-fp64-nooddspreg" \ 1893 [mips_arch_list_matching mips32r2] 1894 run_dump_test_arches "attr-none-single-float" "-32" \ 1895 [mips_arch_list_matching mips1] 1896 if { $has_newabi } { 1897 run_dump_test_arches "attr-none-single-float" "-64" \ 1898 [mips_arch_list_matching mips3] 1899 } 1900 run_dump_test_arches "attr-none-soft-float" "-32 -msoft-float" \ 1901 [mips_arch_list_matching mips1] 1902 if { $has_newabi } { 1903 run_dump_test_arches "attr-none-soft-float" "-64 -msoft-float" \ 1904 [mips_arch_list_matching mips3] 1905 } 1906 1907 run_list_test_arches "attr-gnu-4-1-mfp64" \ 1908 "-32 -mfp64 -mno-odd-spreg" \ 1909 [mips_arch_list_matching mips32r2] 1910 run_list_test_arches "attr-gnu-4-1-mfp64" "-32 -mfp64" \ 1911 [mips_arch_list_matching mips32r2] 1912 if { $has_newabi } { 1913 run_list_test_arches "attr-gnu-4-1-mfp32" "-64 -mfp32" \ 1914 [mips_arch_list_matching mips3 !mips64r6] 1915 } 1916 run_list_test_arches "attr-gnu-4-1-msingle-float" "-32 -msingle-float" \ 1917 [mips_arch_list_matching mips1] 1918 run_list_test_arches "attr-gnu-4-1-msoft-float" "-32 -msoft-float" \ 1919 [mips_arch_list_matching mips1] 1920 run_dump_test_arches "attr-gnu-4-1" "-32 -mfpxx" \ 1921 [mips_arch_list_matching mips2 !r5900] 1922 run_dump_test_arches "attr-gnu-4-1" "-32 -mfp32" \ 1923 [mips_arch_list_matching mips1 !mips32r6] 1924 if { $has_newabi } { 1925 run_dump_test_arches "attr-gnu-4-1" "-64 -mfp64" \ 1926 [mips_arch_list_matching mips3] 1927 } 1928 1929 run_list_test_arches "attr-gnu-4-2-mdouble-float" "-32 -mfp32" \ 1930 [mips_arch_list_matching mips1 !mips32r6] 1931 run_list_test_arches "attr-gnu-4-2-mdouble-float" "-32 -mfpxx" \ 1932 [mips_arch_list_matching mips2 !r5900] 1933 run_list_test_arches "attr-gnu-4-2-mdouble-float" "-32 -mfp64" \ 1934 [mips_arch_list_matching mips32r2] 1935 run_list_test_arches "attr-gnu-4-2-mdouble-float" \ 1936 "-32 -mfp64 -mno-odd-spreg" \ 1937 [mips_arch_list_matching mips32r2] 1938 if { $has_newabi } { 1939 run_list_test_arches "attr-gnu-4-2-mdouble-float" "-64 -mfp64" \ 1940 [mips_arch_list_matching mips3] 1941 } 1942 run_list_test_arches "attr-gnu-4-2-msoft-float" "-32 -msoft-float" \ 1943 [mips_arch_list_matching mips1] 1944 run_dump_test_arches "attr-gnu-4-2" "-32" \ 1945 [mips_arch_list_matching mips1] 1946 if { $has_newabi } { 1947 run_dump_test_arches "attr-gnu-4-2" "-64" \ 1948 [mips_arch_list_matching mips3] 1949 } 1950 1951 run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -mfp32" \ 1952 [mips_arch_list_matching mips1 !mips32r6] 1953 run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -mfpxx" \ 1954 [mips_arch_list_matching mips2 !r5900] 1955 run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -mfp64" \ 1956 [mips_arch_list_matching mips32r2] 1957 run_list_test_arches "attr-gnu-4-3-mhard-float" \ 1958 "-32 -mfp64 -mno-odd-spreg" \ 1959 [mips_arch_list_matching mips32r2] 1960 if { $has_newabi } { 1961 run_list_test_arches "attr-gnu-4-3-mhard-float" "-64 -mfp64" \ 1962 [mips_arch_list_matching mips3] 1963 } 1964 run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -msingle-float" \ 1965 [mips_arch_list_matching mips1] 1966 run_dump_test_arches "attr-gnu-4-3" "-32" \ 1967 [mips_arch_list_matching mips1] 1968 if { $has_newabi } { 1969 run_dump_test_arches "attr-gnu-4-3" "-64" \ 1970 [mips_arch_list_matching mips3] 1971 } 1972 1973 run_list_test_arches "attr-gnu-4-4" "-32 -mfp32" \ 1974 [mips_arch_list_matching mips1 !mips32r6] 1975 run_list_test_arches "attr-gnu-4-4" "-32 -mfpxx" \ 1976 [mips_arch_list_matching mips2 !r5900] 1977 run_list_test_arches "attr-gnu-4-4" "-32 -mfp64" \ 1978 [mips_arch_list_matching mips32r2] 1979 run_list_test_arches "attr-gnu-4-4" "-32 -mfp64 -mno-odd-spreg" \ 1980 [mips_arch_list_matching mips32r2] 1981 if { $has_newabi } { 1982 run_list_test_arches "attr-gnu-4-4" "-64 -mfp64" \ 1983 [mips_arch_list_matching mips3] 1984 } 1985 run_list_test_arches "attr-gnu-4-4" "-32 -msingle-float" \ 1986 [mips_arch_list_matching mips1] 1987 run_list_test_arches "attr-gnu-4-4" "-32 -msoft-float" \ 1988 [mips_arch_list_matching mips1] 1989 1990 run_list_test_arches "attr-gnu-4-5" "-32 -mfp32" \ 1991 [mips_arch_list_matching mips1 !mips32r6] 1992 run_list_test_arches "attr-gnu-4-5" "-32 -mfp64" \ 1993 [mips_arch_list_matching mips32r2] 1994 run_list_test_arches "attr-gnu-4-5" "-32 -mfp64 -mno-odd-spreg" \ 1995 [mips_arch_list_matching mips32r2] 1996 if { $has_newabi } { 1997 run_list_test_arches "attr-gnu-4-5-64" "-64 -mfp64" \ 1998 [mips_arch_list_matching mips3] 1999 } 2000 run_list_test_arches "attr-gnu-4-5-msingle-float" "-32 -msingle-float" \ 2001 [mips_arch_list_matching mips1] 2002 run_list_test_arches "attr-gnu-4-5-msoft-float" "-32 -msoft-float" \ 2003 [mips_arch_list_matching mips1] 2004 run_dump_test_arches "attr-gnu-4-5" \ 2005 [mips_arch_list_matching mips2 !r5900] 2006 2007 run_list_test_arches "attr-gnu-4-6" "-32 -mfp32" \ 2008 [mips_arch_list_matching mips1 !mips32r6] 2009 run_list_test_arches "attr-gnu-4-6-noodd" "-32 -mfp64 -mno-odd-spreg" \ 2010 [mips_arch_list_matching mips32r2] 2011 if { $has_newabi } { 2012 run_list_test_arches "attr-gnu-4-6-64" "-64 -mfp64" \ 2013 [mips_arch_list_matching mips3] 2014 } 2015 run_list_test_arches "attr-gnu-4-6-msingle-float" "-32 -msingle-float" \ 2016 [mips_arch_list_matching mips1] 2017 run_list_test_arches "attr-gnu-4-6-msoft-float" "-32 -msoft-float" \ 2018 [mips_arch_list_matching mips1] 2019 run_list_test_arches "attr-gnu-4-6" "-32 -mfpxx" \ 2020 [mips_arch_list_matching mips2 !r5900] 2021 run_dump_test_arches "attr-gnu-4-6" "-32 -mfp64" \ 2022 [mips_arch_list_matching mips32r2] 2023 2024 run_list_test_arches "attr-gnu-4-7" "-32 -mfp32" \ 2025 [mips_arch_list_matching mips1 !mips32r6] 2026 run_list_test_arches "attr-gnu-4-7-odd" "-32 -mfp64" \ 2027 [mips_arch_list_matching mips32r2] 2028 if { $has_newabi } { 2029 run_list_test_arches "attr-gnu-4-7-64" "-64 -mfp64" \ 2030 [mips_arch_list_matching mips3] 2031 } 2032 run_list_test_arches "attr-gnu-4-7-msingle-float" "-32 -msingle-float" \ 2033 [mips_arch_list_matching mips1] 2034 run_list_test_arches "attr-gnu-4-7-msoft-float" "-32 -msoft-float" \ 2035 [mips_arch_list_matching mips1] 2036 run_list_test_arches "attr-gnu-4-7" "-32 -mfpxx" \ 2037 [mips_arch_list_matching mips2 !r5900] 2038 run_dump_test_arches "attr-gnu-4-7" "-32 -mfp64 -mno-odd-spreg" \ 2039 [mips_arch_list_matching mips32r2] 2040 2041 run_dump_test "attr-gnu-abi-fp-1" 2042 run_dump_test "attr-gnu-abi-msa-1" 2043 2044 run_dump_test "module-override" 2045 run_dump_test "module-defer-warn1" 2046 run_list_test "module-defer-warn2" "-32" 2047 2048 foreach testopt [list -mfp32 -mfpxx -mfp64 "-mfp64-noodd" \ 2049 -msingle-float -msoft-float] { 2050 foreach cmdopt [list -mfp32 -mfpxx -mfp64 "-mfp64 -mno-odd-spreg" \ 2051 -msingle-float -msoft-float] { 2052 run_dump_test "module${testopt}" \ 2053 [list [list as $cmdopt] [list name ($cmdopt)]] 2054 } 2055 } 2056 2057 run_dump_test "module-set-mfpxx" 2058 run_list_test_arches "fpxx-oddfpreg" "-32 -mfpxx" \ 2059 [mips_arch_list_matching mips2 !singlefloat] 2060 run_list_test_arches "fpxx-oddfpreg" "-32 -mfpxx -mno-odd-spreg" \ 2061 [mips_arch_list_matching mips2 !singlefloat] 2062 run_dump_test_arches "fpxx-oddfpreg" \ 2063 [mips_arch_list_matching oddspreg] 2064 run_dump_test_arches "odd-spreg" "-mfp32" [mips_arch_list_matching oddspreg] 2065 run_dump_test_arches "odd-spreg" "-mfpxx" [mips_arch_list_matching oddspreg] 2066 run_dump_test_arches "odd-spreg" "-mfp64" [mips_arch_list_matching mips32r2] 2067 run_dump_test_arches "no-odd-spreg" "-mfp32" [mips_arch_list_matching mips1 \ 2068 !mips32r6] 2069 run_dump_test_arches "no-odd-spreg" "-mfpxx" [mips_arch_list_matching mips2 !r5900] 2070 run_dump_test_arches "no-odd-spreg" "-mfp64" [mips_arch_list_matching mips32r2] 2071 run_dump_test "module-check" 2072 run_list_test "module-check-warn" "-32" 2073 2074 run_dump_test "li-d" 2075 2076 run_dump_test "option-pic-1" 2077 run_list_test "option-pic-2" "" \ 2078 "MIPS invalid PIC option" 2079 run_list_test "option-pic-vxworks-1" "-mvxworks-pic" \ 2080 "MIPS invalid PIC option in VxWorks PIC" 2081 run_list_test "option-pic-vxworks-2" "-mvxworks-pic" \ 2082 "MIPS invalid switch to SVR4 PIC from VxWorks PIC" 2083 run_dump_test "option-pic-relax-0" 2084 run_dump_test "option-pic-relax-1" 2085 run_dump_test "option-pic-relax-2" 2086 run_dump_test "option-pic-relax-3" 2087 run_dump_test "option-pic-relax-3a" 2088 run_dump_test "option-pic-relax-4" 2089 run_dump_test "option-pic-relax-5" 2090 2091 run_dump_test_arches "isa-override-1" "" [mips_arch_list_matching mips1] 2092 run_dump_test_arches "isa-override-2" "" [mips_arch_list_matching mips1] 2093 2094 run_dump_test "debug-label-end-1" 2095 run_dump_test "debug-label-end-2" 2096 run_dump_test "debug-label-end-3" 2097 2098 run_dump_test "org-1" 2099 run_dump_test "org-2" 2100 run_dump_test "org-3" 2101 run_dump_test "org-4" 2102 run_dump_test "org-5" 2103 run_dump_test "org-6" 2104 run_dump_test "org-7" 2105 run_dump_test "org-8" 2106 run_dump_test "org-9" 2107 run_dump_test "org-10" 2108 run_dump_test "org-11" 2109 run_dump_test "org-12" 2110 2111 run_dump_test_arches "stabs-symbol-type" [mips_arch_list_all] 2112 2113 run_dump_test_arches "r6" [mips_arch_list_matching mips32r6] 2114 if $has_newabi { 2115 run_dump_test_arches "r6-n32" [mips_arch_list_matching mips64r6] 2116 run_dump_test_arches "r6-n64" [mips_arch_list_matching mips64r6] 2117 run_dump_test_arches "r6-64-n32" [mips_arch_list_matching mips64r6] 2118 run_dump_test_arches "r6-64-n64" [mips_arch_list_matching mips64r6] 2119 run_list_test_arches "ldpc-unalign" "-64" [mips_arch_list_matching mips64r6] 2120 } 2121 run_list_test_arches "r6-removed" "-32" [mips_arch_list_matching mips32r6] 2122 run_list_test_arches "r6-64-removed" [mips_arch_list_matching mips64r6] 2123 2124 run_list_test_arches "r6-reg-constraints" "-32" \ 2125 [mips_arch_list_matching mips32r6] 2126 2127 run_dump_test_arches "crc" [mips_arch_list_matching mips32r6] 2128 run_dump_test_arches "crc-err" [mips_arch_list_matching mips32r6] 2129 run_dump_test_arches "crc64" [mips_arch_list_matching mips64r6] 2130 run_dump_test_arches "crc64-err" [mips_arch_list_matching mips64r6] 2131 2132 run_dump_test_arches "ginv" [mips_arch_list_matching mips32r6] 2133 run_dump_test_arches "ginv-err" [mips_arch_list_matching mips32r6] 2134 2135 run_dump_test_arches "llpscp-32" [mips_arch_list_matching mips32r6] 2136 run_dump_test_arch "llpscp-64" "" mips64r6 2137 2138 run_dump_test "pr14798${imips}" 2139 run_dump_test "insn-isa-mode" 2140 run_dump_test "insn-isa-mode" 2141 run_dump_test "global-local-symtab-o32${tmips}" 2142 run_dump_test "global-local-symtab-sort-o32${tmips}" 2143 if $has_newabi { 2144 run_dump_test "global-local-symtab-n32${tmips}" 2145 run_dump_test "global-local-symtab-n64" 2146 run_dump_test "global-local-symtab-sort-n32${tmips}" 2147 run_dump_test "global-local-symtab-sort-n64${tmips}" 2148 } 2149} 2150