1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "executed"
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "basic lt, gt, eq"
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "hi equal, lo <=>"
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "lo equal, hi <=>"
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /*
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Compare two 64-bit values.  Puts 0, 1, or -1 into the destination
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * register based on the results of the comparison.
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /* cmp-long vAA, vBB, vCC */
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movzbl    2(rPC),%ecx              # ecx<- BB
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    SPILL(rPC)
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movzbl    3(rPC),rPC               # rPC<- CC
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    GET_VREG_WORD(%eax,%ecx,1)         # eax<- v[BB+1]
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    GET_VREG_WORD(%ecx,%ecx,0)         # ecx<- v[BB+0]
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movzbl    rINST_HI,rINST_FULL      # rINST_FULL<- AA
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    cmpl      4(rFP,rPC,4),%eax
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jl        .L${opcode}_smaller
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jg        .L${opcode}_bigger
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    sub       (rFP,rPC,4),%ecx
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    ja        .L${opcode}_bigger
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jb        .L${opcode}_smaller
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    UNSPILL(rPC)
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jmp       .L${opcode}_finish
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%break
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_bigger:
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    UNSPILL(rPC)
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movl      $$1,%ecx
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jmp       .L${opcode}_finish
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_smaller:
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    UNSPILL(rPC)
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movl      $$-1,%ecx
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_finish:
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    SET_VREG(%ecx,rINST_FULL)
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    FETCH_INST_WORD(2)
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    ADVANCE_PC(2)
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    GOTO_NEXT
38