📄 source6.list
字号:
+version: 7/2/1998
+switches:
+uca_version: 2.0.83
+uca_date: Aug 2 2001 00:02:16
+current_date: Fri Jun 28 16:16:37 2002
.cpu_version 0x00000001 0 15
.%num_contexts 4
.%local_mem0_mode rel
.%local_mem1_mode rel
:no_bit_set# 0
:self# 26
*-- no_destination F0
*temp1 gpr_b_rel D4
*mask_reg gpr_b_rel D0
*gpr6 gpr_b_rel D3
*gpr3 gpr_b_rel D2
*gpr1 gpr_b_rel D1
*temp2 gpr_a_rel C5
*gpr7 gpr_a_rel C4
*gpr5 gpr_a_rel C3
*gpr4 gpr_a_rel C0
*gpr2 gpr_a_rel C2
*gpr0 gpr_a_rel C1
.0 DA55E02A common_code
.import_var __chip_id __chip_revision __uengine_id
.%line 4 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
;Local Register instructions
;TA
;find bit set
no_bit_set#:
.%line 5 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
immed_w1[gpr3,0xabc0]
.1 D8140500 common_code
.%line 6 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
immed_w1[gpr4,0x000a]
.2 D8106F2F common_code
.%line 7 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
immed_w0[gpr4,0xbcde]
.3 A6001004 common_code
.%line 12 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
; assume that all input gpr was 0 except:
; gpr3 = 0xABC00000 : for upper 16 bits, bit 6 is first set.
; gpr4 = 0x000ABCDE : for lower 16 bits, bit 10 is first set when masking the lowest byte"DE".
;- find_bset instruction counter=0
find_bset[ gpr0 ,0 ], clr_results;clear both result registers ,and then test lower half of gpr0
.4 B2001044 common_code
.%line 13 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr0, >>16 ] ; test upper half of gpr0
.5 A0000084 common_code
.%line 14 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr1 ,0 ]
.6 B00000C4 common_code
.%line 15 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr1, >>16 ]
.7 A2002004 common_code
.%line 16 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr2 ,0 ]
.8 B2002044 common_code
.%line 17 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr2, >>16 ]
.9 A0000104 common_code
.%line 18 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr3 ,0 ]
.10 B0000144 common_code
.%line 19 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr3, >>16 ] ;- find_bset instruction counter=7
.11 DA01803F common_code
.%line 20 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
immed[ mask_reg, 0xff00 ] ; low byte is clear ==> don’t test it
.12 A3000004 common_code
.%line 22 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
; test lower half of gpr4 while masking out low byte
find_bset_with_mask[ mask_reg, gpr4 ,0 ]
.13 B2000044 common_code
.%line 23 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr4, >>16 ] ;- find_bset instruction counter=8
.14 A2003004 common_code
.%line 24 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr5 ,0 ]
.15 B2003044 common_code
.%line 25 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr5, >>16 ]
.16 A0000184 common_code
.%line 26 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr6 ,0 ]
.17 B00001C4 common_code
.%line 27 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr6, >>16 ]
.18 A2004004 common_code
.%line 28 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr7 ,0 ]
.19 B2004044 common_code
.%line 29 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
find_bset[ gpr7, >>16 ];- find_bset instruction counter=15
.20 DE000000 common_code
.%line 31 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
;Test up to 16 consecutive 16 bit fields
nop;required for 3 cycle latency
.21 DE000000 common_code
.%line 32 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
nop;required for 3 cycle latency
.22 DE000000 common_code
.%line 33 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
nop;required for 3 cycle latency
.23 A0205034 common_code
.%line 34 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
load_bset_result2[ temp2 ]
.24 A6400224 common_code
.%line 36 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
;load_bset_result set alu contional code
load_bset_result1[ temp1 ], clr_results ; read results ,and then clear both result registers
.25 E0200007 common_code
.%line 38 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
;load_bset_result set alu contional code
br=0[ no_bit_set# ]; branch if no bit was set
.26 F8000D07 common_code
.%line 48 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
; else the results would be:
; temp1 = 0x176
; temp2 = 0x18A
; result register Format :
; +++++++++++++++++++++++++++++++++++++++++++
; | reserved|locked|find_bset |first bit set|
; | | |counter |position |
; +++++++++++++++++++++++++++++++++++++++++++
; 8 4 4
self#:
.%line 49 "D:\yxp\ixp1200\讲座\Intel IXP1200开发指南\开发指南2之demo工程\开发指南(2)之demo工程\demo6\Source6.uc" 1
br[self#]
+ucode_end
SEGMENT ADDRESS RANGE STATISTICS
Segment: common_code_seg address range: 0-26;
includes pages:
common_code
PAGE ADDRESS RANGE STATISTICS
Page: common_code address range: 0-26
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -