1*f2f36c9bSDaniel Paoliello# REQUIRES: x86-registered-target 2*f2f36c9bSDaniel Paoliello# RUN: llvm-mc -filetype=obj --triple=x86_64-pc-windows-msvc %s | llvm-readobj - --codeview --codeview-subsection-bytes | FileCheck %s 3*f2f36c9bSDaniel Paoliello 4*f2f36c9bSDaniel Paoliello# Rust source to regenerate: 5*f2f36c9bSDaniel Paoliello# #[no_mangle] 6*f2f36c9bSDaniel Paoliello# extern "C" fn add_numbers(x: &Option<i32>, y: &Option<i32>) -> i32 { 7*f2f36c9bSDaniel Paoliello# let x1 = x.unwrap(); 8*f2f36c9bSDaniel Paoliello# let y1 = y.unwrap(); 9*f2f36c9bSDaniel Paoliello# x1 + y1 10*f2f36c9bSDaniel Paoliello# } 11*f2f36c9bSDaniel Paoliello# $ rustc trailing-inlined-function.rs --crate-type cdylib --emit=asm -Copt-level=3 -Cpanic=abort -Cdebuginfo=1 12*f2f36c9bSDaniel Paoliello 13*f2f36c9bSDaniel Paoliello# Validate that unwrap() was inlined. 14*f2f36c9bSDaniel Paoliello# CHECK: InlineSiteSym { 15*f2f36c9bSDaniel Paoliello# CHECK-NEXT: Kind: S_INLINESITE (0x114D) 16*f2f36c9bSDaniel Paoliello# CHECK-NEXT: PtrParent: 0x0 17*f2f36c9bSDaniel Paoliello# CHECK-NEXT: PtrEnd: 0x0 18*f2f36c9bSDaniel Paoliello# CHECK-NEXT: Inlinee: unwrap 19*f2f36c9bSDaniel Paoliello# CHECK-NEXT: BinaryAnnotations [ 20*f2f36c9bSDaniel Paoliello# CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: [[#%#x,Offset1_1:]], LineOffset: 1} 21*f2f36c9bSDaniel Paoliello# CHECK-NEXT: ChangeCodeLength: [[#%#x,Length1_1:]] 22*f2f36c9bSDaniel Paoliello# CHECK-NEXT: ChangeLineOffset: 2 23*f2f36c9bSDaniel Paoliello# CHECK-NEXT: ChangeCodeOffset: [[#%#x,Offset1_2:]] 24*f2f36c9bSDaniel Paoliello# CHECK-NEXT: ChangeCodeLength: [[#%#x,]] 25*f2f36c9bSDaniel Paoliello# CHECK-NEXT: (Annotation Padding) 26*f2f36c9bSDaniel Paoliello# CHECK: InlineSiteSym { 27*f2f36c9bSDaniel Paoliello# CHECK-NEXT: Kind: S_INLINESITE (0x114D) 28*f2f36c9bSDaniel Paoliello# CHECK-NEXT: PtrParent: 0x0 29*f2f36c9bSDaniel Paoliello# CHECK-NEXT: PtrEnd: 0x0 30*f2f36c9bSDaniel Paoliello# CHECK-NEXT: Inlinee: unwrap 31*f2f36c9bSDaniel Paoliello# CHECK-NEXT: BinaryAnnotations [ 32*f2f36c9bSDaniel Paoliello# CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: [[#%#x,Offset2_1:]], LineOffset: 1} 33*f2f36c9bSDaniel Paoliello# CHECK-NEXT: ChangeCodeLength: [[#%#x,Length2_1:]] 34*f2f36c9bSDaniel Paoliello# CHECK-NEXT: ChangeLineOffset: 2 35*f2f36c9bSDaniel Paoliello# CHECK-NEXT: ChangeCodeOffset: [[#%#x,Offset2_2:]] 36*f2f36c9bSDaniel Paoliello# CHECK-NEXT: ChangeCodeLength: [[#%#x,]] 37*f2f36c9bSDaniel Paoliello# CHECK-NEXT: (Annotation Padding) 38*f2f36c9bSDaniel Paoliello 39*f2f36c9bSDaniel Paoliello# Validate that basic blocks from an inlined function that are sunk below the rest of the function 40*f2f36c9bSDaniel Paoliello# (namely bb1 and bb4 in this test) get the correct debug info. 41*f2f36c9bSDaniel Paoliello# CHECK: SubSectionType: Lines (0xF2) 42*f2f36c9bSDaniel Paoliello# CHECK-NEXT: SubSectionSize: [[#%#x,]] 43*f2f36c9bSDaniel Paoliello# CHECK-NEXT: SubSectionContents ( 44*f2f36c9bSDaniel Paoliello# CHECK-NEXT: 0000: [[#%.8X,]] [[#%.8X,]] [[#%.8X,]] [[#%.8X,]] 45*f2f36c9bSDaniel Paoliello# Code starts at line 2 46*f2f36c9bSDaniel Paoliello# CHECK-NEXT: 0010: [[#%.8X,]] [[#%.8X,]] [[#%.8X,]] 02000000 47*f2f36c9bSDaniel Paoliello# The success paths for unwrap() (lines 3 & 4) are next. 48*f2f36c9bSDaniel Paoliello# CHECK-NEXT: 0020: [[#%.2X,Offset1_1]]000000 03000000 [[#%.2X,Offset2_1]]000000 04000000 49*f2f36c9bSDaniel Paoliello# Then the addition (line 5) and the end of the function (end-brace on line 6). 50*f2f36c9bSDaniel Paoliello# CHECK-NEXT: 0030: [[#%.8X,]] 05000000 [[#%.8X,]] 06000000 51*f2f36c9bSDaniel Paoliello# The failure paths for unwrap() (lines 3 & 4) are placed after the `ret` instruction. 52*f2f36c9bSDaniel Paoliello# CHECK-NEXT: 0040: [[#%.2X,Offset1_1 + Length1_1 + Offset1_2]]000000 03000000 [[#%.2X,Offset2_1 + Length2_1 + Offset2_2]]000000 04000000 53*f2f36c9bSDaniel Paoliello# CHECK-NOT: SubSectionType: Lines (0xF2) 54*f2f36c9bSDaniel Paoliello 55*f2f36c9bSDaniel Paoliello .text 56*f2f36c9bSDaniel Paoliello .def @feat.00; 57*f2f36c9bSDaniel Paoliello .scl 3; 58*f2f36c9bSDaniel Paoliello .type 0; 59*f2f36c9bSDaniel Paoliello .endef 60*f2f36c9bSDaniel Paoliello .globl @feat.00 61*f2f36c9bSDaniel Paoliello.set @feat.00, 0 62*f2f36c9bSDaniel Paoliello .file "trailing_inlined_function.3a6e73a087a7434a-cgu.0" 63*f2f36c9bSDaniel Paoliello .def add_numbers; 64*f2f36c9bSDaniel Paoliello .scl 2; 65*f2f36c9bSDaniel Paoliello .type 32; 66*f2f36c9bSDaniel Paoliello .endef 67*f2f36c9bSDaniel Paoliello .section .text,"xr",one_only,add_numbers 68*f2f36c9bSDaniel Paoliello .globl add_numbers 69*f2f36c9bSDaniel Paoliello .p2align 4, 0x90 70*f2f36c9bSDaniel Paolielloadd_numbers: 71*f2f36c9bSDaniel Paoliello.Lfunc_begin0: 72*f2f36c9bSDaniel Paoliello .cv_func_id 0 73*f2f36c9bSDaniel Paoliello .cv_file 1 "C:\\llvm\\trailing-inlined-function.rs" "A63E3A719BDF505386FDB73BF86EC58591BDAC588181F0E423E724AEEC3E4852" 3 74*f2f36c9bSDaniel Paoliello .cv_loc 0 1 2 0 75*f2f36c9bSDaniel Paoliello.seh_proc add_numbers 76*f2f36c9bSDaniel Paoliello subq $40, %rsp 77*f2f36c9bSDaniel Paoliello .seh_stackalloc 40 78*f2f36c9bSDaniel Paoliello .seh_endprologue 79*f2f36c9bSDaniel Paoliello.Ltmp0: 80*f2f36c9bSDaniel Paoliello .cv_file 2 "/rustc/bc28abf92efc32f8f9312851bf8af38fbd23be42\\library\\core\\src\\option.rs" "7B702FA8D5AAEDC0CCA1EE32F30D5922BC11516B54D592279493A30457F918D9" 3 81*f2f36c9bSDaniel Paoliello .cv_inline_site_id 1 within 0 inlined_at 1 3 0 82*f2f36c9bSDaniel Paoliello .cv_loc 1 2 933 0 83*f2f36c9bSDaniel Paoliello cmpl $0, (%rcx) 84*f2f36c9bSDaniel Paoliello je .LBB0_1 85*f2f36c9bSDaniel Paoliello.Ltmp1: 86*f2f36c9bSDaniel Paoliello .cv_inline_site_id 2 within 0 inlined_at 1 4 0 87*f2f36c9bSDaniel Paoliello .cv_loc 2 2 933 0 88*f2f36c9bSDaniel Paoliello cmpl $0, (%rdx) 89*f2f36c9bSDaniel Paoliello je .LBB0_4 90*f2f36c9bSDaniel Paoliello.Ltmp2: 91*f2f36c9bSDaniel Paoliello .cv_loc 0 1 5 0 92*f2f36c9bSDaniel Paoliello movl 4(%rcx), %eax 93*f2f36c9bSDaniel Paoliello.Ltmp3: 94*f2f36c9bSDaniel Paoliello addl 4(%rdx), %eax 95*f2f36c9bSDaniel Paoliello.Ltmp4: 96*f2f36c9bSDaniel Paoliello .cv_loc 0 1 6 0 97*f2f36c9bSDaniel Paoliello addq $40, %rsp 98*f2f36c9bSDaniel Paoliello retq 99*f2f36c9bSDaniel Paoliello.LBB0_1: 100*f2f36c9bSDaniel Paoliello.Ltmp5: 101*f2f36c9bSDaniel Paoliello .cv_loc 1 2 935 0 102*f2f36c9bSDaniel Paoliello leaq __unnamed_1(%rip), %rcx 103*f2f36c9bSDaniel Paoliello leaq __unnamed_2(%rip), %r8 104*f2f36c9bSDaniel Paoliello.Ltmp6: 105*f2f36c9bSDaniel Paoliello movl $43, %edx 106*f2f36c9bSDaniel Paoliello callq _ZN4core9panicking5panic17hd083df7b722701afE 107*f2f36c9bSDaniel Paoliello ud2 108*f2f36c9bSDaniel Paoliello.LBB0_4: 109*f2f36c9bSDaniel Paoliello.Ltmp7: 110*f2f36c9bSDaniel Paoliello .cv_loc 2 2 935 0 111*f2f36c9bSDaniel Paoliello leaq __unnamed_1(%rip), %rcx 112*f2f36c9bSDaniel Paoliello leaq __unnamed_3(%rip), %r8 113*f2f36c9bSDaniel Paoliello.Ltmp8: 114*f2f36c9bSDaniel Paoliello movl $43, %edx 115*f2f36c9bSDaniel Paoliello callq _ZN4core9panicking5panic17hd083df7b722701afE 116*f2f36c9bSDaniel Paoliello ud2 117*f2f36c9bSDaniel Paoliello.Ltmp9: 118*f2f36c9bSDaniel Paoliello.Lfunc_end0: 119*f2f36c9bSDaniel Paoliello .seh_endproc 120*f2f36c9bSDaniel Paoliello 121*f2f36c9bSDaniel Paoliello .section .rdata,"dr",one_only,__unnamed_1 122*f2f36c9bSDaniel Paoliello__unnamed_1: 123*f2f36c9bSDaniel Paoliello .ascii "called `Option::unwrap()` on a `None` value" 124*f2f36c9bSDaniel Paoliello 125*f2f36c9bSDaniel Paoliello .section .rdata,"dr",one_only,__unnamed_4 126*f2f36c9bSDaniel Paoliello__unnamed_4: 127*f2f36c9bSDaniel Paoliello .ascii "trailing-inlined-function.rs" 128*f2f36c9bSDaniel Paoliello 129*f2f36c9bSDaniel Paoliello .section .rdata,"dr",one_only,__unnamed_2 130*f2f36c9bSDaniel Paoliello .p2align 3, 0x0 131*f2f36c9bSDaniel Paoliello__unnamed_2: 132*f2f36c9bSDaniel Paoliello .quad __unnamed_4 133*f2f36c9bSDaniel Paoliello .asciz "\034\000\000\000\000\000\000\000\003\000\000\000\020\000\000" 134*f2f36c9bSDaniel Paoliello 135*f2f36c9bSDaniel Paoliello .section .rdata,"dr",one_only,__unnamed_3 136*f2f36c9bSDaniel Paoliello .p2align 3, 0x0 137*f2f36c9bSDaniel Paoliello__unnamed_3: 138*f2f36c9bSDaniel Paoliello .quad __unnamed_4 139*f2f36c9bSDaniel Paoliello .asciz "\034\000\000\000\000\000\000\000\004\000\000\000\020\000\000" 140*f2f36c9bSDaniel Paoliello 141*f2f36c9bSDaniel Paoliello .section .debug$S,"dr" 142*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 143*f2f36c9bSDaniel Paoliello .long 4 144*f2f36c9bSDaniel Paoliello .long 241 145*f2f36c9bSDaniel Paoliello .long .Ltmp11-.Ltmp10 146*f2f36c9bSDaniel Paoliello.Ltmp10: 147*f2f36c9bSDaniel Paoliello .short .Ltmp13-.Ltmp12 148*f2f36c9bSDaniel Paoliello.Ltmp12: 149*f2f36c9bSDaniel Paoliello .short 4353 150*f2f36c9bSDaniel Paoliello .long 0 151*f2f36c9bSDaniel Paoliello .byte 0 152*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 153*f2f36c9bSDaniel Paoliello.Ltmp13: 154*f2f36c9bSDaniel Paoliello .short .Ltmp15-.Ltmp14 155*f2f36c9bSDaniel Paoliello.Ltmp14: 156*f2f36c9bSDaniel Paoliello .short 4412 157*f2f36c9bSDaniel Paoliello .long 21 158*f2f36c9bSDaniel Paoliello .short 208 159*f2f36c9bSDaniel Paoliello .short 1 160*f2f36c9bSDaniel Paoliello .short 73 161*f2f36c9bSDaniel Paoliello .short 0 162*f2f36c9bSDaniel Paoliello .short 0 163*f2f36c9bSDaniel Paoliello .short 17000 164*f2f36c9bSDaniel Paoliello .short 0 165*f2f36c9bSDaniel Paoliello .short 0 166*f2f36c9bSDaniel Paoliello .short 0 167*f2f36c9bSDaniel Paoliello .asciz "clang LLVM (rustc version 1.73.0-beta.3 (bc28abf92 2023-08-27))" 168*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 169*f2f36c9bSDaniel Paoliello.Ltmp15: 170*f2f36c9bSDaniel Paoliello.Ltmp11: 171*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 172*f2f36c9bSDaniel Paoliello .long 246 173*f2f36c9bSDaniel Paoliello .long .Ltmp17-.Ltmp16 174*f2f36c9bSDaniel Paoliello.Ltmp16: 175*f2f36c9bSDaniel Paoliello .long 0 176*f2f36c9bSDaniel Paoliello 177*f2f36c9bSDaniel Paoliello 178*f2f36c9bSDaniel Paoliello .long 4099 179*f2f36c9bSDaniel Paoliello .cv_filechecksumoffset 2 180*f2f36c9bSDaniel Paoliello .long 932 181*f2f36c9bSDaniel Paoliello 182*f2f36c9bSDaniel Paoliello 183*f2f36c9bSDaniel Paoliello .long 4099 184*f2f36c9bSDaniel Paoliello .cv_filechecksumoffset 2 185*f2f36c9bSDaniel Paoliello .long 932 186*f2f36c9bSDaniel Paoliello.Ltmp17: 187*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 188*f2f36c9bSDaniel Paoliello .section .debug$S,"dr",associative,add_numbers 189*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 190*f2f36c9bSDaniel Paoliello .long 4 191*f2f36c9bSDaniel Paoliello .long 241 192*f2f36c9bSDaniel Paoliello .long .Ltmp19-.Ltmp18 193*f2f36c9bSDaniel Paoliello.Ltmp18: 194*f2f36c9bSDaniel Paoliello .short .Ltmp21-.Ltmp20 195*f2f36c9bSDaniel Paoliello.Ltmp20: 196*f2f36c9bSDaniel Paoliello .short 4423 197*f2f36c9bSDaniel Paoliello .long 0 198*f2f36c9bSDaniel Paoliello .long 0 199*f2f36c9bSDaniel Paoliello .long 0 200*f2f36c9bSDaniel Paoliello .long .Lfunc_end0-add_numbers 201*f2f36c9bSDaniel Paoliello .long 0 202*f2f36c9bSDaniel Paoliello .long 0 203*f2f36c9bSDaniel Paoliello .long 4101 204*f2f36c9bSDaniel Paoliello .secrel32 add_numbers 205*f2f36c9bSDaniel Paoliello .secidx add_numbers 206*f2f36c9bSDaniel Paoliello .byte 128 207*f2f36c9bSDaniel Paoliello .asciz "trailing_inlined_function::add_numbers" 208*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 209*f2f36c9bSDaniel Paoliello.Ltmp21: 210*f2f36c9bSDaniel Paoliello .short .Ltmp23-.Ltmp22 211*f2f36c9bSDaniel Paoliello.Ltmp22: 212*f2f36c9bSDaniel Paoliello .short 4114 213*f2f36c9bSDaniel Paoliello .long 40 214*f2f36c9bSDaniel Paoliello .long 0 215*f2f36c9bSDaniel Paoliello .long 0 216*f2f36c9bSDaniel Paoliello .long 0 217*f2f36c9bSDaniel Paoliello .long 0 218*f2f36c9bSDaniel Paoliello .short 0 219*f2f36c9bSDaniel Paoliello .long 1138688 220*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 221*f2f36c9bSDaniel Paoliello.Ltmp23: 222*f2f36c9bSDaniel Paoliello .short .Ltmp25-.Ltmp24 223*f2f36c9bSDaniel Paoliello.Ltmp24: 224*f2f36c9bSDaniel Paoliello .short 4429 225*f2f36c9bSDaniel Paoliello .long 0 226*f2f36c9bSDaniel Paoliello .long 0 227*f2f36c9bSDaniel Paoliello .long 4099 228*f2f36c9bSDaniel Paoliello .cv_inline_linetable 1 2 932 .Lfunc_begin0 .Lfunc_end0 229*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 230*f2f36c9bSDaniel Paoliello.Ltmp25: 231*f2f36c9bSDaniel Paoliello .short 2 232*f2f36c9bSDaniel Paoliello .short 4430 233*f2f36c9bSDaniel Paoliello .short .Ltmp27-.Ltmp26 234*f2f36c9bSDaniel Paoliello.Ltmp26: 235*f2f36c9bSDaniel Paoliello .short 4429 236*f2f36c9bSDaniel Paoliello .long 0 237*f2f36c9bSDaniel Paoliello .long 0 238*f2f36c9bSDaniel Paoliello .long 4099 239*f2f36c9bSDaniel Paoliello .cv_inline_linetable 2 2 932 .Lfunc_begin0 .Lfunc_end0 240*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 241*f2f36c9bSDaniel Paoliello.Ltmp27: 242*f2f36c9bSDaniel Paoliello .short 2 243*f2f36c9bSDaniel Paoliello .short 4430 244*f2f36c9bSDaniel Paoliello .short 2 245*f2f36c9bSDaniel Paoliello .short 4431 246*f2f36c9bSDaniel Paoliello.Ltmp19: 247*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 248*f2f36c9bSDaniel Paoliello .cv_linetable 0, add_numbers, .Lfunc_end0 249*f2f36c9bSDaniel Paoliello .section .debug$S,"dr" 250*f2f36c9bSDaniel Paoliello .cv_filechecksums 251*f2f36c9bSDaniel Paoliello .cv_stringtable 252*f2f36c9bSDaniel Paoliello .long 241 253*f2f36c9bSDaniel Paoliello .long .Ltmp29-.Ltmp28 254*f2f36c9bSDaniel Paoliello.Ltmp28: 255*f2f36c9bSDaniel Paoliello .short .Ltmp31-.Ltmp30 256*f2f36c9bSDaniel Paoliello.Ltmp30: 257*f2f36c9bSDaniel Paoliello .short 4428 258*f2f36c9bSDaniel Paoliello .long 4105 259*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 260*f2f36c9bSDaniel Paoliello.Ltmp31: 261*f2f36c9bSDaniel Paoliello.Ltmp29: 262*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 263*f2f36c9bSDaniel Paoliello .section .debug$T,"dr" 264*f2f36c9bSDaniel Paoliello .p2align 2, 0x0 265*f2f36c9bSDaniel Paoliello .long 4 266*f2f36c9bSDaniel Paoliello .short 0x1e 267*f2f36c9bSDaniel Paoliello .short 0x1605 268*f2f36c9bSDaniel Paoliello .long 0x0 269*f2f36c9bSDaniel Paoliello .asciz "core::option::Option" 270*f2f36c9bSDaniel Paoliello .byte 243 271*f2f36c9bSDaniel Paoliello .byte 242 272*f2f36c9bSDaniel Paoliello .byte 241 273*f2f36c9bSDaniel Paoliello .short 0x6 274*f2f36c9bSDaniel Paoliello .short 0x1201 275*f2f36c9bSDaniel Paoliello .long 0x0 276*f2f36c9bSDaniel Paoliello .short 0xe 277*f2f36c9bSDaniel Paoliello .short 0x1008 278*f2f36c9bSDaniel Paoliello .long 0x3 279*f2f36c9bSDaniel Paoliello .byte 0x0 280*f2f36c9bSDaniel Paoliello .byte 0x0 281*f2f36c9bSDaniel Paoliello .short 0x0 282*f2f36c9bSDaniel Paoliello .long 0x1001 283*f2f36c9bSDaniel Paoliello .short 0x12 284*f2f36c9bSDaniel Paoliello .short 0x1601 285*f2f36c9bSDaniel Paoliello .long 0x1000 286*f2f36c9bSDaniel Paoliello .long 0x1002 287*f2f36c9bSDaniel Paoliello .asciz "unwrap" 288*f2f36c9bSDaniel Paoliello .byte 241 289*f2f36c9bSDaniel Paoliello .short 0x22 290*f2f36c9bSDaniel Paoliello .short 0x1605 291*f2f36c9bSDaniel Paoliello .long 0x0 292*f2f36c9bSDaniel Paoliello .asciz "trailing_inlined_function" 293*f2f36c9bSDaniel Paoliello .byte 242 294*f2f36c9bSDaniel Paoliello .byte 241 295*f2f36c9bSDaniel Paoliello .short 0x16 296*f2f36c9bSDaniel Paoliello .short 0x1601 297*f2f36c9bSDaniel Paoliello .long 0x1004 298*f2f36c9bSDaniel Paoliello .long 0x1002 299*f2f36c9bSDaniel Paoliello .asciz "add_numbers" 300*f2f36c9bSDaniel Paoliello .short 0xe 301*f2f36c9bSDaniel Paoliello .short 0x1605 302*f2f36c9bSDaniel Paoliello .long 0x0 303*f2f36c9bSDaniel Paoliello .asciz "C:\\llvm" 304*f2f36c9bSDaniel Paoliello .short 0x56 305*f2f36c9bSDaniel Paoliello .short 0x1605 306*f2f36c9bSDaniel Paoliello .long 0x0 307*f2f36c9bSDaniel Paoliello .asciz "trailing-inlined-function.rs\\@\\trailing_inlined_function.3a6e73a087a7434a-cgu.0" 308*f2f36c9bSDaniel Paoliello .short 0xa 309*f2f36c9bSDaniel Paoliello .short 0x1605 310*f2f36c9bSDaniel Paoliello .long 0x0 311*f2f36c9bSDaniel Paoliello .byte 0 312*f2f36c9bSDaniel Paoliello .byte 243 313*f2f36c9bSDaniel Paoliello .byte 242 314*f2f36c9bSDaniel Paoliello .byte 241 315*f2f36c9bSDaniel Paoliello .short 0x1a 316*f2f36c9bSDaniel Paoliello .short 0x1603 317*f2f36c9bSDaniel Paoliello .short 0x5 318*f2f36c9bSDaniel Paoliello .long 0x1006 319*f2f36c9bSDaniel Paoliello .long 0x0 320*f2f36c9bSDaniel Paoliello .long 0x1007 321*f2f36c9bSDaniel Paoliello .long 0x1008 322*f2f36c9bSDaniel Paoliello .long 0x0 323*f2f36c9bSDaniel Paoliello .byte 242 324*f2f36c9bSDaniel Paoliello .byte 241 325