• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; Test branching instructions.
2; TODO(kschimpf): Get this working.
3
4; REQUIRES: allow_dump
5
6; Compile using standalone assembler.
7; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \
8; RUN:   | FileCheck %s --check-prefix=ASM
9
10; Show bytes in assembled standalone code.
11; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \
12; RUN:   --args -Om1 | FileCheck %s --check-prefix=DIS
13
14; Compile using integrated assembler.
15; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -Om1 \
16; RUN:   | FileCheck %s --check-prefix=IASM
17
18; Show bytes in assembled integrated code.
19; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \
20; RUN:   --args -Om1 | FileCheck %s --check-prefix=DIS
21
22define internal void @simple_uncond_branch() {
23; DIS-LABEL: 00000000 <simple_uncond_branch>:
24; ASM-LABEL: simple_uncond_branch:
25; IASM-LABEL:simple_uncond_branch:
26
27; ASM-NEXT:  .Lsimple_uncond_branch$__0:
28; IASM-NEXT: .Lsimple_uncond_branch$__0:
29
30  br label %l2
31; ASM-NEXT:     b       .Lsimple_uncond_branch$l2
32; IASM-NEXT:    .byte 0x0
33; IASM-NEXT:    .byte 0x0
34; IASM-NEXT:    .byte 0x0
35; IASM-NEXT:    .byte 0xea
36; DIS-NEXT:   0:   ea000000
37
38l1:
39; ASM-NEXT:  .Lsimple_uncond_branch$l1:
40; IASM-NEXT: .Lsimple_uncond_branch$l1:
41
42  br label %l3
43; ASM-NEXT:     b       .Lsimple_uncond_branch$l3
44; IASM-NEXT:    .byte 0x0
45; IASM-NEXT:    .byte 0x0
46; IASM-NEXT:    .byte 0x0
47; IASM-NEXT:    .byte 0xea
48; DIS-NEXT:   4:   ea000000
49
50l2:
51; ASM-NEXT:  .Lsimple_uncond_branch$l2:
52; IASM-NEXT: .Lsimple_uncond_branch$l2:
53
54  br label %l1
55; ASM-NEXT:     b       .Lsimple_uncond_branch$l1
56; IASM-NEXT:    .byte 0xfd
57; IASM-NEXT:    .byte 0xff
58; IASM-NEXT:    .byte 0xff
59; IASM-NEXT:    .byte 0xea
60; DIS-NEXT:   8:   eafffffd
61
62l3:
63; ASM-NEXT:  .Lsimple_uncond_branch$l3:
64; IASM-NEXT: .Lsimple_uncond_branch$l3:
65
66  ret void
67; ASM-NEXT:     bx      lr
68; IASM-NEXT:    .byte 0x1e
69; IASM-NEXT:    .byte 0xff
70; IASM-NEXT:    .byte 0x2f
71; IASM-NEXT:    .byte 0xe1
72; DIS-NEXT:   c:   e12fff1e
73
74}
75