發現45, 46, 47的指令都帶有condition "ne", not equal,表示是剛剛 line 41發現atag不成立! D" F4 s$ h% Q% K! O" _- P& X
所做的事情,注釋是寫『If we didn't find a valid tag list, create a dummy ATAG_CORE entry.』1 D% n4 G. _# t
所以以上三行就是用來創造一個假的entry,假設一切順利這三行指令會bypass過去不會被執行到。 # z* U1 X. a: ?& b$ D) P5 i( f. H
接著來看init.S最後一段程式碼 (終於~)
54 taglist: ldr r10, [r9, #0] @ tag length' N' I7 z6 K* V
55 teq r10, #0 @ last tag (zero length)?5 k: X8 p- d8 {5 P" J4 h4 P& b
56 addne r9, r9, r10, lsl #2 ! f. y( \: C( j/ U# K
57 bne taglist 8 ^4 _5 O9 b6 M& Z
58 . \8 V: ]1 [8 |8 x% ` d
59 mov r5, #4 @ Size of initrd tag (4 words): I. W2 M8 { F5 s) q