189 lines · plain
1# RUN: llvm-mc -filetype=obj -triple mips64 -mcpu=mips64 %s -o - \2# RUN: | llvm-objdump --no-print-imm-hex -d -r - | FileCheck %s --check-prefix=MIPS643# RUN: llvm-mc -filetype=obj -triple mips64 -mcpu=mips64r6 %s -o - \4# RUN: | llvm-objdump --no-print-imm-hex -d -r - | FileCheck %s --check-prefix=MIPS64R65 6scd $2, 128($sp)7# MIPS64: f3 a2 00 80 scd $2, 128($sp)8# MIPS64R6: 7f a2 40 27 scd $2, 128($sp)9 10scd $2, -128($sp)11# MIPS64: f3 a2 ff 80 scd $2, -128($sp)12# MIPS64R6: 7f a2 c0 27 scd $2, -128($sp)13 14scd $2, 256($sp)15# MIPS64: f3 a2 01 00 scd $2, 256($sp)16 17# MIPS64R6: 67 a1 01 00 daddiu $1, $sp, 25618# MIPS64R6-NEXT: 7c 22 00 27 scd $2, 0($1)19 20scd $2, -257($sp)21# MIPS64: f3 a2 fe ff scd $2, -257($sp)22 23# MIPS64R6: 67 a1 fe ff daddiu $1, $sp, -25724# MIPS64R6-NEXT: 7c 22 00 27 scd $2, 0($1)25 26scd $2, 32767($sp)27# MIPS64: f3 a2 7f ff scd $2, 32767($sp)28 29# MIPS64R6: 67 a1 7f ff daddiu $1, $sp, 3276730# MIPS64R6-NEXT: 7c 22 00 27 scd $2, 0($1)31 32scd $2, 32768($sp)33# MIPS64: 3c 01 00 01 lui $1, 134# MIPS64-NEXT: 00 3d 08 2d daddu $1, $1, $sp35# MIPS64-NEXT: f0 22 80 00 scd $2, -32768($1)36 37# MIPS64R6: 34 01 80 00 ori $1, $zero, 3276838# MIPS64R6-NEXT: 00 3d 08 2d daddu $1, $1, $sp39# MIPS64R6-NEXT: 7c 22 00 27 scd $2, 0($1)40 41scd $2, -32768($sp)42# MIPS64: f3 a2 80 00 scd $2, -32768($sp)43 44# MIPS64R6: 67 a1 80 00 daddiu $1, $sp, -3276845# MIPS64R6-NEXT: 7c 22 00 27 scd $2, 0($1)46 47scd $2, -32769($sp)48# MIPS64: 3c 01 ff ff lui $1, 6553549# MIPS64-NEXT: 00 3d 08 2d daddu $1, $1, $sp50# MIPS64-NEXT: f0 22 7f ff scd $2, 32767($1)51 52# MIPS64R6: 3c 01 ff ff aui $1, $zero, 6553553# MIPS64R6-NEXT: 34 21 7f ff ori $1, $1, 3276754# MIPS64R6-NEXT: 00 3d 08 2d daddu $1, $1, $sp55# MIPS64R6-NEXT: 7c 22 00 27 scd $2, 0($1)56 57scd $2, 2147483648($sp)58# MIPS64: 34 01 80 00 ori $1, $zero, 3276859# MIPS64-NEXT: 00 01 0c 38 dsll $1, $1, 1660# MIPS64-NEXT: 00 3d 08 2d daddu $1, $1, $sp61# MIPS64-NEXT: f0 22 00 00 scd $2, 0($1)62 63# MIPS64R6: 34 01 80 00 ori $1, $zero, 3276864# MIPS64R6-NEXT: 00 01 0c 38 dsll $1, $1, 1665# MIPS64R6-NEXT: 00 3d 08 2d daddu $1, $1, $sp66# MIPS64R6-NEXT: 7c 22 00 27 scd $2, 0($1)67 68scd $2, -2147483648($sp)69# MIPS64: 3c 01 80 00 lui $1, 3276870# MIPS64-NEXT: 00 3d 08 2d daddu $1, $1, $sp71# MIPS64-NEXT: f0 22 00 00 scd $2, 0($1)72 73# MIPS64R6: 3c 01 80 00 aui $1, $zero, 3276874# MIPS64R6-NEXT: 00 3d 08 2d daddu $1, $1, $sp75# MIPS64R6-NEXT: 7c 22 00 27 scd $2, 0($1)76 77scd $2, 9223372036853775808($sp)78# MIPS64: 3c 01 7f ff lui $1, 3276779# MIPS64-NEXT: 34 21 ff ff ori $1, $1, 6553580# MIPS64-NEXT: 00 01 0c 38 dsll $1, $1, 1681# MIPS64-NEXT: 34 21 ff f1 ori $1, $1, 6552182# MIPS64-NEXT: 00 01 0c 38 dsll $1, $1, 1683# MIPS64-NEXT: 00 3d 08 2d daddu $1, $1, $sp84# MIPS64-NEXT: f0 22 bd c0 scd $2, -16960($1)85 86# MIPS64R6: 3c 01 7f ff aui $1, $zero, 3276787# MIPS64R6-NEXT: 34 21 ff ff ori $1, $1, 6553588# MIPS64R6-NEXT: 00 01 0c 38 dsll $1, $1, 1689# MIPS64R6-NEXT: 34 21 ff f0 ori $1, $1, 6552090# MIPS64R6-NEXT: 00 01 0c 38 dsll $1, $1, 1691# MIPS64R6-NEXT: 34 21 bd c0 ori $1, $1, 4857692# MIPS64R6-NEXT: 00 3d 08 2d daddu $1, $1, $sp93# MIPS64R6-NEXT: 7c 22 00 27 scd $2, 0($1)94 95scd $12, symbol96# MIPS64: 3c 01 00 00 lui $1, 097# MIPS64-NEXT: R_MIPS_HIGHEST/R_MIPS_NONE/R_MIPS_NONE symbol98# MIPS64-NEXT: 64 21 00 00 daddiu $1, $1, 099# MIPS64-NEXT: R_MIPS_HIGHER/R_MIPS_NONE/R_MIPS_NONE symbol100# MIPS64-NEXT: 00 01 0c 38 dsll $1, $1, 16101# MIPS64-NEXT: 64 21 00 00 daddiu $1, $1, 0102# MIPS64-NEXT: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE symbol103# MIPS64-NEXT: 00 01 0c 38 dsll $1, $1, 16104# MIPS64-NEXT: f0 2c 00 00 scd $12, 0($1)105# MIPS64-NEXT: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE symbol106 107# MIPS64R6: 3c 01 00 00 aui $1, $zero, 0108# MIPS64R6-NEXT: R_MIPS_HIGHEST/R_MIPS_NONE/R_MIPS_NONE symbol109# MIPS64R6-NEXT: 64 21 00 00 daddiu $1, $1, 0110# MIPS64R6-NEXT: R_MIPS_HIGHER/R_MIPS_NONE/R_MIPS_NONE symbol111# MIPS64R6-NEXT: 00 01 0c 38 dsll $1, $1, 16112# MIPS64R6-NEXT: 64 21 00 00 daddiu $1, $1, 0113# MIPS64R6-NEXT: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE symbol114# MIPS64R6-NEXT: 00 01 0c 38 dsll $1, $1, 16115# MIPS64R6-NEXT: 64 21 00 00 daddiu $1, $1, 0116# MIPS64R6-NEXT: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE symbol117# MIPS64R6-NEXT: 7c 2c 00 27 scd $12, 0($1)118 119scd $12, symbol($3)120# MIPS64: 3c 01 00 00 lui $1, 0121# MIPS64-NEXT: R_MIPS_HIGHEST/R_MIPS_NONE/R_MIPS_NONE symbol122# MIPS64-NEXT: 64 21 00 00 daddiu $1, $1, 0123# MIPS64-NEXT: R_MIPS_HIGHER/R_MIPS_NONE/R_MIPS_NONE symbol124# MIPS64-NEXT: 00 01 0c 38 dsll $1, $1, 16125# MIPS64-NEXT: 64 21 00 00 daddiu $1, $1, 0126# MIPS64-NEXT: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE symbol127# MIPS64-NEXT: 00 01 0c 38 dsll $1, $1, 16128# MIPS64-NEXT: 00 23 08 2d daddu $1, $1, $3129# MIPS64-NEXT: f0 2c 00 00 scd $12, 0($1)130# MIPS64-NEXT: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE symbol131 132# MIPS64R6: 3c 01 00 00 aui $1, $zero, 0133# MIPS64R6-NEXT: R_MIPS_HIGHEST/R_MIPS_NONE/R_MIPS_NONE symbol134# MIPS64R6-NEXT: 64 21 00 00 daddiu $1, $1, 0135# MIPS64R6-NEXT: R_MIPS_HIGHER/R_MIPS_NONE/R_MIPS_NONE symbol136# MIPS64R6-NEXT: 00 01 0c 38 dsll $1, $1, 16137# MIPS64R6-NEXT: 64 21 00 00 daddiu $1, $1, 0138# MIPS64R6-NEXT: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE symbol139# MIPS64R6-NEXT: 00 01 0c 38 dsll $1, $1, 16140# MIPS64R6-NEXT: 64 21 00 00 daddiu $1, $1, 0141# MIPS64R6-NEXT: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE symbol142# MIPS64R6-NEXT: 00 23 08 2d daddu $1, $1, $3143# MIPS64R6-NEXT: 7c 2c 00 27 scd $12, 0($1)144 145scd $12, symbol+8146# MIPS64: 3c 01 00 00 lui $1, 0147# MIPS64-NEXT: R_MIPS_HIGHEST/R_MIPS_NONE/R_MIPS_NONE symbol+0x8148# MIPS64-NEXT: 64 21 00 00 daddiu $1, $1, 0149# MIPS64-NEXT: R_MIPS_HIGHER/R_MIPS_NONE/R_MIPS_NONE symbol+0x8150# MIPS64-NEXT: 00 01 0c 38 dsll $1, $1, 16151# MIPS64-NEXT: 64 21 00 00 daddiu $1, $1, 0152# MIPS64-NEXT: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE symbol+0x8153# MIPS64-NEXT: 00 01 0c 38 dsll $1, $1, 16154# MIPS64-NEXT: f0 2c 00 00 scd $12, 0($1)155# MIPS64-NEXT: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE symbol+0x8156 157# MIPS64R6: 3c 01 00 00 aui $1, $zero, 0158# MIPS64R6-NEXT: R_MIPS_HIGHEST/R_MIPS_NONE/R_MIPS_NONE symbol+0x8159# MIPS64R6-NEXT: 64 21 00 00 daddiu $1, $1, 0160# MIPS64R6-NEXT: R_MIPS_HIGHER/R_MIPS_NONE/R_MIPS_NONE symbol+0x8161# MIPS64R6-NEXT: 00 01 0c 38 dsll $1, $1, 16162# MIPS64R6-NEXT: 64 21 00 00 daddiu $1, $1, 0163# MIPS64R6-NEXT: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE symbol+0x8164# MIPS64R6-NEXT: 00 01 0c 38 dsll $1, $1, 16165# MIPS64R6-NEXT: 64 21 00 00 daddiu $1, $1, 0166# MIPS64R6-NEXT: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE symbol+0x8167# MIPS64R6-NEXT: 7c 2c 00 27 scd $12, 0($1)168 169.option pic2170 171scd $12, symbol172# MIPS64: df 81 00 00 ld $1, 0($gp)173# MIPS64-NEXT: R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE symbol174# MIPS64-NEXT: f0 2c 00 00 scd $12, 0($1)175 176# MIPS64R6: df 81 00 00 ld $1, 0($gp)177# MIPS64R6-NEXT: R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE symbol178# MIPS64R6-NEXT: 7c 2c 00 27 scd $12, 0($1)179 180scd $12, symbol+8181# MIPS64: df 81 00 00 ld $1, 0($gp)182# MIPS64-NEXT: R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE symbol183# MIPS64-NEXT: f0 2c 00 08 scd $12, 8($1)184 185# MIPS64R6: df 81 00 00 ld $1, 0($gp)186# MIPS64R6-NEXT: R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE symbol187# MIPS64R6-NEXT: 64 21 00 08 daddiu $1, $1, 8188# MIPS64R6-NEXT: 7c 2c 00 27 scd $12, 0($1)189