# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 -filetype=asm | \
# RUN:   FileCheck %s -check-prefix=ASMOUT

# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 -filetype=obj -o - | \
# RUN:   llvm-readobj -s -section-data -r | \
# RUN:     FileCheck %s -check-prefix=OBJOUT

# ASMOUT: .text
# ASMOUT:        .type _local_foo,@function
# ASMOUT:        .ent _local_foo
# ASMOUT:_local_foo:
# ASMOUT:        .frame $fp,16,$ra
# ASMOUT:        .mask 0x10101010,-4
# ASMOUT:        .fmask 0x01010101,-8
# ASMOUT:        .end _local_foo
# ASMOUT:        .size local_foo,

# OBJOUT: Section {
# OBJOUT:     Name: .pdr
# OBJOUT:     Type: SHT_PROGBITS (0x1)
# OBJOUT:     Flags [ (0x0)
# OBJOUT-NOT:   SHF_ALLOC (0x2)
# OBJOUT-NOT:   SHF_WRITE (0x1)
# OBJOUT:     ]
# OBJOUT:     Size: 64
# OBJOUT:     SectionData (
# OBJOUT:       0000: 00000000 10101010 FFFFFFFC 01010101
# OBJOUT:       0010: FFFFFFF8 00000010 0000001E 0000001F
# OBJOUT:       0020: 00000000 10101010 FFFFFFFC 01010101
# OBJOUT:       0030: FFFFFFF8 00000010 0000001E 0000001F
# OBJOUT:     )
# OBJOUT:   }

# We should also check if relocation information was correctly generated.
# OBJOUT:      Relocations [
# OBJOUT-NEXT:   Section ({{.*}}) .rel.pdr {
# OBJOUT-NEXT:     0x0 R_MIPS_32 .text 0x0
# OBJOUT-NEXT:     0x20 R_MIPS_32 _global_foo 0x0
# OBJOUT-NEXT:   }
# OBJOUT-NEXT: ]

.text
        .type _local_foo,@function
        .ent _local_foo
_local_foo:
        .frame $fp,16,$ra
        .mask 0x10101010,-4
        .fmask 0x01010101,-8
        .end _local_foo
        .size local_foo,.-_local_foo

        .globl _global_foo
        .type _global_foo,@function
        .ent _global_foo
_global_foo:
        .frame $fp,16,$ra
        .mask 0x10101010,-4
        .fmask 0x01010101,-8
        .end _global_foo
        .size global_foo,.-_global_foo
