brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · a7795f0 Raw
70 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=x86_64 -mattr=+push2pop2 | FileCheck %s3 4 5; This test is to check if "pushq %rax" is emitted correctly for push2pop26; padding when it's built with -stack-clash-protection option.7 8define i32 @foo(ptr %src1, i32 %len, ptr %src2, ptr %dst, i1 %cmp, i32 %sub) #0 {9; CHECK-LABEL: foo:10; CHECK:       # %bb.0: # %entry11; CHECK-NEXT:    pushq %rax12; CHECK-NEXT:    .cfi_def_cfa_offset 1613; CHECK-NEXT:    push2 %r15, %rbp14; CHECK-NEXT:    .cfi_def_cfa_offset 3215; CHECK-NEXT:    push2 %r13, %r1416; CHECK-NEXT:    .cfi_def_cfa_offset 4817; CHECK-NEXT:    push2 %rbx, %r1218; CHECK-NEXT:    .cfi_def_cfa_offset 6419; CHECK-NEXT:    subq $16, %rsp20; CHECK-NEXT:    .cfi_def_cfa_offset 8021; CHECK-NEXT:    .cfi_offset %rbx, -6422; CHECK-NEXT:    .cfi_offset %r12, -5623; CHECK-NEXT:    .cfi_offset %r13, -4824; CHECK-NEXT:    .cfi_offset %r14, -4025; CHECK-NEXT:    .cfi_offset %r15, -3226; CHECK-NEXT:    .cfi_offset %rbp, -2427; CHECK-NEXT:    movl %r9d, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill28; CHECK-NEXT:    movl %r8d, %ebp29; CHECK-NEXT:    movq %rcx, %r1430; CHECK-NEXT:    movq %rdx, %r1531; CHECK-NEXT:    movl %esi, %r12d32; CHECK-NEXT:    movq %rdi, %r1333; CHECK-NEXT:    xorl %ebx, %ebx34; CHECK-NEXT:    .p2align 435; CHECK-NEXT:  .LBB0_1: # %while.body36; CHECK-NEXT:    # =>This Inner Loop Header: Depth=137; CHECK-NEXT:    movq %r15, %rdi38; CHECK-NEXT:    movq %r13, %rsi39; CHECK-NEXT:    movq %r14, %rdx40; CHECK-NEXT:    xorl %ecx, %ecx41; CHECK-NEXT:    movl %r12d, %r8d42; CHECK-NEXT:    callq *%rbx43; CHECK-NEXT:    testb $1, %bpl44; CHECK-NEXT:    jne .LBB0_145; CHECK-NEXT:  # %bb.2: # %while.end46; CHECK-NEXT:    movl {{[-0-9]+}}(%r{{[sb]}}p), %eax # 4-byte Reload47; CHECK-NEXT:    addq $16, %rsp48; CHECK-NEXT:    .cfi_def_cfa_offset 6449; CHECK-NEXT:    pop2 %r12, %rbx50; CHECK-NEXT:    .cfi_def_cfa_offset 4851; CHECK-NEXT:    pop2 %r14, %r1352; CHECK-NEXT:    .cfi_def_cfa_offset 3253; CHECK-NEXT:    pop2 %rbp, %r1554; CHECK-NEXT:    .cfi_def_cfa_offset 1655; CHECK-NEXT:    popq %rcx56; CHECK-NEXT:    .cfi_def_cfa_offset 857; CHECK-NEXT:    retq58entry:59  br label %while.body60 61while.body:                                       ; preds = %while.body, %entry62  %call5 = tail call i32 null(ptr %src2, ptr %src1, ptr %dst, i32 0, i32 %len)63  br i1 %cmp, label %while.body, label %while.end64 65while.end:                                        ; preds = %while.body66  ret i32 %sub67}68 69attributes #0 = { "probe-stack"="inline-asm"}70