brintos

brintos / llvm-project-archived public Read only

0
0
Text · 27.9 KiB · c586c81 Raw
585 lines · plain
1# RUN: llvm-mc %s -triple=mips64el-unknown-linux -mcpu=mips64r2 -mattr=-xgot \2# RUN:            -show-encoding | FileCheck --check-prefixes=CHECK,GOT %s3# RUN: llvm-mc %s -triple=mips64el-unknown-linux -mcpu=mips64r2 -mattr=+xgot \4# RUN:            -show-encoding | FileCheck --check-prefixes=CHECK,XGOT %s5 6# Check that signed negative 32-bit immediates are loaded correctly:7  li $10, ~(0x101010)8# CHECK: lui $10, 65519        # encoding: [0xef,0xff,0x0a,0x3c]9# CHECK: ori $10, $10, 61423   # encoding: [0xef,0xef,0x4a,0x35]10# CHECK-NOT: dsll11 12# Test bne with an immediate as the 2nd operand.13  bne $2, 0x100010001, 133214# CHECK: addiu $1, $zero, 1         # encoding: [0x01,0x00,0x01,0x24]15# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]16# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]17# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]18# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]19# CHECK: bne  $2, $1, 1332          # encoding: [0x4d,0x01,0x41,0x14]20# CHECK: nop                        # encoding: [0x00,0x00,0x00,0x00]21 22  bne $2, 0x1000100010001, 133223# CHECK: lui  $1, 1                 # encoding: [0x01,0x00,0x01,0x3c]24# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]25# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]26# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]27# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]28# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]29# CHECK: bne  $2, $1, 1332          # encoding: [0x4d,0x01,0x41,0x14]30# CHECK: nop                        # encoding: [0x00,0x00,0x00,0x00]31 32  bne $2, -0x100010001, 133233# CHECK: addiu $1, $zero, -2        # encoding: [0xfe,0xff,0x01,0x24]34# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]35# CHECK: ori  $1, $1, 65534         # encoding: [0xfe,0xff,0x21,0x34]36# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]37# CHECK: ori  $1, $1, 65535         # encoding: [0xff,0xff,0x21,0x34]38# CHECK: bne  $2, $1, 1332          # encoding: [0x4d,0x01,0x41,0x14]39# CHECK: nop                        # encoding: [0x00,0x00,0x00,0x00]40 41  bne $2, -0x1000100010001, 133242# CHECK: lui  $1, 65534             # encoding: [0xfe,0xff,0x01,0x3c]43# CHECK: ori  $1, $1, 65534         # encoding: [0xfe,0xff,0x21,0x34]44# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]45# CHECK: ori  $1, $1, 65534         # encoding: [0xfe,0xff,0x21,0x34]46# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]47# CHECK: ori  $1, $1, 65535         # encoding: [0xff,0xff,0x21,0x34]48# CHECK: bne  $2, $1, 1332          # encoding: [0x4d,0x01,0x41,0x14]49# CHECK: nop                        # encoding: [0x00,0x00,0x00,0x00]50 51# Test beq with an immediate as the 2nd operand.52  beq $2, 0x100010001, 133253# CHECK: addiu $1, $zero, 1         # encoding: [0x01,0x00,0x01,0x24]54# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]55# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]56# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]57# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]58# CHECK: beq  $2, $1, 1332          # encoding: [0x4d,0x01,0x41,0x10]59# CHECK: nop                        # encoding: [0x00,0x00,0x00,0x00]60 61  beq $2, 0x1000100010001, 133262# CHECK: lui  $1, 1                 # encoding: [0x01,0x00,0x01,0x3c]63# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]64# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]65# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]66# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]67# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]68# CHECK: beq  $2, $1, 1332          # encoding: [0x4d,0x01,0x41,0x10]69# CHECK: nop                        # encoding: [0x00,0x00,0x00,0x00]70 71  beq $2, -0x100010001, 133272# CHECK: addiu $1, $zero, -2        # encoding: [0xfe,0xff,0x01,0x24]73# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]74# CHECK: ori  $1, $1, 65534         # encoding: [0xfe,0xff,0x21,0x34]75# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]76# CHECK: ori  $1, $1, 65535         # encoding: [0xff,0xff,0x21,0x34]77# CHECK: beq  $2, $1, 1332          # encoding: [0x4d,0x01,0x41,0x10]78# CHECK: nop                        # encoding: [0x00,0x00,0x00,0x00]79 80  beq $2, -0x1000100010001, 133281# CHECK: lui  $1, 65534             # encoding: [0xfe,0xff,0x01,0x3c]82# CHECK: ori  $1, $1, 65534         # encoding: [0xfe,0xff,0x21,0x34]83# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]84# CHECK: ori  $1, $1, 65534         # encoding: [0xfe,0xff,0x21,0x34]85# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]86# CHECK: ori  $1, $1, 65535         # encoding: [0xff,0xff,0x21,0x34]87# CHECK: beq  $2, $1, 1332          # encoding: [0x4d,0x01,0x41,0x10]88# CHECK: nop                        # encoding: [0x00,0x00,0x00,0x00]89 90# Test one with a symbol in the third operand.91sym:92  bne $2, 0x100010001, sym93# CHECK: addiu $1, $zero, 1         # encoding: [0x01,0x00,0x01,0x24]94# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]95# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]96# CHECK: dsll $1, $1, 16            # encoding: [0x38,0x0c,0x01,0x00]97# CHECK: ori  $1, $1, 1             # encoding: [0x01,0x00,0x21,0x34]98# CHECK: bne  $2, $1, sym           # encoding: [A,A,0x41,0x14]99# CHECK: nop                        # encoding: [0x00,0x00,0x00,0x00]100 101# Test ulhu with 64-bit immediate addresses.102  ulhu $8, 0x100010001103# CHECK: addiu $1, $zero, 1    # encoding: [0x01,0x00,0x01,0x24]104# CHECK: ori  $1, $1, 1        # encoding: [0x01,0x00,0x21,0x34]105# CHECK: dsll $1, $1, 16       # encoding: [0x38,0x0c,0x01,0x00]106# CHECK: ori  $1, $1, 1        # encoding: [0x01,0x00,0x21,0x34]107# CHECK: lbu  $8, 1($1)        # encoding: [0x01,0x00,0x28,0x90]108# CHECK: lbu  $1, 0($1)        # encoding: [0x00,0x00,0x21,0x90]109# CHECK: sll  $8, $8, 8        # encoding: [0x00,0x42,0x08,0x00]110# CHECK: or   $8, $8, $1       # encoding: [0x25,0x40,0x01,0x01]111 112  ulhu $8, 0x1000100010001113# CHECK: lui  $1, 1            # encoding: [0x01,0x00,0x01,0x3c]114# CHECK: ori  $1, $1, 1        # encoding: [0x01,0x00,0x21,0x34]115# CHECK: dsll $1, $1, 16       # encoding: [0x38,0x0c,0x01,0x00]116# CHECK: ori  $1, $1, 1        # encoding: [0x01,0x00,0x21,0x34]117# CHECK: dsll $1, $1, 16       # encoding: [0x38,0x0c,0x01,0x00]118# CHECK: ori  $1, $1, 1        # encoding: [0x01,0x00,0x21,0x34]119# CHECK: lbu  $8, 1($1)        # encoding: [0x01,0x00,0x28,0x90]120# CHECK: lbu  $1, 0($1)        # encoding: [0x00,0x00,0x21,0x90]121# CHECK: sll  $8, $8, 8        # encoding: [0x00,0x42,0x08,0x00]122# CHECK: or   $8, $8, $1       # encoding: [0x25,0x40,0x01,0x01]123 124  ulhu $8, -0x100010001125# CHECK: addiu $1, $zero, -2   # encoding: [0xfe,0xff,0x01,0x24]126# CHECK: dsll $1, $1, 16       # encoding: [0x38,0x0c,0x01,0x00]127# CHECK: ori  $1, $1, 65534    # encoding: [0xfe,0xff,0x21,0x34]128# CHECK: dsll $1, $1, 16       # encoding: [0x38,0x0c,0x01,0x00]129# CHECK: ori  $1, $1, 65535    # encoding: [0xff,0xff,0x21,0x34]130# CHECK: lbu  $8, 1($1)        # encoding: [0x01,0x00,0x28,0x90]131# CHECK: lbu  $1, 0($1)        # encoding: [0x00,0x00,0x21,0x90]132# CHECK: sll  $8, $8, 8        # encoding: [0x00,0x42,0x08,0x00]133# CHECK: or   $8, $8, $1       # encoding: [0x25,0x40,0x01,0x01]134 135  ulhu $8, -0x1000100010001136# CHECK: lui  $1, 65534        # encoding: [0xfe,0xff,0x01,0x3c]137# CHECK: ori  $1, $1, 65534    # encoding: [0xfe,0xff,0x21,0x34]138# CHECK: dsll $1, $1, 16       # encoding: [0x38,0x0c,0x01,0x00]139# CHECK: ori  $1, $1, 65534    # encoding: [0xfe,0xff,0x21,0x34]140# CHECK: dsll $1, $1, 16       # encoding: [0x38,0x0c,0x01,0x00]141# CHECK: ori  $1, $1, 65535    # encoding: [0xff,0xff,0x21,0x34]142# CHECK: lbu  $8, 1($1)        # encoding: [0x01,0x00,0x28,0x90]143# CHECK: lbu  $1, 0($1)        # encoding: [0x00,0x00,0x21,0x90]144# CHECK: sll  $8, $8, 8        # encoding: [0x00,0x42,0x08,0x00]145# CHECK: or   $8, $8, $1       # encoding: [0x25,0x40,0x01,0x01]146 147# Test ulhu with source register and 64-bit immediate offset.148  ulhu $8, 0x100010001($9)149# CHECK: addiu $1, $zero, 1    # encoding: [0x01,0x00,0x01,0x24]150# CHECK: ori   $1, $1, 1       # encoding: [0x01,0x00,0x21,0x34]151# CHECK: dsll  $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]152# CHECK: ori   $1, $1, 1       # encoding: [0x01,0x00,0x21,0x34]153# CHECK: daddu $1, $1, $9      # encoding: [0x2d,0x08,0x29,0x00]154# CHECK: lbu   $8, 1($1)       # encoding: [0x01,0x00,0x28,0x90]155# CHECK: lbu   $1, 0($1)       # encoding: [0x00,0x00,0x21,0x90]156# CHECK: sll   $8, $8, 8       # encoding: [0x00,0x42,0x08,0x00]157# CHECK: or    $8, $8, $1      # encoding: [0x25,0x40,0x01,0x01]158 159  ulhu $8, 0x1000100010001($9)160# CHECK: lui   $1, 1           # encoding: [0x01,0x00,0x01,0x3c]161# CHECK: ori   $1, $1, 1       # encoding: [0x01,0x00,0x21,0x34]162# CHECK: dsll  $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]163# CHECK: ori   $1, $1, 1       # encoding: [0x01,0x00,0x21,0x34]164# CHECK: dsll  $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]165# CHECK: ori   $1, $1, 1       # encoding: [0x01,0x00,0x21,0x34]166# CHECK: daddu $1, $1, $9      # encoding: [0x2d,0x08,0x29,0x00]167# CHECK: lbu   $8, 1($1)       # encoding: [0x01,0x00,0x28,0x90]168# CHECK: lbu   $1, 0($1)       # encoding: [0x00,0x00,0x21,0x90]169# CHECK: sll   $8, $8, 8       # encoding: [0x00,0x42,0x08,0x00]170# CHECK: or    $8, $8, $1      # encoding: [0x25,0x40,0x01,0x01]171 172  ulhu $8, -0x100010001($9)173# CHECK: addiu $1, $zero, -2   # encoding: [0xfe,0xff,0x01,0x24]174# CHECK: dsll  $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]175# CHECK: ori   $1, $1, 65534   # encoding: [0xfe,0xff,0x21,0x34]176# CHECK: dsll  $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]177# CHECK: daddu $1, $1, $9      # encoding: [0x2d,0x08,0x29,0x00]178# CHECK: lbu   $8, 1($1)       # encoding: [0x01,0x00,0x28,0x90]179# CHECK: lbu   $1, 0($1)       # encoding: [0x00,0x00,0x21,0x90]180# CHECK: sll   $8, $8, 8       # encoding: [0x00,0x42,0x08,0x00]181# CHECK: or    $8, $8, $1      # encoding: [0x25,0x40,0x01,0x01]182 183  ulhu $8, -0x1000100010001($9)184# CHECK: lui   $1, 65534       # encoding: [0xfe,0xff,0x01,0x3c]185# CHECK: ori   $1, $1, 65534   # encoding: [0xfe,0xff,0x21,0x34]186# CHECK: dsll  $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]187# CHECK: ori   $1, $1, 65534   # encoding: [0xfe,0xff,0x21,0x34]188# CHECK: dsll  $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]189# CHECK: ori   $1, $1, 65535   # encoding: [0xff,0xff,0x21,0x34]190# CHECK: daddu $1, $1, $9      # encoding: [0x2d,0x08,0x29,0x00]191# CHECK: lbu   $8, 1($1)       # encoding: [0x01,0x00,0x28,0x90]192# CHECK: lbu   $1, 0($1)       # encoding: [0x00,0x00,0x21,0x90]193# CHECK: sll   $8, $8, 8       # encoding: [0x00,0x42,0x08,0x00]194# CHECK: or    $8, $8, $1      # encoding: [0x25,0x40,0x01,0x01]195 196# Test ulw with 64-bit immediate addresses.197  ulw $8, 0x100010001198# CHECK: addiu $1, $zero, 1   # encoding: [0x01,0x00,0x01,0x24]199# CHECK: ori  $1, $1, 1       # encoding: [0x01,0x00,0x21,0x34]200# CHECK: dsll $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]201# CHECK: ori  $1, $1, 1       # encoding: [0x01,0x00,0x21,0x34]202# CHECK: lwl  $8, 3($1)       # encoding: [0x03,0x00,0x28,0x88]203# CHECK: lwr  $8, 0($1)       # encoding: [0x00,0x00,0x28,0x98]204 205  ulw $8, 0x1000100010001206# CHECK: lui  $1, 1           # encoding: [0x01,0x00,0x01,0x3c]207# CHECK: ori  $1, $1, 1       # encoding: [0x01,0x00,0x21,0x34]208# CHECK: dsll $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]209# CHECK: ori  $1, $1, 1       # encoding: [0x01,0x00,0x21,0x34]210# CHECK: dsll $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]211# CHECK: ori  $1, $1, 1       # encoding: [0x01,0x00,0x21,0x34]212# CHECK: lwl  $8, 3($1)       # encoding: [0x03,0x00,0x28,0x88]213# CHECK: lwr  $8, 0($1)       # encoding: [0x00,0x00,0x28,0x98]214 215  ulw $8, -0x100010001216# CHECK: addiu $1, $zero, -2  # encoding: [0xfe,0xff,0x01,0x24]217# CHECK: dsll $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]218# CHECK: ori  $1, $1, 65534   # encoding: [0xfe,0xff,0x21,0x34]219# CHECK: dsll $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]220# CHECK: ori  $1, $1, 65535   # encoding: [0xff,0xff,0x21,0x34]221# CHECK: lwl  $8, 3($1)       # encoding: [0x03,0x00,0x28,0x88]222# CHECK: lwr  $8, 0($1)       # encoding: [0x00,0x00,0x28,0x98]223 224  ulw $8, -0x1000100010001225# CHECK: lui  $1, 65534       # encoding: [0xfe,0xff,0x01,0x3c]226# CHECK: ori  $1, $1, 65534   # encoding: [0xfe,0xff,0x21,0x34]227# CHECK: dsll $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]228# CHECK: ori  $1, $1, 65534   # encoding: [0xfe,0xff,0x21,0x34]229# CHECK: dsll $1, $1, 16      # encoding: [0x38,0x0c,0x01,0x00]230# CHECK: ori  $1, $1, 65535   # encoding: [0xff,0xff,0x21,0x34]231# CHECK: lwl  $8, 3($1)       # encoding: [0x03,0x00,0x28,0x88]232# CHECK: lwr  $8, 0($1)       # encoding: [0x00,0x00,0x28,0x98]233 234# Test ulw with source register and 64-bit immediate offset.235  ulw $8, 0x100010001($9)236# CHECK: addiu $1, $zero, 1   # encoding: [0x01,0x00,0x01,0x24]237# CHECK: ori   $1, $1, 1      # encoding: [0x01,0x00,0x21,0x34]238# CHECK: dsll  $1, $1, 16     # encoding: [0x38,0x0c,0x01,0x00]239# CHECK: ori   $1, $1, 1      # encoding: [0x01,0x00,0x21,0x34]240# CHECK: daddu $1, $1, $9     # encoding: [0x2d,0x08,0x29,0x00]241# CHECK: lwl   $8, 3($1)      # encoding: [0x03,0x00,0x28,0x88]242# CHECK: lwr   $8, 0($1)      # encoding: [0x00,0x00,0x28,0x98]243 244  ulw $8, 0x1000100010001($9)245# CHECK: lui   $1, 1          # encoding: [0x01,0x00,0x01,0x3c]246# CHECK: ori   $1, $1, 1      # encoding: [0x01,0x00,0x21,0x34]247# CHECK: dsll  $1, $1, 16     # encoding: [0x38,0x0c,0x01,0x00]248# CHECK: ori   $1, $1, 1      # encoding: [0x01,0x00,0x21,0x34]249# CHECK: dsll  $1, $1, 16     # encoding: [0x38,0x0c,0x01,0x00]250# CHECK: ori   $1, $1, 1      # encoding: [0x01,0x00,0x21,0x34]251# CHECK: daddu $1, $1, $9     # encoding: [0x2d,0x08,0x29,0x00]252# CHECK: lwl   $8, 3($1)      # encoding: [0x03,0x00,0x28,0x88]253# CHECK: lwr   $8, 0($1)      # encoding: [0x00,0x00,0x28,0x98]254 255  ulw $8, -0x100010001($9)256# CHECK: addiu $1, $zero, -2  # encoding: [0xfe,0xff,0x01,0x24]257# CHECK: dsll  $1, $1, 16     # encoding: [0x38,0x0c,0x01,0x00]258# CHECK: ori   $1, $1, 65534  # encoding: [0xfe,0xff,0x21,0x34]259# CHECK: dsll  $1, $1, 16     # encoding: [0x38,0x0c,0x01,0x00]260# CHECK: ori   $1, $1, 65535  # encoding: [0xff,0xff,0x21,0x34]261# CHECK: daddu $1, $1, $9     # encoding: [0x2d,0x08,0x29,0x00]262# CHECK: lwl   $8, 3($1)      # encoding: [0x03,0x00,0x28,0x88]263# CHECK: lwr   $8, 0($1)      # encoding: [0x00,0x00,0x28,0x98]264 265  ulw $8, -0x1000100010001($9)266# CHECK: lui   $1, 65534      # encoding: [0xfe,0xff,0x01,0x3c]267# CHECK: ori   $1, $1, 65534  # encoding: [0xfe,0xff,0x21,0x34]268# CHECK: dsll  $1, $1, 16     # encoding: [0x38,0x0c,0x01,0x00]269# CHECK: ori   $1, $1, 65534  # encoding: [0xfe,0xff,0x21,0x34]270# CHECK: dsll  $1, $1, 16     # encoding: [0x38,0x0c,0x01,0x00]271# CHECK: ori   $1, $1, 65535  # encoding: [0xff,0xff,0x21,0x34]272# CHECK: daddu $1, $1, $9     # encoding: [0x2d,0x08,0x29,0x00]273# CHECK: lwl   $8, 3($1)      # encoding: [0x03,0x00,0x28,0x88]274# CHECK: lwr   $8, 0($1)      # encoding: [0x00,0x00,0x28,0x98]275 276# Test lb/sb/ld/sd/lld with offsets exceeding 16-bits in size.277 278    ld  $4, 0x8000279# CHECK:      lui     $4, 1280# CHECK-NEXT: ld      $4, -32768($4)281 282    ld  $4, 0x20008($3)283# CHECK:      lui     $4, 2284# CHECK-NEXT: addu    $4, $4, $3285# CHECK-NEXT: ld      $4, 8($4)286 287    ld  $4,0x100010004288# CHECK:      addiu   $4, $zero, 1289# CHECK-NEXT: dsll    $4, $4, 16290# CHECK-NEXT: ori     $4, $4, 1291# CHECK-NEXT: dsll    $4, $4, 16292# CHECK-NEXT: ld      $4, 4($4)293 294    ld  $4,0x1800180018004295# CHECK:      lui     $4, 1296# CHECK-NEXT: ori     $4, $4, 32769297# CHECK-NEXT: dsll    $4, $4, 16298# CHECK-NEXT: ori     $4, $4, 32770299# CHECK-NEXT: dsll    $4, $4, 16300# CHECK-NEXT: ld      $4, -32764($4)301 302    ld  $4,0x1800180018004($3)303# CHECK:      lui     $4, 1304# CHECK-NEXT: ori     $4, $4, 32769305# CHECK-NEXT: dsll    $4, $4, 16306# CHECK-NEXT: ori     $4, $4, 32770307# CHECK-NEXT: dsll    $4, $4, 16308# CHECK-NEXT: daddu   $4, $4, $3309# CHECK-NEXT: ld      $4, -32764($4)310 311    sd  $4, 0x8000312# CHECK:      lui     $1, 1313# CHECK-NEXT: sd      $4, -32768($1)314 315    sd  $4, 0x20008($3)316# CHECK:      lui     $1, 2317# CHECK-NEXT: addu    $1, $1, $3318# CHECK-NEXT: sd      $4, 8($1)319 320    sd  $4,0x100010004321# CHECK:      addiu   $1, $zero, 1322# CHECK-NEXT: dsll    $1, $1, 16323# CHECK-NEXT: ori     $1, $1, 1324# CHECK-NEXT: dsll    $1, $1, 16325# CHECK-NEXT: sd      $4, 4($1)326 327    sd  $4,0x1800180018004328# CHECK:      lui     $1, 1329# CHECK-NEXT: ori     $1, $1, 32769330# CHECK-NEXT: dsll    $1, $1, 16331# CHECK-NEXT: ori     $1, $1, 32770332# CHECK-NEXT: dsll    $1, $1, 16333# CHECK-NEXT: sd      $4, -32764($1)334 335    sd  $4,0x1800180018004($3)336# CHECK:      lui     $1, 1337# CHECK-NEXT: ori     $1, $1, 32769338# CHECK-NEXT: dsll    $1, $1, 16339# CHECK-NEXT: ori     $1, $1, 32770340# CHECK-NEXT: dsll    $1, $1, 16341# CHECK-NEXT: daddu   $1, $1, $3342# CHECK-NEXT: sd      $4, -32764($1)343 344    lld $4, 0x8000345# CHECK:      lui     $4, 1346# CHECK-NEXT: lld     $4, -32768($4)347 348    lld $4, 0x20008($3)349# CHECK:      lui     $4, 2350# CHECK-NEXT: addu    $4, $4, $3351# CHECK-NEXT: lld     $4, 8($4)352 353    lld $4,0x100010004354# CHECK:      addiu   $4, $zero, 1355# CHECK-NEXT: dsll    $4, $4, 16356# CHECK-NEXT: ori     $4, $4, 1357# CHECK-NEXT: dsll    $4, $4, 16358# CHECK-NEXT: lld     $4, 4($4)359 360    lld $4,0x1800180018004361# CHECK:      lui     $4, 1362# CHECK-NEXT: ori     $4, $4, 32769363# CHECK-NEXT: dsll    $4, $4, 16364# CHECK-NEXT: ori     $4, $4, 32770365# CHECK-NEXT: dsll    $4, $4, 16366# CHECK-NEXT: lld     $4, -32764($4)367 368    lld $4,0x1800180018004($3)369# CHECK:      lui     $4, 1370# CHECK-NEXT: ori     $4, $4, 32769371# CHECK-NEXT: dsll    $4, $4, 16372# CHECK-NEXT: ori     $4, $4, 32770373# CHECK-NEXT: dsll    $4, $4, 16374# CHECK-NEXT: daddu   $4, $4, $3375# CHECK-NEXT: lld     $4, -32764($4)376 377    lb  $4,0x100010004378# CHECK:      addiu   $4, $zero, 1379# CHECK-NEXT: dsll    $4, $4, 16380# CHECK-NEXT: ori     $4, $4, 1381# CHECK-NEXT: dsll    $4, $4, 16382# CHECK-NEXT: lb      $4, 4($4)383 384    lb  $4,0x1800180018004385# CHECK:      lui     $4, 1386# CHECK-NEXT: ori     $4, $4, 32769387# CHECK-NEXT: dsll    $4, $4, 16388# CHECK-NEXT: ori     $4, $4, 32770389# CHECK-NEXT: dsll    $4, $4, 16390# CHECK-NEXT: lb      $4, -32764($4)391 392    lb  $4,0x1800180018004($3)393# CHECK:      lui     $4, 1394# CHECK-NEXT: ori     $4, $4, 32769395# CHECK-NEXT: dsll    $4, $4, 16396# CHECK-NEXT: ori     $4, $4, 32770397# CHECK-NEXT: dsll    $4, $4, 16398# CHECK-NEXT: daddu   $4, $4, $3399# CHECK-NEXT: lb      $4, -32764($4)400 401    sb  $4,0x100010004402# CHECK:      addiu   $1, $zero, 1403# CHECK-NEXT: dsll    $1, $1, 16404# CHECK-NEXT: ori     $1, $1, 1405# CHECK-NEXT: dsll    $1, $1, 16406# CHECK-NEXT: sb      $4, 4($1)407 408    sb  $4,0x1800180018004409# CHECK:      lui     $1, 1410# CHECK-NEXT: ori     $1, $1, 32769411# CHECK-NEXT: dsll    $1, $1, 16412# CHECK-NEXT: ori     $1, $1, 32770413# CHECK-NEXT: dsll    $1, $1, 16414# CHECK-NEXT: sb      $4, -32764($1)415 416    sb  $4,0x1800180018004($3)417# CHECK:      lui     $1, 1418# CHECK-NEXT: ori     $1, $1, 32769419# CHECK-NEXT: dsll    $1, $1, 16420# CHECK-NEXT: ori     $1, $1, 32770421# CHECK-NEXT: dsll    $1, $1, 16422# CHECK-NEXT: daddu   $1, $1, $3423# CHECK-NEXT: sb      $4, -32764($1)424 425    lh  $4,0x100010004426# CHECK:      addiu   $4, $zero, 1427# CHECK-NEXT: dsll    $4, $4, 16428# CHECK-NEXT: ori     $4, $4, 1429# CHECK-NEXT: dsll    $4, $4, 16430# CHECK-NEXT: lh      $4, 4($4)431 432    lh  $4,0x1800180018004433# CHECK:      lui     $4, 1434# CHECK-NEXT: ori     $4, $4, 32769435# CHECK-NEXT: dsll    $4, $4, 16436# CHECK-NEXT: ori     $4, $4, 32770437# CHECK-NEXT: dsll    $4, $4, 16438# CHECK-NEXT: lh      $4, -32764($4)439 440    lh  $4,0x1800180018004($3)441# CHECK:      lui     $4, 1442# CHECK-NEXT: ori     $4, $4, 32769443# CHECK-NEXT: dsll    $4, $4, 16444# CHECK-NEXT: ori     $4, $4, 32770445# CHECK-NEXT: dsll    $4, $4, 16446# CHECK-NEXT: daddu   $4, $4, $3447# CHECK-NEXT: lh      $4, -32764($4)448 449    lhu $4,0x100010004450# CHECK:      addiu   $4, $zero, 1451# CHECK-NEXT: dsll    $4, $4, 16452# CHECK-NEXT: ori     $4, $4, 1453# CHECK-NEXT: dsll    $4, $4, 16454# CHECK-NEXT: lhu     $4, 4($4)455 456    lhu $4,0x1800180018004457# CHECK:      lui     $4, 1458# CHECK-NEXT: ori     $4, $4, 32769459# CHECK-NEXT: dsll    $4, $4, 16460# CHECK-NEXT: ori     $4, $4, 32770461# CHECK-NEXT: dsll    $4, $4, 16462# CHECK-NEXT: lhu     $4, -32764($4)463 464    lhu $4,0x1800180018004($3)465# CHECK:      lui     $4, 1466# CHECK-NEXT: ori     $4, $4, 32769467# CHECK-NEXT: dsll    $4, $4, 16468# CHECK-NEXT: ori     $4, $4, 32770469# CHECK-NEXT: dsll    $4, $4, 16470# CHECK-NEXT: daddu   $4, $4, $3471# CHECK-NEXT: lhu     $4, -32764($4)472 473# LW/SW and LDC1/SDC1 of symbol address, done by MipsAsmParser::expandMemInst():474  .option pic2475  lw $10, symbol($4)476# GOT:      ld      $10, %got_disp(symbol)($gp) # encoding: [A,A,0x8a,0xdf]477# GOT-NEXT:                                     #   fixup A - offset: 0, value: %got_disp(symbol), kind: fixup_Mips_GOT_DISP478# GOT-NEXT: daddu   $10, $10, $4                # encoding: [0x2d,0x50,0x44,0x01]479# GOT-NEXT: lw      $10, 0($10)                 # encoding: [0x00,0x00,0x4a,0x8d]480 481# XGOT:      lui    $10, %got_hi(symbol)        # encoding: [A,A,0x0a,0x3c]482# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_hi(symbol), kind: fixup_Mips_GOT_HI16483# XGOT-NEXT: daddu  $10, $10, $gp               # encoding: [0x2d,0x50,0x5c,0x01]484# XGOT-NEXT: ld     $10, %got_lo(symbol)($10)   # encoding: [A,A,0x4a,0xdd]485# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_lo(symbol), kind: fixup_Mips_GOT_LO16486# XGOT-NEXT: daddu  $10, $10, $4                # encoding: [0x2d,0x50,0x44,0x01]487# XGOT-NEXT: lw     $10, 0($10)                 # encoding: [0x00,0x00,0x4a,0x8d]488 489  sw $10, symbol($9)490# GOT:      ld      $1, %got_disp(symbol)($gp)  # encoding: [A,A,0x81,0xdf]491# GOT-NEXT:                                     #   fixup A - offset: 0, value: %got_disp(symbol), kind: fixup_Mips_GOT_DISP492# GOT-NEXT: daddu   $1, $1, $9                  # encoding: [0x2d,0x08,0x29,0x00]493# GOT-NEXT: sw      $10, 0($1)                  # encoding: [0x00,0x00,0x2a,0xac]494 495# XGOT:      lui    $1, %got_hi(symbol)         # encoding: [A,A,0x01,0x3c]496# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_hi(symbol), kind: fixup_Mips_GOT_HI16497# XGOT-NEXT: daddu  $1, $1, $gp                 # encoding: [0x2d,0x08,0x3c,0x00]498# XGOT-NEXT: ld     $1, %got_lo(symbol)($1)     # encoding: [A,A,0x21,0xdc]499# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_lo(symbol), kind: fixup_Mips_GOT_LO16500# XGOT-NEXT: daddu  $1, $1, $9                  # encoding: [0x2d,0x08,0x29,0x00]501# XGOT-NEXT: sw     $10, 0($1)                  # encoding: [0x00,0x00,0x2a,0xac]502 503  lw $8, sym+8504# GOT:      ld      $8, %got_disp(sym)($gp)     # encoding: [A,A,0x88,0xdf]505# GOT-NEXT:                                     #   fixup A - offset: 0, value: %got_disp(sym), kind: fixup_Mips_GOT_DISP506# GOT-NEXT: lw      $8, 8($8)                   # encoding: [0x08,0x00,0x08,0x8d]507 508# XGOT:      ld     $8, %got_disp(sym)($gp)     # encoding: [A,A,0x88,0xdf]509# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_disp(sym), kind: fixup_Mips_GOT_DISP510# XGOT-NEXT: lw     $8, 8($8)                   # encoding: [0x08,0x00,0x08,0x8d]511 512  sw $8, sym+8513# GOT:      ld      $1, %got_disp(sym)($gp)     # encoding: [A,A,0x81,0xdf]514# GOT-NEXT:                                     #   fixup A - offset: 0, value: %got_disp(sym), kind: fixup_Mips_GOT_DISP515# GOT-NEXT: sw      $8, 8($1)                   # encoding: [0x08,0x00,0x28,0xac]516 517# XGOT:      ld     $1, %got_disp(sym)($gp)     # encoding: [A,A,0x81,0xdf]518# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_disp(sym), kind: fixup_Mips_GOT_DISP519# XGOT-NEXT: sw     $8, 8($1)                   # encoding: [0x08,0x00,0x28,0xac]520 521  lw $10, 655483($4)522# GOT:      lui     $10, 10                     # encoding: [0x0a,0x00,0x0a,0x3c]523# GOT-NEXT: daddu   $10, $10, $4                # encoding: [0x2d,0x50,0x44,0x01]524# GOT-NEXT: lw      $10, 123($10)               # encoding: [0x7b,0x00,0x4a,0x8d]525 526# XGOT:      lui    $10, 10                     # encoding: [0x0a,0x00,0x0a,0x3c]527# XGOT-NEXT: daddu  $10, $10, $4                # encoding: [0x2d,0x50,0x44,0x01]528# XGOT-NEXT: lw     $10, 123($10)               # encoding: [0x7b,0x00,0x4a,0x8d]529  sw $10, 123456($9)530# GOT:      lui     $1, 2                       # encoding: [0x02,0x00,0x01,0x3c]531# GOT-NEXT: daddu   $1, $1, $9                  # encoding: [0x2d,0x08,0x29,0x00]532# GOT-NEXT: sw      $10, -7616($1)              # encoding: [0x40,0xe2,0x2a,0xac]533 534# XGOT:      lui    $1, 2                       # encoding: [0x02,0x00,0x01,0x3c]535# XGOT-NEXT: daddu  $1, $1, $9                  # encoding: [0x2d,0x08,0x29,0x00]536# XGOT-NEXT: sw     $10, -7616($1)              # encoding: [0x40,0xe2,0x2a,0xac]537 538  lw $8, symbol+8539# GOT:      ld      $8, %got_disp(symbol)($gp)  # encoding: [A,A,0x88,0xdf]540# GOT-NEXT:                                     #   fixup A - offset: 0, value: %got_disp(symbol), kind: fixup_Mips_GOT_DISP541# GOT-NEXT: lw      $8, 8($8)                   # encoding: [0x08,0x00,0x08,0x8d]542 543# XGOT:      lui    $8, %got_hi(symbol)         # encoding: [A,A,0x08,0x3c]544# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_hi(symbol), kind: fixup_Mips_GOT_HI16545# XGOT-NEXT: daddu  $8, $8, $gp                 # encoding: [0x2d,0x40,0x1c,0x01]546# XGOT-NEXT: ld     $8, %got_lo(symbol)($8)     # encoding: [A,A,0x08,0xdd]547# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_lo(symbol), kind: fixup_Mips_GOT_LO16548# XGOT-NEXT: lw     $8, 8($8)                   # encoding: [0x08,0x00,0x08,0x8d]549 550  sw $8, symbol+8551# GOT:      ld      $1, %got_disp(symbol)($gp)  # encoding: [A,A,0x81,0xdf]552# GOT-NEXT:                                     #   fixup A - offset: 0, value: %got_disp(symbol), kind: fixup_Mips_GOT_DISP553# GOT-NEXT: sw $8, 8($1)                        # encoding: [0x08,0x00,0x28,0xac]554 555# XGOT:      lui    $1, %got_hi(symbol)         # encoding: [A,A,0x01,0x3c]556# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_hi(symbol), kind: fixup_Mips_GOT_HI16557# XGOT-NEXT: daddu  $1, $1, $gp                 # encoding: [0x2d,0x08,0x3c,0x00]558# XGOT-NEXT: ld     $1, %got_lo(symbol)($1)     # encoding: [A,A,0x21,0xdc]559# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_lo(symbol), kind: fixup_Mips_GOT_LO16560# XGOT-NEXT: sw     $8, 8($1)                   # encoding: [0x08,0x00,0x28,0xac]561 562  ldc1 $f0, symbol563# GOT:      ld      $1, %got_disp(symbol)($gp) # encoding: [A,A,0x81,0xdf]564# GOT-NEXT:                                    #   fixup A - offset: 0, value: %got_disp(symbol), kind: fixup_Mips_GOT_DISP565# GOT-NEXT: ldc1    $f0, 0($1)                 # encoding: [0x00,0x00,0x20,0xd4]566 567# XGOT:      lui    $1, %got_hi(symbol)         # encoding: [A,A,0x01,0x3c]568# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_hi(symbol), kind: fixup_Mips_GOT_HI16569# XGOT-NEXT: daddu  $1, $1, $gp                 # encoding: [0x2d,0x08,0x3c,0x00]570# XGOT-NEXT: ld     $1, %got_lo(symbol)($1)     # encoding: [A,A,0x21,0xdc]571# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_lo(symbol), kind: fixup_Mips_GOT_LO16572# XGOT-NEXT: ldc1   $f0, 0($1)                  # encoding: [0x00,0x00,0x20,0xd4]573 574  sdc1 $f0, symbol575# GOT:      ld      $1, %got_disp(symbol)($gp) # encoding: [A,A,0x81,0xdf]576# GOT-NEXT:                                    #   fixup A - offset: 0, value: %got_disp(symbol), kind: fixup_Mips_GOT_DISP577# GOT-NEXT: sdc1    $f0, 0($1)                 # encoding: [0x00,0x00,0x20,0xf4]578 579# XGOT:      lui    $1, %got_hi(symbol)         # encoding: [A,A,0x01,0x3c]580# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_hi(symbol), kind: fixup_Mips_GOT_HI16581# XGOT-NEXT: daddu  $1, $1, $gp                 # encoding: [0x2d,0x08,0x3c,0x00]582# XGOT-NEXT: ld     $1, %got_lo(symbol)($1)     # encoding: [A,A,0x21,0xdc]583# XGOT-NEXT:                                    #   fixup A - offset: 0, value: %got_lo(symbol), kind: fixup_Mips_GOT_LO16584# XGOT-NEXT: sdc1   $f0, 0($1)                  # encoding: [0x00,0x00,0x20,0xf4]585