1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%default {"is_double":"1","nanval":"1"}
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "executed"
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "basic lt, gt, eq"
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "left arg NaN"
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project%verify "right arg NaN"
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /* float/double_cmp[gl] vAA, vBB, vCC */
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movzbl    3(rPC),%eax             # eax<- CC
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movzbl    2(rPC),%ecx             # ecx<- BB
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    .if $is_double
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    fldl     (rFP,%eax,4)
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    fldl     (rFP,%ecx,4)
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    .else
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    flds     (rFP,%eax,4)
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    flds     (rFP,%ecx,4)
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    .endif
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    xorl     %ecx,%ecx
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    fucompp     # z if equal, p set if NaN, c set if st0 < st1
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    fnstsw   %ax
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    sahf
20a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    FETCH_INST_OPCODE 2 %eax
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jp       .L${opcode}_isNaN
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    je       .L${opcode}_finish
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    sbbl     %ecx,%ecx
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jb       .L${opcode}_finish
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    incl     %ecx
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_finish:
27a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    SET_VREG %ecx rINST
28f3e177289ac078f18401cfd8eebafe584dd0d01fbuzbee    ADVANCE_PC 2
29a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee    GOTO_NEXT_R %eax
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project.L${opcode}_isNaN:
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    movl      $$$nanval,%ecx
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    jmp       .L${opcode}_finish
34