246 lines · plain
1# RUN: llvm-mc -triple mips-unknown-linux < %s -show-encoding -target-abi=o32 \2# RUN: | FileCheck -check-prefix=ASM %s3# RUN: llvm-mc -triple mips64-unknown-linux < %s -show-encoding -target-abi=n32 \4# RUN: | FileCheck -check-prefix=ASM %s5# RUN: llvm-mc -triple mips64-unknown-linux < %s -show-encoding -target-abi=n64 \6# RUN: | FileCheck -check-prefix=ASM %s7# RUN: llvm-mc -triple mips-unknown-linux < %s -show-encoding -target-abi=o32 \8# RUN: -filetype=obj | llvm-readobj --sections --section-data -r - | \9# RUN: FileCheck -check-prefix=OBJ-O32 %s10# RUN: llvm-mc -triple mips64-unknown-linux < %s -show-encoding -target-abi=n32 \11# RUN: -filetype=obj | llvm-readobj --sections --section-data -r - | \12# RUN: FileCheck -check-prefix=OBJ-N32 %s13# RUN: llvm-mc -triple mips64-unknown-linux < %s -show-encoding -target-abi=n64 \14# RUN: -filetype=obj | llvm-readobj --sections --section-data -r - | \15# RUN: FileCheck -check-prefix=OBJ-N64 %s16 .text17foo:18# ASM: .reloc {{.*}}+4, R_MIPS_NONE, foo19 .reloc .+4, R_MIPS_NONE, foo20 .reloc .+0, R_MIPS_NONE, foo+421 .reloc .+8, R_MIPS_32, foo+822 nop23 nop24 nop25 .reloc ., R_MIPS_NONE26 nop27 .reloc ., R_MIPS_CALL_HI16, 428 nop29 .reloc ., R_MIPS_CALL_LO16, 430 nop31 .reloc ., R_MIPS_CALL16, 432 nop33 .reloc ., R_MIPS_GOT16, 434 nop35 .reloc ., R_MIPS_GOT_PAGE, 436 nop37 .reloc ., R_MIPS_GOT_OFST, 438 nop39 .reloc ., R_MIPS_GOT_DISP, 440 nop41 .reloc ., R_MIPS_GOT_HI16, 442 nop43 .reloc ., R_MIPS_GOT_LO16, 444 nop45 .reloc ., R_MIPS_TLS_GOTTPREL, 446 nop47 .reloc ., R_MIPS_TLS_DTPREL_HI16, 448 nop49 .reloc ., R_MIPS_TLS_DTPREL_LO16, 450 nop51 .reloc ., R_MIPS_TLS_GD, 452 nop53 .reloc ., R_MIPS_TLS_LDM, 454 nop55 .reloc ., R_MIPS_TLS_TPREL_HI16, 456 nop57 .reloc ., R_MIPS_TLS_TPREL_LO16, 458 nop59 .reloc ., R_MICROMIPS_CALL16, 460 nop61 .reloc ., R_MICROMIPS_GOT_DISP, 462 nop63 .reloc ., R_MICROMIPS_GOT_PAGE, 464 nop65 .reloc ., R_MICROMIPS_GOT_OFST, 466 nop67 .reloc ., R_MICROMIPS_GOT16, 468 nop69 .reloc ., R_MICROMIPS_TLS_GOTTPREL, 470 nop71 .reloc ., R_MICROMIPS_TLS_DTPREL_HI16, 472 nop73 .reloc ., R_MICROMIPS_TLS_DTPREL_LO16, 474 nop75 .reloc ., R_MICROMIPS_TLS_GD, 476 nop77 .reloc ., R_MICROMIPS_TLS_LDM, 478 nop79 .reloc ., R_MICROMIPS_TLS_TPREL_HI16, 480 nop81 .reloc ., R_MICROMIPS_TLS_TPREL_LO16, 482 nop83 .reloc ., R_MIPS_JALR, 484 nop85 .reloc ., R_MICROMIPS_JALR, 486 nop87 .reloc ., BFD_RELOC_NONE, 988 .reloc ., BFD_RELOC_16, 989 .reloc ., BFD_RELOC_32, 990 .reloc ., BFD_RELOC_64, 991 nop92 93# OBJ-O32-LABEL: Name: .text94# OBJ-O32: 0000: 00000000 00000000 00000008 0000000095# OBJ-O32-NEXT: 0010: 00000000 00000004 00000000 0000000096# OBJ-O32-NEXT: 0020: 00000004 00000004 00000004 0000000097# OBJ-O32-NEXT: 0030: 00000004 00000000 00000000 0000000098# OBJ-O32-NEXT: 0040: 00000000 00000000 00000000 0000000099# OBJ-O32-NEXT: 0050: 00000000 00000004 00000004 00000004100# OBJ-O32-NEXT: 0060: 00000000 00000000 00000000 00000000101# OBJ-O32-NEXT: 0070: 00000000 00000000 00000000 00000000102# OBJ-O32-NEXT: 0080: 00000000 00000000103# OBJ-O32-LABEL: }104# OBJ-O32-LABEL: Relocations [105# OBJ-O32: 0x0 R_MIPS_NONE .text106# OBJ-O32-NEXT: 0x4 R_MIPS_NONE .text107# OBJ-O32-NEXT: 0x8 R_MIPS_32 .text108# OBJ-O32-NEXT: 0xC R_MIPS_NONE -109# OBJ-O32-NEXT: 0x10 R_MIPS_CALL_HI16 -110# OBJ-O32-NEXT: 0x14 R_MIPS_CALL_LO16 -111# OBJ-O32-NEXT: 0x18 R_MIPS_CALL16 -112# OBJ-O32-NEXT: 0x20 R_MIPS_GOT_PAGE -113# OBJ-O32-NEXT: 0x24 R_MIPS_GOT_OFST -114# OBJ-O32-NEXT: 0x28 R_MIPS_GOT_DISP -115# OBJ-O32-NEXT: 0x2C R_MIPS_GOT_HI16 -116# OBJ-O32-NEXT: 0x30 R_MIPS_GOT_LO16 -117# OBJ-O32-NEXT: 0x34 R_MIPS_TLS_GOTTPREL -118# OBJ-O32-NEXT: 0x38 R_MIPS_TLS_DTPREL_HI16 -119# OBJ-O32-NEXT: 0x3C R_MIPS_TLS_DTPREL_LO16 -120# OBJ-O32-NEXT: 0x40 R_MIPS_TLS_GD -121# OBJ-O32-NEXT: 0x44 R_MIPS_TLS_LDM -122# OBJ-O32-NEXT: 0x48 R_MIPS_TLS_TPREL_HI16 -123# OBJ-O32-NEXT: 0x4C R_MIPS_TLS_TPREL_LO16 -124# OBJ-O32-NEXT: 0x50 R_MICROMIPS_CALL16 -125# OBJ-O32-NEXT: 0x54 R_MICROMIPS_GOT_DISP -126# OBJ-O32-NEXT: 0x58 R_MICROMIPS_GOT_PAGE -127# OBJ-O32-NEXT: 0x5C R_MICROMIPS_GOT_OFST -128# OBJ-O32-NEXT: 0x64 R_MICROMIPS_TLS_GOTTPREL -129# OBJ-O32-NEXT: 0x68 R_MICROMIPS_TLS_DTPREL_HI16 -130# OBJ-O32-NEXT: 0x6C R_MICROMIPS_TLS_DTPREL_LO16 -131# OBJ-O32-NEXT: 0x70 R_MICROMIPS_TLS_GD -132# OBJ-O32-NEXT: 0x74 R_MICROMIPS_TLS_LDM -133# OBJ-O32-NEXT: 0x78 R_MICROMIPS_TLS_TPREL_HI16 -134# OBJ-O32-NEXT: 0x7C R_MICROMIPS_TLS_TPREL_LO16 -135# OBJ-O32-NEXT: 0x80 R_MIPS_JALR -136# OBJ-O32-NEXT: 0x84 R_MICROMIPS_JALR -137# OBJ-O32-NEXT: 0x88 R_MIPS_NONE -138# OBJ-O32-NEXT: 0x88 R_MIPS_16 -139# OBJ-O32-NEXT: 0x88 R_MIPS_32 -140# OBJ-O32-NEXT: 0x88 R_MIPS_64 -141# OBJ-O32-NEXT: 0x1C R_MIPS_GOT16 -142# OBJ-O32-NEXT: 0x60 R_MICROMIPS_GOT16 -143 144# OBJ-N32-LABEL: Name: .text145# OBJ-N32: 0000: 00000000 00000000 00000000 00000000146# OBJ-N32-NEXT: 0010: 00000000 00000000 00000000 00000000147# OBJ-N32-NEXT: 0020: 00000000 00000000 00000000 00000000148# OBJ-N32-NEXT: 0030: 00000000 00000000 00000000 00000000149# OBJ-N32-NEXT: 0040: 00000000 00000000 00000000 00000000150# OBJ-N32-NEXT: 0050: 00000000 00000000 00000000 00000000151# OBJ-N32-NEXT: 0060: 00000000 00000000 00000000 00000000152# OBJ-N32-NEXT: 0070: 00000000 00000000 00000000 00000000153# OBJ-N32-NEXT: 0080: 00000000 00000000154# OBJ-N32-LABEL: }155# OBJ-N32-LABEL: Relocations [156 157# OBJ-N32: 0x4 R_MIPS_NONE .text 0x0158# OBJ-N32-NEXT: 0x0 R_MIPS_NONE .text 0x4159# OBJ-N32-NEXT: 0x8 R_MIPS_32 .text 0x8160# OBJ-N32-NEXT: 0xC R_MIPS_NONE - 0x0161# OBJ-N32-NEXT: 0x10 R_MIPS_CALL_HI16 - 0x4162# OBJ-N32-NEXT: 0x14 R_MIPS_CALL_LO16 - 0x4163# OBJ-N32-NEXT: 0x18 R_MIPS_CALL16 - 0x4164# OBJ-N32-NEXT: 0x1C R_MIPS_GOT16 - 0x4165# OBJ-N32-NEXT: 0x20 R_MIPS_GOT_PAGE - 0x4166# OBJ-N32-NEXT: 0x24 R_MIPS_GOT_OFST - 0x4167# OBJ-N32-NEXT: 0x28 R_MIPS_GOT_DISP - 0x4168# OBJ-N32-NEXT: 0x2C R_MIPS_GOT_HI16 - 0x4169# OBJ-N32-NEXT: 0x30 R_MIPS_GOT_LO16 - 0x4170# OBJ-N32-NEXT: 0x34 R_MIPS_TLS_GOTTPREL - 0x4171# OBJ-N32-NEXT: 0x38 R_MIPS_TLS_DTPREL_HI16 - 0x4172# OBJ-N32-NEXT: 0x3C R_MIPS_TLS_DTPREL_LO16 - 0x4173# OBJ-N32-NEXT: 0x40 R_MIPS_TLS_GD - 0x4174# OBJ-N32-NEXT: 0x44 R_MIPS_TLS_LDM - 0x4175# OBJ-N32-NEXT: 0x48 R_MIPS_TLS_TPREL_HI16 - 0x4176# OBJ-N32-NEXT: 0x4C R_MIPS_TLS_TPREL_LO16 - 0x4177# OBJ-N32-NEXT: 0x50 R_MICROMIPS_CALL16 - 0x4178# OBJ-N32-NEXT: 0x54 R_MICROMIPS_GOT_DISP - 0x4179# OBJ-N32-NEXT: 0x58 R_MICROMIPS_GOT_PAGE - 0x4180# OBJ-N32-NEXT: 0x5C R_MICROMIPS_GOT_OFST - 0x4181# OBJ-N32-NEXT: 0x60 R_MICROMIPS_GOT16 - 0x4182# OBJ-N32-NEXT: 0x64 R_MICROMIPS_TLS_GOTTPREL - 0x4183# OBJ-N32-NEXT: 0x68 R_MICROMIPS_TLS_DTPREL_HI16 - 0x4184# OBJ-N32-NEXT: 0x6C R_MICROMIPS_TLS_DTPREL_LO16 - 0x4185# OBJ-N32-NEXT: 0x70 R_MICROMIPS_TLS_GD - 0x4186# OBJ-N32-NEXT: 0x74 R_MICROMIPS_TLS_LDM - 0x4187# OBJ-N32-NEXT: 0x78 R_MICROMIPS_TLS_TPREL_HI16 - 0x4188# OBJ-N32-NEXT: 0x7C R_MICROMIPS_TLS_TPREL_LO16 - 0x4189# OBJ-N32-NEXT: 0x80 R_MIPS_JALR - 0x4190# OBJ-N32-NEXT: 0x84 R_MICROMIPS_JALR - 0x4191# OBJ-N32-NEXT: 0x88 R_MIPS_NONE - 0x9192# OBJ-N32-NEXT: 0x88 R_MIPS_16 - 0x9193# OBJ-N32-NEXT: 0x88 R_MIPS_32 - 0x9194# OBJ-N32-NEXT: 0x88 R_MIPS_64 - 0x9195 196# OBJ-N64-LABEL: Name: .text197# OBJ-N64: 0000: 00000000 00000000 00000000 00000000198# OBJ-N64-NEXT: 0010: 00000000 00000000 00000000 00000000199# OBJ-N64-NEXT: 0020: 00000000 00000000 00000000 00000000200# OBJ-N64-NEXT: 0030: 00000000 00000000 00000000 00000000201# OBJ-N64-NEXT: 0040: 00000000 00000000 00000000 00000000202# OBJ-N64-NEXT: 0050: 00000000 00000000 00000000 00000000203# OBJ-N64-NEXT: 0060: 00000000 00000000 00000000 00000000204# OBJ-N64-NEXT: 0070: 00000000 00000000 00000000 00000000205# OBJ-N64-NEXT: 0080: 00000000 00000000206# OBJ-N64-LABEL: }207# OBJ-N64-LABEL: Relocations [208# OBJ-N64: 0x4 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE .text 0x0209# OBJ-N64-NEXT: 0x0 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE .text 0x4210# OBJ-N64-NEXT: 0x8 R_MIPS_32/R_MIPS_NONE/R_MIPS_NONE .text 0x8211# OBJ-N64-NEXT: 0xC R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE - 0x0212# OBJ-N64-NEXT: 0x10 R_MIPS_CALL_HI16/R_MIPS_NONE/R_MIPS_NONE - 0x4213# OBJ-N64-NEXT: 0x14 R_MIPS_CALL_LO16/R_MIPS_NONE/R_MIPS_NONE - 0x4214# OBJ-N64-NEXT: 0x18 R_MIPS_CALL16/R_MIPS_NONE/R_MIPS_NONE - 0x4215# OBJ-N64-NEXT: 0x1C R_MIPS_GOT16/R_MIPS_NONE/R_MIPS_NONE - 0x4216# OBJ-N64-NEXT: 0x20 R_MIPS_GOT_PAGE/R_MIPS_NONE/R_MIPS_NONE - 0x4217# OBJ-N64-NEXT: 0x24 R_MIPS_GOT_OFST/R_MIPS_NONE/R_MIPS_NONE - 0x4218# OBJ-N64-NEXT: 0x28 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE - 0x4219# OBJ-N64-NEXT: 0x2C R_MIPS_GOT_HI16/R_MIPS_NONE/R_MIPS_NONE - 0x4220# OBJ-N64-NEXT: 0x30 R_MIPS_GOT_LO16/R_MIPS_NONE/R_MIPS_NONE - 0x4221# OBJ-N64-NEXT: 0x34 R_MIPS_TLS_GOTTPREL/R_MIPS_NONE/R_MIPS_NONE - 0x4222# OBJ-N64-NEXT: 0x38 R_MIPS_TLS_DTPREL_HI16/R_MIPS_NONE/R_MIPS_NONE - 0x4223# OBJ-N64-NEXT: 0x3C R_MIPS_TLS_DTPREL_LO16/R_MIPS_NONE/R_MIPS_NONE - 0x4224# OBJ-N64-NEXT: 0x40 R_MIPS_TLS_GD/R_MIPS_NONE/R_MIPS_NONE - 0x4225# OBJ-N64-NEXT: 0x44 R_MIPS_TLS_LDM/R_MIPS_NONE/R_MIPS_NONE - 0x4226# OBJ-N64-NEXT: 0x48 R_MIPS_TLS_TPREL_HI16/R_MIPS_NONE/R_MIPS_NONE - 0x4227# OBJ-N64-NEXT: 0x4C R_MIPS_TLS_TPREL_LO16/R_MIPS_NONE/R_MIPS_NONE - 0x4228# OBJ-N64-NEXT: 0x50 R_MICROMIPS_CALL16/R_MIPS_NONE/R_MIPS_NONE - 0x4229# OBJ-N64-NEXT: 0x54 R_MICROMIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE - 0x4230# OBJ-N64-NEXT: 0x58 R_MICROMIPS_GOT_PAGE/R_MIPS_NONE/R_MIPS_NONE - 0x4231# OBJ-N64-NEXT: 0x5C R_MICROMIPS_GOT_OFST/R_MIPS_NONE/R_MIPS_NONE - 0x4232# OBJ-N64-NEXT: 0x60 R_MICROMIPS_GOT16/R_MIPS_NONE/R_MIPS_NONE - 0x4233# OBJ-N64-NEXT: 0x64 R_MICROMIPS_TLS_GOTTPREL/R_MIPS_NONE/R_MIPS_NONE - 0x4234# OBJ-N64-NEXT: 0x68 R_MICROMIPS_TLS_DTPREL_HI16/R_MIPS_NONE/R_MIPS_NONE - 0x4235# OBJ-N64-NEXT: 0x6C R_MICROMIPS_TLS_DTPREL_LO16/R_MIPS_NONE/R_MIPS_NONE - 0x4236# OBJ-N64-NEXT: 0x70 R_MICROMIPS_TLS_GD/R_MIPS_NONE/R_MIPS_NONE - 0x4237# OBJ-N64-NEXT: 0x74 R_MICROMIPS_TLS_LDM/R_MIPS_NONE/R_MIPS_NONE - 0x4238# OBJ-N64-NEXT: 0x78 R_MICROMIPS_TLS_TPREL_HI16/R_MIPS_NONE/R_MIPS_NONE - 0x4239# OBJ-N64-NEXT: 0x7C R_MICROMIPS_TLS_TPREL_LO16/R_MIPS_NONE/R_MIPS_NONE - 0x4240# OBJ-N64-NEXT: 0x80 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE - 0x4241# OBJ-N64-NEXT: 0x84 R_MICROMIPS_JALR/R_MIPS_NONE/R_MIPS_NONE - 0x4242# OBJ-N64-NEXT: 0x88 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE - 0x9243# OBJ-N64-NEXT: 0x88 R_MIPS_16/R_MIPS_NONE/R_MIPS_NONE - 0x9244# OBJ-N64-NEXT: 0x88 R_MIPS_32/R_MIPS_NONE/R_MIPS_NONE - 0x9245# OBJ-N64-NEXT: 0x88 R_MIPS_64/R_MIPS_NONE/R_MIPS_NONE - 0x9246