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

Side by Side Diff: test/MC/X86/AlignedBundling/single-inst-bundling.s

Issue 1133723005: Cherry-pick r234714: [MC] Write padding into fragments when -mc-relax-all flag is used (Closed) Base URL: http://git.chromium.org/native_client/pnacl-llvm.git@master
Patch Set: Rebase Created 5 years, 7 months 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
« no previous file with comments | « test/MC/X86/AlignedBundling/relax-in-bundle-group.s ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \ 1 # RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
2 # RUN: | llvm-objdump -disassemble -no-show-raw-insn - | FileCheck %s 2 # RUN: | llvm-objdump -disassemble -no-show-raw-insn - | FileCheck -check-pref ix=CHECK -check-prefix=CHECK-OPT %s
3 # RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mc-relax-all %s -o - \
4 # RUN: | llvm-objdump -disassemble -no-show-raw-insn - | FileCheck -check-pref ix=CHECK -check-prefix=CHECK-RELAX %s
3 5
4 # Test simple NOP insertion for single instructions. 6 # Test simple NOP insertion for single instructions.
5 7
6 .text 8 .text
7 foo: 9 foo:
8 # Will be bundle-aligning to 16 byte boundaries 10 # Will be bundle-aligning to 16 byte boundaries
9 .bundle_align_mode 4 11 .bundle_align_mode 4
10 pushq %rbp 12 pushq %rbp
11 pushq %r14 13 pushq %r14
12 pushq %rbx 14 pushq %rbx
13 15
14 movl %edi, %ebx 16 movl %edi, %ebx
15 callq bar 17 callq bar
16 movl %eax, %r14d 18 movl %eax, %r14d
17 19
18 imull $17, %ebx, %ebp 20 imull $17, %ebx, %ebp
19 # This imull is 3 bytes long and should have started at 0xe, so two bytes 21 # This imull is 3 bytes long and should have started at 0xe, so two bytes
20 # of nop padding are inserted instead and it starts at 0x10 22 # of nop padding are inserted instead and it starts at 0x10
21 # CHECK: nop 23 # CHECK: nop
22 # CHECK-NEXT: 10: imull 24 # CHECK-NEXT: 10: imull
23 25
24 movl %ebx, %edi 26 movl %ebx, %edi
25 callq bar 27 callq bar
26 cmpl %r14d, %ebp 28 cmpl %r14d, %ebp
29 # CHECK-RELAX: nopl
27 jle .L_ELSE 30 jle .L_ELSE
28 # Due to the padding that's inserted before the addl, the jump target 31 # Due to the padding that's inserted before the addl, the jump target
29 # becomes farther by one byte. 32 # becomes farther by one byte.
30 # CHECK: jle 5 33 # CHECK-OPT: jle 5
34 # CHECK-RELAX: jle 7
31 35
32 addl %ebp, %eax 36 addl %ebp, %eax
33 # CHECK: nop 37 # CHECK-OPT: nop
34 # CHECK-NEXT: 20: addl 38 # CHECK-OPT-NEXT:20: addl
39 # CHECK-RELAX: 26: addl
35 40
36 jmp .L_RET 41 jmp .L_RET
37 .L_ELSE: 42 .L_ELSE:
38 imull %ebx, %eax 43 imull %ebx, %eax
39 .L_RET: 44 .L_RET:
40 ret 45 ret
41 46
42 # Just sanity checking that data fills don't drive bundling crazy 47 # Just sanity checking that data fills don't drive bundling crazy
43 .data 48 .data
44 .byte 40 49 .byte 40
45 .byte 98 50 .byte 98
46 51
47 52
OLDNEW
« no previous file with comments | « test/MC/X86/AlignedBundling/relax-in-bundle-group.s ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698