# 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), debug-location !58
# CHECK-NOT: DBG_VALUE $rbp, 0, !36, !DIExpression(DW_OP_constu, 48, DW_OP_minus), debug-location !57

--- |
  ; 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 i64 @llvm.objectsize.i64.p0i8(i8*, i1, i1) #1

  ; 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 "no-frame-pointer-elim-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:       4
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: 0,
      callee-saved-register: '$rbx', callee-saved-restored: true }
  - { id: 1, type: spill-slot, offset: -48, size: 8, alignment: 16, stack-id: 0,
      callee-saved-register: '$r12', callee-saved-restored: true }
  - { id: 2, type: spill-slot, offset: -40, size: 8, alignment: 8, stack-id: 0,
      callee-saved-register: '$r13', callee-saved-restored: true }
  - { id: 3, type: spill-slot, offset: -32, size: 8, alignment: 16, stack-id: 0,
      callee-saved-register: '$r14', callee-saved-restored: true }
  - { id: 4, type: spill-slot, offset: -24, size: 8, alignment: 8, stack-id: 0,
      callee-saved-register: '$r15', callee-saved-restored: true }
  - { id: 5, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: 0,
      callee-saved-register: '', callee-saved-restored: true }
stack:
  - { id: 0, name: '', type: spill-slot, offset: -64, size: 4, alignment: 4,
      stack-id: 0, 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: 0, 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
    JE_1 %bb.9, implicit $eflags

  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
    JE_1 %bb.2, implicit $eflags

  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
    JE_1 %bb.9, implicit $eflags

  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
    JE_1 %bb.8, implicit $eflags

  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)
    JNE_1 %bb.7, implicit $eflags

  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)
    JE_1 %bb.8, implicit $eflags

  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

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

    renamable $ecx = MOV32ri 1
    JMP_1 %bb.9

  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

  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

...
