xref: /llvm-project/llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-redzone-boundary.mir (revision 49bc3077cbf848de6ce07e6f0da82476314924b4)
1## Test when the frame size is equal to or large than redzone boundary size(288).
2## The behaviour of IsBackChainStored bit of traceback table.
3# RUN: llc  -mtriple powerpc64-ibm-aix-xcoff -o -\
4# RUN:   %s | FileCheck %s
5
6---
7name:            test
8tracksRegLiveness: true
9stack:
10  - { id: 0, size: 288, alignment: 16 }
11body: |
12  bb.0:
13    BLR8 implicit $lr8, implicit $rm
14
15---
16name:            overredzone
17tracksRegLiveness: true
18stack:
19  - { id: 0, size: 296, alignment: 16 }
20body: |
21  bb.0:
22    BLR8 implicit $lr8, implicit $rm
23
24
25  ; CHECK:              .vbyte  4, 0x00000000                   # Traceback table begin
26  ; CHECK-NEXT:         .byte   0x00                            # Version = 0
27  ; CHECK-NEXT:         .byte   0x09                            # Language = CPlusPlus
28  ; CHECK-NEXT:         .byte   0x20                            # -IsGlobaLinkage, -IsOutOfLineEpilogOrPrologue
29  ; CHECK-NEXT:                                         # +HasTraceBackTableOffset, -IsInternalProcedure
30  ; CHECK-NEXT:                                         # -HasControlledStorage, -IsTOCless
31  ; CHECK-NEXT:                                         # -IsFloatingPointPresent
32  ; CHECK-NEXT:                                         # -IsFloatingPointOperationLogOrAbortEnabled
33  ; CHECK-NEXT:         .byte   0x40                            # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed
34  ; CHECK-NEXT:                                         # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved
35  ; CHECK-NEXT:         .byte   0x00                            # -IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0
36  ; CHECK-NEXT:         .byte   0x00                            # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0
37  ; CHECK-NEXT:         .byte   0x00                            # NumberOfFixedParms = 0
38  ; CHECK-NEXT:         .byte   0x01                            # NumberOfFPParms = 0, +HasParmsOnStack
39  ; CHECK-NEXT:         .vbyte  4, L..test0-.test               # Function size
40  ; CHECK-NEXT:         .vbyte  2, 0x0004                       # Function name len = 4
41  ; CHECK-NEXT:         .byte   "test"                          # Function Name
42
43  ; CHECK:              .vbyte  4, 0x00000000                   # Traceback table begin
44  ; CHECK-NEXT:         .byte   0x00                            # Version = 0
45  ; CHECK-NEXT:         .byte   0x09                            # Language = CPlusPlus
46  ; CHECK-NEXT:         .byte   0x20                            # -IsGlobaLinkage, -IsOutOfLineEpilogOrPrologue
47  ; CHECK-NEXT:                                         # +HasTraceBackTableOffset, -IsInternalProcedure
48  ; CHECK-NEXT:                                         # -HasControlledStorage, -IsTOCless
49  ; CHECK-NEXT:                                         # -IsFloatingPointPresent
50  ; CHECK-NEXT:                                         # -IsFloatingPointOperationLogOrAbortEnabled
51  ; CHECK-NEXT:         .byte   0x40                            # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed
52  ; CHECK-NEXT:                                         # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved
53  ; CHECK-NEXT:         .byte   0x80                            # +IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0
54  ; CHECK-NEXT:         .byte   0x00                            # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0
55  ; CHECK-NEXT:         .byte   0x00                            # NumberOfFixedParms = 0
56  ; CHECK-NEXT:         .byte   0x01                            # NumberOfFPParms = 0, +HasParmsOnStack
57  ; CHECK-NEXT:         .vbyte  4, L..overredzone0-.overredzone # Function size
58  ; CHECK-NEXT:         .vbyte  2, 0x000b                       # Function name len = 11
59  ; CHECK-NEXT:         .byte   "overredzone"                   # Function Name
60...
61