1 @ RUN
: llvm-mc
%s
-triple
=armv7-unknown-linux-gnueabi
-filetype
=obj
-o
- \
2 @ RUN
: | llvm-readobj
-S
--sd
--sr | FileCheck
%s
4 @ Check the
.vsave directive
6 @ The
.vsave directive records the VFP registers which are pushed to the
7 @ stack. There are two different opcodes
:
9 @
0xC800: pop d
[(16+x+y
):(16+x
)] @ d
[16+x+y
]-d
[16+x
] must
be consecutive
10 @
0xC900: pop d
[(x+y
):x
] @ d
[x+y
]-d
[x
] must
be consecutive
15 @
-------------------------------------------------------------------------------
17 @
-------------------------------------------------------------------------------
21 .type func1a,%function
28 .personality __gxx_personality_v0
34 .type func1b,%function
37 .vsave {d0, d1, d2, d3}
38 vpush
{d0
, d1
, d2
, d3
}
41 .personality __gxx_personality_v0
47 .type func1c,%function
50 .vsave {d0, d1, d2, d3, d4, d5, d6, d7}
51 vpush
{d0
, d1
, d2
, d3
, d4
, d5
, d6
, d7
}
52 vpop
{d0
, d1
, d2
, d3
, d4
, d5
, d6
, d7
}
54 .personality __gxx_personality_v0
60 .type func1d,%function
63 .vsave {d2, d3, d4, d5, d6, d7}
64 vpush
{d2
, d3
, d4
, d5
, d6
, d7
}
65 vpop
{d2
, d3
, d4
, d5
, d6
, d7
}
67 .personality __gxx_personality_v0
72 @ CHECK
: Name
: .ARM.extab.TEST1
73 @ CHECK
: SectionData
(
74 @ CHECK
: 0000: 00000000 B000C900
00000000 B003C900 |
................|
75 @ CHECK
: 0010: 00000000 B007C900
00000000 B025C900 |
.............%..|
81 @
-------------------------------------------------------------------------------
83 @
-------------------------------------------------------------------------------
87 .type func2a,%function
94 .personality __gxx_personality_v0
100 .type func2b,%function
103 .vsave {d16, d17, d18, d19}
104 vpush
{d16
, d17
, d18
, d19
}
105 vpop
{d16
, d17
, d18
, d19
}
107 .personality __gxx_personality_v0
113 .type func2c,%function
116 .vsave {d16, d17, d18, d19, d20, d21, d22, d23, d24, d25, d26, d27, d28, d29, d30, d31}
117 vpush
{d16
, d17
, d18
, d19
, d20
, d21
, d22
, d23
, d24
, d25
, d26
, d27
, d28
, d29
, d30
, d31
}
118 vpop
{d16
, d17
, d18
, d19
, d20
, d21
, d22
, d23
, d24
, d25
, d26
, d27
, d28
, d29
, d30
, d31
}
120 .personality __gxx_personality_v0
125 @ CHECK
: Name
: .ARM.extab.TEST2
126 @ CHECK
: SectionData
(
127 @ CHECK
: 0000: 00000000 B000C800
00000000 B003C800 |
................|
128 @ CHECK
: 0010: 00000000 B00FC800 |
........|