117 lines · plain
1; RUN: llvm-ml -filetype=s %s /Fo - | FileCheck %s2 3.data4 5align_test:6ALIGN 167; CHECK-LABEL: align_test:8; CHECK-NEXT: .p2align 49 10org_test:11ORG 25612; CHECK-LABEL: org_test:13; CHECK-NEXT: .org 256, 014 15align_struct STRUCT16 BYTE ?17 18 ALIGN 419 x BYTE ?20 x_succ BYTE ?21 BYTE ?22 23 ALIGN 224 y BYTE ?25 y_succ BYTE ?26 27 ALIGN 128 z BYTE ?29 30 EVEN31 q BYTE ?32align_struct ENDS33 34struct_align_data ALIGN_STRUCT <101, 102, 103, 104, 105, 106, 107, 108>35; CHECK-LABEL: struct_align_data:36; CHECK-NEXT: .byte 10137; CHECK-NEXT: .zero 338; CHECK-NEXT: .byte 10239; CHECK-NEXT: .byte 10340; CHECK-NEXT: .byte 10441; CHECK-NEXT: .zero 142; CHECK-NEXT: .byte 10543; CHECK-NEXT: .byte 10644; CHECK-NEXT: .byte 10745; CHECK-NEXT: .zero 146; CHECK-NEXT: .byte 10847 48org_struct STRUCT49 x BYTE ?50 x_succ BYTE ?51 ORG 1552 y BYTE ?53 y_succ BYTE ?54 ORG 255 z BYTE ?56 z_succ BYTE ?57org_struct ENDS58 59.code60 61struct_align_test PROC62 63x_align_test:64 MOV eax, align_struct.x65 MOV eax, align_struct.x_succ66; CHECK-LABEL: x_align_test:67; CHECK-NEXT: mov eax, 468; CHECK-NEXT: mov eax, 569 70y_align_test:71 MOV eax, align_struct.y72 MOV eax, align_struct.y_succ73; CHECK-LABEL: y_align_test:74; CHECK-NEXT: mov eax, 875; CHECK-NEXT: mov eax, 976 77z_align_test:78 MOV eax, align_struct.z79; CHECK-LABEL: z_align_test:80; CHECK-NEXT: mov eax, 1081 82q_even_test:83 MOV eax, align_struct.q84; CHECK-LABEL: q_even_test:85; CHECK-NEXT: mov eax, 1286 87size_align_test:88 MOV eax, SIZEOF(align_struct)89; CHECK-LABEL: size_align_test:90; CHECK-NEXT: mov eax, 1391 92 ret93struct_align_test ENDP94 95struct_org_test PROC96; CHECK-LABEL: struct_org_test:97 98field_positions:99 MOV eax, org_struct.x100 MOV eax, org_struct.x_succ101 MOV eax, org_struct.y102 MOV eax, org_struct.y_succ103 MOV eax, org_struct.z104 MOV eax, org_struct.z_succ105; CHECK-LABEL: field_positions:106; CHECK-NEXT: mov eax, 0107; CHECK-NEXT: mov eax, 1108; CHECK-NEXT: mov eax, 15109; CHECK-NEXT: mov eax, 16110; CHECK-NEXT: mov eax, 2111; CHECK-NEXT: mov eax, 3112 113 ret114struct_org_test ENDP115 116end117