86 lines · plain
1# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding \2# RUN: -mattr=micromips | FileCheck %s -check-prefix=CHECK-FIXUP3# RUN: llvm-mc %s -filetype=obj -triple=mipsel-unknown-linux \4# RUN: -mattr=micromips | llvm-readobj -r - \5# RUN: | FileCheck %s -check-prefix=CHECK-ELF6#------------------------------------------------------------------------------7# Check that the assembler can handle the documented syntax8# for relocations.9#------------------------------------------------------------------------------10# CHECK-FIXUP: beqz16 $6, bar # encoding: [0b0AAAAAAA,0x8f]11# CHECK-FIXUP: # fixup A - offset: 0,12# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC7_S113# CHECK-FIXUP: nop # encoding: [0x00,0x00,0x00,0x00]14# CHECK-FIXUP: bnez16 $6, bar # encoding: [0b0AAAAAAA,0xaf]15# CHECK-FIXUP: # fixup A - offset: 0,16# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC7_S117# CHECK-FIXUP: nop # encoding: [0x00,0x00,0x00,0x00]18# CHECK-FIXUP: b16 bar # encoding: [A,0b110011AA]19# CHECK-FIXUP: # fixup A - offset: 0,20# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC10_S121# CHECK-FIXUP: nop # encoding: [0x00,0x00,0x00,0x00]22# CHECK-FIXUP: b bar # encoding: [A,0x94'A',0x00,0x00]23# CHECK-FIXUP: # fixup A - offset: 0,24# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC16_S125# CHECK-FIXUP: nop # encoding: [0x00,0x0c]26# CHECK-FIXUP: beq $3, $4, bar # encoding: [0x83'A',0x94'A',0x00,0x00]27# CHECK-FIXUP: # fixup A - offset: 0, value: bar, kind: fixup_MICROMIPS_PC16_S128# CHECK-FIXUP: nop # encoding: [0x00,0x0c]29# CHECK-FIXUP: bne $3, $4, bar # encoding: [0x83'A',0xb4'A',0x00,0x00]30# CHECK-FIXUP: # fixup A - offset: 0, value: bar, kind: fixup_MICROMIPS_PC16_S131# CHECK-FIXUP: nop # encoding: [0x00,0x0c]32# CHECK-FIXUP: bgez $4, bar # encoding: [0x44'A',0x40'A',0x00,0x00]33# CHECK-FIXUP-NEXT: # fixup A - offset: 0, value: bar, kind: fixup_MICROMIPS_PC16_S134# CHECK-FIXUP-NEXT: nop # encoding: [0x00,0x0c]35# CHECK-FIXUP: bgtz $4, bar # encoding: [0xc4'A',0x40'A',0x00,0x00]36# CHECK-FIXUP-NEXT: # fixup A - offset: 0, value: bar, kind: fixup_MICROMIPS_PC16_S137# CHECK-FIXUP-NEXT: nop # encoding: [0x00,0x0c]38# CHECK-FIXUP: blez $4, bar # encoding: [0x84'A',0x40'A',0x00,0x00]39# CHECK-FIXUP-NEXT: # fixup A - offset: 0, value: bar, kind: fixup_MICROMIPS_PC16_S140# CHECK-FIXUP-NEXT: nop # encoding: [0x00,0x0c]41# CHECK-FIXUP: bltz $4, bar # encoding: [0x04'A',0x40'A',0x00,0x00]42# CHECK-FIXUP-NEXT: # fixup A - offset: 0, value: bar, kind: fixup_MICROMIPS_PC16_S143# CHECK-FIXUP-NEXT: nop # encoding: [0x00,0x0c]44# CHECK-FIXUP: bgezal $4, bar # encoding: [0x64'A',0x40'A',0x00,0x00]45# CHECK-FIXUP: # fixup A - offset: 0,46# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC16_S147# CHECK-FIXUP: nop # encoding: [0x00,0x00,0x00,0x00]48# CHECK-FIXUP: bltzal $4, bar # encoding: [0x24'A',0x40'A',0x00,0x00]49# CHECK-FIXUP: # fixup A - offset: 0,50# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC16_S151# CHECK-FIXUP: nop # encoding: [0x00,0x00,0x00,0x00]52#------------------------------------------------------------------------------53# Check that the appropriate relocations were created.54#------------------------------------------------------------------------------55# CHECK-ELF: Relocations [56# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC7_S157# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC7_S158# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC10_S159# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC16_S160# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC16_S161# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC16_S162# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC16_S163# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC16_S164# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC16_S165# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC16_S166# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC16_S167# CHECK-ELF: 0x{{[0-9,A-F]+}} R_MICROMIPS_PC16_S168# CHECK-ELF: ]69 70 .text71 .type main, @function72 .set micromips73main:74 beqz16 $6, bar75 bnez16 $6, bar76 b16 bar77 b bar78 beq $3, $4, bar79 bne $3, $4, bar80 bgez $4, bar81 bgtz $4, bar82 blez $4, bar83 bltz $4, bar84 bgezal $4, bar85 bltzal $4, bar86