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