# RUN: llc -run-pass=livedebugvalues -o - %s | FileCheck %s
#
# This test is used to acknowledge situation when spill register is killed
# in instruction after the spill occurs.
# Generated MIR is changed in order to test case when instruction after
# possible spill, say instruction B, kills register different than than
# the one that is used in possible spill, say instruction A. In that case
# the instruction A is not recognized as spill. Changed instructions are
# commented in MIR below.
#
# ...
# A - possible spill instruction with register R2
# B - instruction that kills R3
# ...
#
# CHECK: bb.1.if.end:
# CHECK: DBG_VALUE $rbp, 0, !37, !DIExpression(DW_OP_constu, 44, DW_OP_minus)
# CHECK-NOT: DBG_VALUE $rbp, 0, !36, !DIExpression(DW_OP_constu, 48, DW_OP_minus)

--- |
  ; ModuleID = '<stdin>'
  source_filename = "<stdin>"
  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  target triple = "x86_64-unknown-linux-gnu"

  %struct.firstStruct = type { i32, i8, %struct.secondStruct* }
  %struct.secondStruct = type { i32, i8, i8* }
  %struct.thirdStruct = type { %struct.fourthStruct, i32*, i8* }
  %struct.fourthStruct = type { i32, i32, i32, i32 }

  @.str = private unnamed_addr constant [7 x i8] c"Error:\00", align 1
  @firstStruct = common local_unnamed_addr global %struct.firstStruct zeroinitializer, align 8, !dbg !0

  ; Function Attrs: nounwind uwtable
  define i32 @foo(i32 %variable2, i32 %variable1) local_unnamed_addr #0 !dbg !31 {
  entry:
    %const1 = bitcast i64 -9223372036854775808 to i64
    %0 = bitcast i64 %const1 to i64
    call void @llvm.dbg.value(metadata i32 %variable2, metadata !36, metadata !DIExpression()), !dbg !57
    call void @llvm.dbg.value(metadata i32 %variable1, metadata !37, metadata !DIExpression()), !dbg !58
    %call = tail call %struct.firstStruct* @func1(i32 %variable1)
    %1 = ptrtoint %struct.firstStruct* %call to i64
    %2 = and i64 %1, %0
    %tobool = icmp eq i64 %2, 0
    br i1 %tobool, label %cleanup, label %if.end

  if.end:                                           ; preds = %entry
    %call1 = tail call %struct.thirdStruct* @func2(i32 %variable2, i32 %variable1)
    %3 = ptrtoint %struct.thirdStruct* %call1 to i64
    %4 = and i64 %3, -123
    %tobool2 = icmp eq i64 %4, 0
    br i1 %tobool2, label %if.then3, label %private.exit

  if.then3:                                         ; preds = %if.end
    %5 = inttoptr i64 %2 to %struct.firstStruct*
    %variableLocal11 = bitcast %struct.firstStruct* %5 to i32*
    %6 = load i32, i32* %variableLocal11, align 8
    %variableLocal2 = getelementptr inbounds %struct.firstStruct, %struct.firstStruct* %5, i64 0, i32 1
    %7 = load i8, i8* %variableLocal2, align 4
    tail call void @func3(i32 %6, i8 zeroext %7, i8 zeroext 5, i8* inttoptr (i64 or (i64 ptrtoint ([7 x i8]* @.str to i64), i64 -92238) to i8*), i32 %variable2)
    br label %cleanup

  private.exit:                                     ; preds = %if.end
    %8 = bitcast i64 %const1 to i64
    %9 = ptrtoint %struct.thirdStruct* %call1 to i64
    %10 = or i64 %9, %8
    %11 = inttoptr i64 %10 to i8*
    %call5.i = tail call i8* @memset(i8* %11, i32 0, i64 16)
    %call6 = tail call i32 @func4(%struct.thirdStruct* %call1)
    %tobool7 = icmp eq i32 %call6, 0
    br i1 %tobool7, label %cleanup, label %if.then8

  if.then8:                                         ; preds = %private.exit
    %12 = inttoptr i64 %2 to %struct.firstStruct*
    tail call void @func5(%struct.thirdStruct* %call1, i32 0)
    %rc_db = getelementptr inbounds %struct.firstStruct, %struct.firstStruct* %12, i64 0, i32 2
    %13 = bitcast %struct.secondStruct** %rc_db to i64*
    %14 = load i64, i64* %13, align 8
    %tobool9 = icmp eq i64 %14, 0
    br i1 %tobool9, label %cleanup, label %land.lhs.true

  land.lhs.true:                                    ; preds = %if.then8
    %15 = inttoptr i64 %4 to %struct.thirdStruct*
    %tot_perf2 = bitcast %struct.thirdStruct* %15 to i32*
    %16 = load i32, i32* %tot_perf2, align 8
    %tobool11 = icmp eq i32 %16, 0
    br i1 %tobool11, label %lor.lhs.false, label %if.then14

  lor.lhs.false:                                    ; preds = %land.lhs.true
    %17 = inttoptr i64 %4 to %struct.thirdStruct*
    %tot_bw = getelementptr inbounds %struct.thirdStruct, %struct.thirdStruct* %17, i64 0, i32 0, i32 1
    %18 = load i32, i32* %tot_bw, align 4
    %tobool13 = icmp eq i32 %18, 0
    br i1 %tobool13, label %cleanup, label %if.then14

  if.then14:                                        ; preds = %lor.lhs.false, %land.lhs.true
    %19 = inttoptr i64 %14 to %struct.secondStruct*
    %mc_origin = getelementptr inbounds %struct.secondStruct, %struct.secondStruct* %19, i64 0, i32 2
    %20 = bitcast i8** %mc_origin to i64*
    %21 = load i64, i64* %20, align 8
    %22 = inttoptr i64 %21 to i8*
    tail call void @func6(%struct.thirdStruct* %call1, i32 %variable1, i8* %22)
    br label %cleanup

  cleanup:                                          ; preds = %if.then14, %lor.lhs.false, %if.then8, %private.exit, %if.then3, %entry
    %retval.0 = phi i32 [ 0, %if.then3 ], [ 0, %entry ], [ 1, %lor.lhs.false ], [ 1, %if.then8 ], [ 1, %private.exit ], [ 1, %if.then14 ]
    ret i32 %retval.0
  }

  declare %struct.firstStruct* @func1(i32) local_unnamed_addr

  declare %struct.thirdStruct* @func2(i32, i32) local_unnamed_addr

  declare void @func3(i32, i8 zeroext, i8 zeroext, i8*, i32) local_unnamed_addr

  declare i32 @func4(%struct.thirdStruct*) local_unnamed_addr

  declare void @func5(%struct.thirdStruct*, i32) local_unnamed_addr

  declare void @func6(%struct.thirdStruct*, i32, i8*) local_unnamed_addr

  declare i8* @__memset_to_buf(i64, i8*, i32, i64) local_unnamed_addr

  declare i8* @memset(i8*, i32, i64) local_unnamed_addr

  ; Function Attrs: nounwind readnone speculatable
  declare void @llvm.dbg.value(metadata, metadata, metadata) #1

  ; Function Attrs: nounwind
  declare void @llvm.stackprotector(i8*, i8**) #2

  attributes #0 = { nounwind uwtable "frame-pointer"="non-leaf" }
  attributes #1 = { nounwind readnone speculatable }
  attributes #2 = { nounwind }

  !llvm.dbg.cu = !{!2}
  !llvm.module.flags = !{!27, !28, !29}
  !llvm.ident = !{!30}

  !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
  !1 = distinct !DIGlobalVariable(name: "firstStruct", scope: !2, file: !3, line: 23, type: !11, isLocal: false, isDefinition: true)
  !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 4.0.0", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !5, globals: !10)
  !3 = !DIFile(filename: "inlineSpillerTest.c", directory: "/")
  !4 = !{}
  !5 = !{!6, !7}
  !6 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
  !7 = !DIDerivedType(tag: DW_TAG_typedef, name: "size_t", file: !8, line: 98, baseType: !9)
  !8 = !DIFile(filename: "/tmp.h", directory: "/tmp")
  !9 = !DIBasicType(name: "long long unsigned int", size: 64, encoding: DW_ATE_unsigned)
  !10 = !{!0}
  !11 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "firstStruct", file: !3, line: 18, size: 128, elements: !12)
  !12 = !{!13, !16, !19}
  !13 = !DIDerivedType(tag: DW_TAG_member, name: "elem1", scope: !11, file: !3, line: 20, baseType: !14, size: 32)
  !14 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32", file: !3, line: 4, baseType: !15)
  !15 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
  !16 = !DIDerivedType(tag: DW_TAG_member, name: "elem2", scope: !11, file: !3, line: 21, baseType: !17, size: 8, offset: 32)
  !17 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint8", file: !3, line: 5, baseType: !18)
  !18 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char)
  !19 = !DIDerivedType(tag: DW_TAG_member, name: "elem3", scope: !11, file: !3, line: 22, baseType: !20, size: 64, offset: 64)
  !20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !21, size: 64)
  !21 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "secondStruct", file: !3, line: 11, size: 128, elements: !22)
  !22 = !{!23, !24, !25}
  !23 = !DIDerivedType(tag: DW_TAG_member, name: "structMember", scope: !21, file: !3, line: 13, baseType: !14, size: 32)
  !24 = !DIDerivedType(tag: DW_TAG_member, name: "elem4", scope: !21, file: !3, line: 14, baseType: !17, size: 8, offset: 32)
  !25 = !DIDerivedType(tag: DW_TAG_member, name: "elem5", scope: !21, file: !3, line: 15, baseType: !26, size: 64, offset: 64)
  !26 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)
  !27 = !{i32 2, !"Dwarf Version", i32 4}
  !28 = !{i32 2, !"Debug Info Version", i32 3}
  !29 = !{i32 7, !"PIC Level", i32 2}
  !30 = !{!"clang version 4.0.0 "}
  !31 = distinct !DISubprogram(name: "foo", scope: !3, file: !3, line: 50, type: !32, isLocal: false, isDefinition: true, scopeLine: 52, flags: DIFlagPrototyped, isOptimized: true, unit: !2, retainedNodes: !35)
  !32 = !DISubroutineType(types: !33)
  !33 = !{!34, !14, !14}
  !34 = !DIDerivedType(tag: DW_TAG_typedef, name: "boolean", file: !3, line: 6, baseType: !6)
  !35 = !{!36, !37, !38, !54, !55}
  !36 = !DILocalVariable(name: "variable2", arg: 1, scope: !31, file: !3, line: 50, type: !14)
  !37 = !DILocalVariable(name: "variable1", arg: 2, scope: !31, file: !3, line: 51, type: !14)
  !38 = !DILocalVariable(name: "localVariable5", scope: !31, file: !3, line: 53, type: !39)
  !39 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !40, size: 64)
  !40 = !DIDerivedType(tag: DW_TAG_typedef, name: "thirdStruct_", file: !3, line: 37, baseType: !41)
  !41 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "thirdStruct", file: !3, line: 32, size: 256, elements: !42)
  !42 = !{!43, !51, !53}
  !43 = !DIDerivedType(tag: DW_TAG_member, name: "elem6", scope: !41, file: !3, line: 34, baseType: !44, size: 128)
  !44 = !DIDerivedType(tag: DW_TAG_typedef, name: "fourthStruct_", file: !3, line: 30, baseType: !45)
  !45 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "fourthStruct", file: !3, line: 25, size: 128, elements: !46)
  !46 = !{!47, !48, !49, !50}
  !47 = !DIDerivedType(tag: DW_TAG_member, name: "elem7", scope: !45, file: !3, line: 26, baseType: !14, size: 32)
  !48 = !DIDerivedType(tag: DW_TAG_member, name: "elem8", scope: !45, file: !3, line: 27, baseType: !14, size: 32, offset: 32)
  !49 = !DIDerivedType(tag: DW_TAG_member, name: "elem9", scope: !45, file: !3, line: 28, baseType: !34, size: 32, offset: 64)
  !50 = !DIDerivedType(tag: DW_TAG_member, name: "elem10", scope: !45, file: !3, line: 29, baseType: !34, size: 32, offset: 96)
  !51 = !DIDerivedType(tag: DW_TAG_member, name: "elem11", scope: !41, file: !3, line: 35, baseType: !52, size: 64, offset: 128)
  !52 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 64)
  !53 = !DIDerivedType(tag: DW_TAG_member, name: "elem12", scope: !41, file: !3, line: 36, baseType: !26, size: 64, offset: 192)
  !54 = !DILocalVariable(name: "variable5", scope: !31, file: !3, line: 54, type: !34)
  !55 = !DILocalVariable(name: "variable6", scope: !31, file: !3, line: 55, type: !56)
  !56 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64)
  !57 = !DILocation(line: 50, column: 34, scope: !31)
  !58 = !DILocation(line: 51, column: 34, scope: !31)

...
---
name:            foo
alignment:       16
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:
liveins:
  - { reg: '$edi', virtual-reg: '' }
  - { reg: '$esi', virtual-reg: '' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       56
  offsetAdjustment: -8
  maxAlignment:    4
  adjustsStack:    true
  hasCalls:        true
  stackProtector:  ''
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  savePoint:       ''
  restorePoint:    ''
fixedStack:
  - { id: 0, type: spill-slot, offset: -56, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$rbx', callee-saved-restored: true }
  - { id: 1, type: spill-slot, offset: -48, size: 8, alignment: 16, stack-id: default,
      callee-saved-register: '$r12', callee-saved-restored: true }
  - { id: 2, type: spill-slot, offset: -40, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$r13', callee-saved-restored: true }
  - { id: 3, type: spill-slot, offset: -32, size: 8, alignment: 16, stack-id: default,
      callee-saved-register: '$r14', callee-saved-restored: true }
  - { id: 4, type: spill-slot, offset: -24, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$r15', callee-saved-restored: true }
  - { id: 5, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default,
      callee-saved-register: '', callee-saved-restored: true }
stack:
  - { id: 0, name: '', type: spill-slot, offset: -64, size: 4, alignment: 4,
      stack-id: default, callee-saved-register: '', callee-saved-restored: true,
      debug-info-variable: '', debug-info-expression: '',
      debug-info-location: '' }
  - { id: 1, name: '', type: spill-slot, offset: -60, size: 4, alignment: 4,
      stack-id: default, callee-saved-register: '', callee-saved-restored: true,
      debug-info-variable: '', debug-info-expression: '',
      debug-info-location: '' }
constants:
body:             |
  bb.0.entry:
    successors: %bb.9(0x30000000), %bb.1(0x50000000)
    liveins: $edi, $esi, $r15, $r14, $r13, $r12, $rbx

    frame-setup PUSH64r killed $rbp, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 16
    CFI_INSTRUCTION offset $rbp, -16
    $rbp = frame-setup MOV64rr $rsp
    CFI_INSTRUCTION def_cfa_register $rbp
    frame-setup PUSH64r killed $r15, implicit-def $rsp, implicit $rsp
    frame-setup PUSH64r killed $r14, implicit-def $rsp, implicit $rsp
    frame-setup PUSH64r killed $r13, implicit-def $rsp, implicit $rsp
    frame-setup PUSH64r killed $r12, implicit-def $rsp, implicit $rsp
    frame-setup PUSH64r killed $rbx, implicit-def $rsp, implicit $rsp
    frame-setup PUSH64r undef $rax, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION offset $rbx, -56
    CFI_INSTRUCTION offset $r12, -48
    CFI_INSTRUCTION offset $r13, -40
    CFI_INSTRUCTION offset $r14, -32
    CFI_INSTRUCTION offset $r15, -24
    DBG_VALUE $edi, $noreg, !36, !DIExpression(), debug-location !57
    DBG_VALUE $esi, $noreg, !37, !DIExpression(), debug-location !58
    $ebx = MOV32rr $esi
    DBG_VALUE $ebx, $noreg, !37, !DIExpression(), debug-location !58
    $r15d = MOV32rr $edi
    DBG_VALUE $r15d, $noreg, !36, !DIExpression(), debug-location !57
    renamable $r14 = MOV64ri -9223372036854775808
    $edi = MOV32rr $ebx
    CALL64pcrel32 @func1, csr_64, implicit $rsp, implicit $ssp, implicit $edi, implicit-def $rsp, implicit-def $ssp, implicit-def $rax
    $r13 = MOV64rr $rax
    renamable $ecx = XOR32rr undef $ecx, undef $ecx, implicit-def dead $eflags
    renamable $r13 = AND64rr killed renamable $r13, renamable $r14, implicit-def $eflags
    JCC_1 %bb.9, 4, implicit $eflags, debug-location !57

  bb.1.if.end:
    successors: %bb.2(0x30000000), %bb.3(0x50000000)
    liveins: $ebx, $r13, $r14, $r15d

    ; The instruction below is inserted additionally in order to test part of the code.
    $r12d = MOV32rr $r15d
    MOV32mr $rbp, 1, $noreg, -48, $noreg, renamable $r15d :: (store 4 into %stack.0)
    ; The instruction below is altered ($r15d -> $r12d) in order to test part of the code.
    ; The original instruction "$edi = MOV32rr killed $r15d
    $edi = MOV32rr killed $r12d
    MOV32mr $rbp, 1, $noreg, -44, $noreg, renamable $ebx :: (store 4 into %stack.1)
    $esi = MOV32rr killed $ebx
    CALL64pcrel32 @func2, csr_64, implicit $rsp, implicit $ssp, implicit $edi, implicit $esi, implicit-def $rsp, implicit-def $ssp, implicit-def $rax
    $r12 = MOV64rr $rax
    $r15 = MOV64rr $r12
    renamable $r15 = AND64ri8 killed renamable $r15, -123, implicit-def $eflags
    JCC_1 %bb.2, 4, implicit $eflags, debug-location !57

  bb.3.private.exit:
    successors: %bb.9(0x30000000), %bb.4(0x50000000)
    liveins: $r12, $r13, $r14, $r15

    renamable $r14 = OR64rr killed renamable $r14, renamable $r12, implicit-def dead $eflags
    $esi = XOR32rr undef $esi, undef $esi, implicit-def dead $eflags
    dead $edx = MOV32ri 16, implicit-def $rdx
    $rdi = MOV64rr killed $r14
    CALL64pcrel32 @memset, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit $esi, implicit $rdx, implicit-def $rsp, implicit-def $ssp, implicit-def dead $rax
    $rdi = MOV64rr $r12
    CALL64pcrel32 @func4, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit-def $rsp, implicit-def $ssp, implicit-def $eax
    renamable $ecx = MOV32ri 1
    TEST32rr killed renamable $eax, renamable $eax, implicit-def $eflags
    JCC_1 %bb.9, 4, implicit $eflags, debug-location !57

  bb.4.if.then8:
    successors: %bb.8(0x30000000), %bb.5(0x50000000)
    liveins: $r12, $r13, $r15

    $esi = XOR32rr undef $esi, undef $esi, implicit-def dead $eflags
    $rdi = MOV64rr $r12
    CALL64pcrel32 @func5, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit $esi, implicit-def $rsp, implicit-def $ssp
    renamable $rax = MOV64rm killed renamable $r13, 1, $noreg, 8, $noreg :: (load 8 from %ir.13)
    TEST64rr renamable $rax, renamable $rax, implicit-def $eflags
    JCC_1 %bb.8, 4, implicit $eflags, debug-location !57

  bb.5.land.lhs.true:
    successors: %bb.6(0x30000000), %bb.7(0x50000000)
    liveins: $rax, $r12, $r15

    CMP32mi8 renamable $r15, 1, $noreg, 0, $noreg, 0, implicit-def $eflags :: (load 4 from %ir.tot_perf2, align 8)
    JCC_1 %bb.7, 5, implicit $eflags, debug-location !57

  bb.6.lor.lhs.false:
    successors: %bb.8(0x30000000), %bb.7(0x50000000)
    liveins: $rax, $r12, $r15

    CMP32mi8 killed renamable $r15, 1, $noreg, 4, $noreg, 0, implicit-def $eflags :: (load 4 from %ir.tot_bw)
    JCC_1 %bb.8, 4, implicit $eflags, debug-location !57

  bb.7.if.then14:
    successors: %bb.8(0x80000000)
    liveins: $rax, $r12

    renamable $rdx = MOV64rm killed renamable $rax, 1, $noreg, 8, $noreg :: (load 8 from %ir.20)
    $rdi = MOV64rr killed $r12
    $esi = MOV32rm $rbp, 1, $noreg, -44, $noreg :: (load 4 from %stack.1)
    CALL64pcrel32 @func6, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit $esi, implicit $rdx, implicit-def $rsp, implicit-def $ssp, debug-location !57

  bb.8.cleanup:
    successors: %bb.9(0x80000000)

    renamable $ecx = MOV32ri 1
    JMP_1 %bb.9, debug-location !57

  bb.2.if.then3:
    successors: %bb.9(0x80000000)
    liveins: $r13

    renamable $edi = MOV32rm renamable $r13, 1, $noreg, 0, $noreg :: (load 4 from %ir.variableLocal11, align 8)
    renamable $esi = MOVZX32rm8 killed renamable $r13, 1, $noreg, 4, $noreg :: (load 1 from %ir.variableLocal2, align 4)
    renamable $ecx = MOV32ri @.str, implicit-def $rcx
    renamable $rcx = OR64ri32 killed renamable $rcx, -92238, implicit-def dead $eflags
    $edx = MOV32ri 5
    $r8d = MOV32rm $rbp, 1, $noreg, -48, $noreg :: (load 4 from %stack.0)
    CALL64pcrel32 @func3, csr_64, implicit $rsp, implicit $ssp, implicit $edi, implicit $esi, implicit $edx, implicit $rcx, implicit $r8d, implicit-def $rsp, implicit-def $ssp
    renamable $ecx = XOR32rr undef $ecx, undef $ecx, implicit-def dead $eflags, debug-location !57

  bb.9.cleanup:
    liveins: $ecx

    $eax = MOV32rr killed $ecx
    $rsp = ADD64ri8 $rsp, 8, implicit-def dead $eflags
    $rbx = POP64r implicit-def $rsp, implicit $rsp
    $r12 = POP64r implicit-def $rsp, implicit $rsp
    $r13 = POP64r implicit-def $rsp, implicit $rsp
    $r14 = POP64r implicit-def $rsp, implicit $rsp
    $r15 = POP64r implicit-def $rsp, implicit $rsp
    $rbp = POP64r implicit-def $rsp, implicit $rsp
    RETQ $eax, debug-location !57

...
