[mips] [IAS] Add support for the .insn directive.
[oota-llvm.git] / test / MC / Mips / insn-directive.s
1 # RUN: llvm-mc %s -arch=mips -mcpu=mips32 | FileCheck %s --check-prefix=ASM
2
3 # RUN: llvm-mc %s -arch=mips -mcpu=mips32 -filetype=obj -o - | \
4 # RUN:   llvm-readobj -symbols - | FileCheck %s --check-prefix=OBJ
5
6   .set micromips
7
8   .global f_mm_insn_data
9   .type f_mm_insn_data, @function
10 f_mm_insn_data:
11   .insn
12   .word 0x00e73910   # add $7, $7, $7
13
14   .global f_mm_insn_instr
15   .type f_mm_insn_instr, @function
16 f_mm_insn_instr:
17   .insn
18   add $7, $7, $7
19
20   .global o_mm_insn_data
21   .type o_mm_insn_data, @object
22 o_mm_insn_data:
23   .insn
24   .word 0x00e73910   # add $7, $7, $7
25
26   .global o_mm_insn_instr
27   .type o_mm_insn_instr, @object
28 o_mm_insn_instr:
29   .insn
30   add $7, $7, $7
31
32   .set nomicromips
33
34   .global f_normal_insn_data
35   .type f_normal_insn_data, @function
36 f_normal_insn_data:
37   .insn
38   .word 0x00e73820   # add $7, $7, $7
39
40   .global f_normal_insn_instr
41   .type f_normal_insn_instr, @function
42 f_normal_insn_instr:
43   .insn
44   add $7, $7, $7
45
46   .global o_normal_insn_data
47   .type o_normal_insn_data, @object
48 o_normal_insn_data:
49   .insn
50   .word 0x00e73820   # add $7, $7, $7
51
52   .global o_normal_insn_instr
53   .type o_normal_insn_instr, @object
54 o_normal_insn_instr:
55   .insn
56   add $7, $7, $7
57
58 # Verify that .insn causes the currently saved labels to be cleared by checking
59 # that foo doesn't get marked.
60   .set nomicromips
61 foo:
62   .insn
63   .word 0x00e73820   # add $7, $7, $7
64
65   .set micromips
66 bar:
67   add $7, $7, $7
68
69 # ASM: .insn
70
71 # OBJ: Symbols [
72 # OBJ: Name: foo
73 # OBJ: Other: 0
74
75 # OBJ: Name: f_mm_insn_data
76 # OBJ: Other: 128
77
78 # OBJ: Name: f_mm_insn_instr
79 # OBJ: Other: 128
80
81 # OBJ: Name: f_normal_insn_data
82 # OBJ: Other: 0
83
84 # OBJ: Name: f_normal_insn_instr
85 # OBJ: Other: 0
86
87 # OBJ: Name: o_mm_insn_data
88 # OBJ: Other: 128
89
90 # OBJ: Name: o_mm_insn_instr
91 # OBJ: Other: 128
92
93 # OBJ: Name: o_normal_insn_data
94 # OBJ: Other: 0
95
96 # OBJ: Name: o_normal_insn_instr
97 # OBJ: Other: 0
98 # OBJ: ]