2013-05-01 83 views
0

我想了解的Dalvik/VM/mterp/armv6t2/wincmp.s代碼:「驗證分支」是什麼?

%verify "branch taken" 
%verify "branch not taken" 
/* 
* Generic two-operand compare-and-branch operation. Provide a "revcmp" 
* fragment that specifies the *reverse* comparison to perform, e.g. 
* for "if-le" you would use "gt". 
* 
* For: if-eq, if-ne, if-lt, if-ge, if-gt, if-le 
*/ 
/* if-cmp vA, vB, +CCCC */ 
mov  r1, rINST, lsr #12   @ r1<- B 
ubfx r0, rINST, #8, #4   @ r0<- A 
GET_VREG(r3, r1)     @ r3<- vB 
GET_VREG(r2, r0)     @ r2<- vA 
mov  r9, #4      @ r0<- BYTE branch dist for not-taken 
cmp  r2, r3      @ compare (vA, vB) 
b${revcmp} 1f      @ branch to 1 if comparison failed 
FETCH_S(r9, 1)      @ r9<- branch offset, in code units 
movs r9, r9, asl #1    @ convert to bytes, check sign 
bmi  common_backwardBranch  @ yes, do periodic checks 
1: 
#if defined(WITH_JIT) 
GET_JIT_PROF_TABLE(r0) 
FETCH_ADVANCE_INST_RB(r9)   @ update rPC, load rINST 
b  common_testUpdateProfile 
#else 
FETCH_ADVANCE_INST_RB(r9)   @ update rPC, load rINST 
GET_INST_OPCODE(ip)     @ extract opcode from rINST 
GOTO_OPCODE(ip)      @ jump to next instruction 
#endif 

誰能告訴我什麼是第一行(%檢驗 「的分支」)意味着什麼? 謝謝

回答

0

它實質上只是一個評論。從Dalvik的mterp自述:

%驗證「消息」

留了一張字條給自己大約需要測試的東西。 (這可能是 有一天會變成更有趣的東西;現在,在產生輸出之前,它只會得到 。)