Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: tests_lit/assembler/arm32/branch-mult-fwd.ll

Issue 1418313003: Handle branch relative to pc in ARM integrated assembler. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix nits. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 ; Test that we correctly fix multiple forward branches.
2
3 ; Compile using standalone assembler.
4 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \
5 ; RUN: | FileCheck %s --check-prefix=ASM
6
7 ; Show bytes in assembled standalone code.
8 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \
9 ; RUN: --args -Om1 | FileCheck %s --check-prefix=DIS
10
11 ; Compile using integrated assembler.
12 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -Om1 \
13 ; RUN: | FileCheck %s --check-prefix=IASM
14
15 ; Show bytes in assembled integrated code.
16 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \
17 ; RUN: --args -Om1 | FileCheck %s --check-prefix=DIS
18
19 ; REQUIRES: allow_dump
20
21 define internal void @mult_fwd_branches(i32 %a, i32 %b) {
22 ; ASM-LABEL:mult_fwd_branches:
23 ; ASM-LABEL:.Lmult_fwd_branches$__0:
24
25 ; ASM-NEXT: sub sp, sp, #12
26 ; ASM-NEXT: str r0, [sp, #8]
27 ; ASM-NEXT: str r1, [sp, #4]
28
29 ; DIS-LABEL:00000000 <mult_fwd_branches>:
30
31 ; DIS-NEXT: 0: e24dd00c
32 ; DIS-NEXT: 4: e58d0008
33 ; DIS-NEXT: 8: e58d1004
34
35 ; IASM-LABLE:mult_fwd_branches:
Jim Stichnoth 2015/10/23 21:32:08 LABLE ?
Karl 2015/10/26 18:32:43 Done.
36 ; IASM-LABEL:.Lmult_fwd_branches$__0:
37
38 ; IASM-NEXT: .byte 0xc
39 ; IASM-NEXT: .byte 0xd0
40 ; IASM-NEXT: .byte 0x4d
41 ; IASM-NEXT: .byte 0xe2
42
43 ; IASM-NEXT: .byte 0x8
44 ; IASM-NEXT: .byte 0x0
45 ; IASM-NEXT: .byte 0x8d
46 ; IASM-NEXT: .byte 0xe5
47
48 ; IASM-NEXT: .byte 0x4
49 ; IASM-NEXT: .byte 0x10
50 ; IASM-NEXT: .byte 0x8d
51 ; IASM-NEXT: .byte 0xe5
52
53 %cmp = icmp slt i32 %a, %b
54
55 ; ASM-NEXT: ldr r0, [sp, #8]
56 ; ASM-NEXT: mov r1, #0
57 ; ASM-NEXT: ldr r2, [sp, #4]
58 ; ASM-NEXT: cmp r0, r2
59 ; ASM-NEXT: movlt r1, #1
60 ; ASM-NEXT: str r1, [sp]
61
62 ; DIS-NEXT: c: e59d0008
63 ; DIS-NEXT: 10: e3a01000
64 ; DIS-NEXT: 14: e59d2004
65 ; DIS-NEXT: 18: e1500002
66 ; DIS-NEXT: 1c: b3a01001
67 ; DIS-NEXT: 20: e58d1000
68
69 ; IASM-NEXT: .byte 0x8
70 ; IASM-NEXT: .byte 0x0
71 ; IASM-NEXT: .byte 0x9d
72 ; IASM-NEXT: .byte 0xe5
73
74 ; IASM-NEXT: mov r1, #0
75
76 ; IASM-NEXT: .byte 0x4
77 ; IASM-NEXT: .byte 0x20
78 ; IASM-NEXT: .byte 0x9d
79 ; IASM-NEXT: .byte 0xe5
80
81 ; IASM-NEXT: cmp r0, r2
82 ; IASM-NEXT: movlt r1, #1
83
84 ; IASM-NEXT: .byte 0x0
85 ; IASM-NEXT: .byte 0x10
86 ; IASM-NEXT: .byte 0x8d
87 ; IASM-NEXT: .byte 0xe5
88
89 br i1 %cmp, label %then, label %else
90
91 ; ASM-NEXT: ldr r0, [sp]
92 ; ASM-NEXT: uxtb r0, r0
93 ; ASM-NEXT: cmp r0, #0
94 ; ASM-NEXT: bne .Lmult_fwd_branches$then
95 ; ASM-NEXT: b .Lmult_fwd_branches$else
96
97 ; DIS-NEXT: 24: e59d0000
98 ; DIS-NEXT: 28: e6ef0070
99 ; DIS-NEXT: 2c: e3500000
100 ; DIS-NEXT: 30: 1a000000
101 ; DIS-NEXT: 34: ea000000
102
103 ; IASM-NEXT: ldr r0, [sp]
104 ; IASM-NEXT: uxtb r0, r0
105 ; IASM-NEXT: cmp r0, #0
106
107 ; IASM-NEXT: .byte 0x0
108 ; IASM-NEXT: .byte 0x0
109 ; IASM-NEXT: .byte 0x0
110 ; IASM-NEXT: .byte 0x1a
111
112 ; IASM-NEXT: .byte 0x0
113 ; IASM-NEXT: .byte 0x0
114 ; IASM-NEXT: .byte 0x0
115 ; IASM-NEXT: .byte 0xea
116
117 then:
118 ; ASM-LABEL:.Lmult_fwd_branches$then:
119 ; IASM-LABEL:.Lmult_fwd_branches$then:
120
121 br label %end
122 ; ASM-NEXT: b .Lmult_fwd_branches$end
123
124 ; DIS-NEXT: 38: ea000000
125
126 ; IASM-NEXT: .byte 0x0
127 ; IASM-NEXT: .byte 0x0
128 ; IASM-NEXT: .byte 0x0
129 ; IASM-NEXT: .byte 0xea
130
131 else:
132 ; ASM-LABEL:.Lmult_fwd_branches$else:
133 ; IASM-LABEL:.Lmult_fwd_branches$else:
134
135 br label %end
136 ; ASM-NEXT: b .Lmult_fwd_branches$end
137
138 ; DIS-NEXT: 3c: eaffffff
139
140 ; IASM-NEXT: .byte 0xff
141 ; IASM-NEXT: .byte 0xff
142 ; IASM-NEXT: .byte 0xff
143 ; IASM-NEXT: .byte 0xea
144
145
146 end:
147 ; ASM-LABEL:.Lmult_fwd_branches$end:
148 ; IASM-LABEL: .Lmult_fwd_branches$end:
149
150 ret void
151
152 ; ASM-NEXT: add sp, sp, #12
153 ; ASM-NEXT: bx lr
154
155 ; DIS-NEXT: 40: e28dd00c
156 ; DIS-NEXT: 44: e12fff1e
157
158 ; IASM-NEXT: .byte 0xc
159 ; IASM-NEXT: .byte 0xd0
160 ; IASM-NEXT: .byte 0x8d
161 ; IASM-NEXT: .byte 0xe2
162
163 ; IASM-NEXT: .byte 0x1e
164 ; IASM-NEXT: .byte 0xff
165 ; IASM-NEXT: .byte 0x2f
166 ; IASM-NEXT: .byte 0xe1
167
168 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698