⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rle_kc.uc

📁 H.264完整的C语言代码和DCT的代码
💻 UC
📖 第 1 页 / 共 5 页
字号:
// microassembly program:  D:\working\im_apps\h264\rle_kc.i
// machine description:    gold8.md
// KERNELDEF: instrs: 228 params: i 0 i 1 i 2 i 3 o 4 r 1 r 2 blocks: 13 19 12  50 3  5 2  5 7  9 6  8 5  9 4  5 9  9 8  78 11  18 10  5 1  7 -1  SWP_block_depth: 13 -1 0 0 0 0 0 0 0 0 0 0 0 -1 func_name: rle block_io_counts: 13 5 0 0 0 16 1 0 1 16 8 0 0 0 2 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 2 3 2 0 0 0 0 9 1 0 0 0 0 0 0 0 0 0 1 1 
PARAMS: SCHED_METHOD: COS UC_BITS: 497
         NUM_INPUT_STREAMS: 4 NUM_OUTPUT_STREAMS: 1

// RESULTS: -rs 0, -rf 0
//   block: 0 best: 16 achieved: 19 (lines: 1-71, instrs: 0-18)
//   block: 1 best: 27 achieved: 50 (lines: 72-269, instrs: 19-68)
//   block: 2 best: 4 achieved: 5 (lines: 270-275, instrs: 69-73)
//   block: 3 best: 5 achieved: 5 (lines: 276-282, instrs: 74-78)
//   block: 4 best: 8 achieved: 9 (lines: 283-315, instrs: 79-87)
//   block: 5 best: 7 achieved: 8 (lines: 316-336, instrs: 88-95)
//   block: 6 best: 9 achieved: 9 (lines: 337-355, instrs: 96-104)
//   block: 7 best: 5 achieved: 5 (lines: 356-402, instrs: 105-110)
//   block: 8 best: 9 achieved: 9 (lines: 403-438, instrs: 111-119)
//   block: 9 best: 69 achieved: 78 (lines: 439-576, instrs: 120-197)
//   block: 10 best: 17 achieved: 18 (lines: 577-612, instrs: 198-215)
//   block: 11 best: 5 achieved: 5 (lines: 613-613, instrs: 216-220)
//   block: 12 best: 7 achieved: 7 (lines: 614-620, instrs: 221-227)

instr: 0
    MC: OP: UC_DATA_IN LINE:-1 IMM:0x0 UCRF_WR:22 STAGES:-1,
    // OUT:MC_0: UC_DATA_IN => ( uc_const#0 == UCRF_0[22] )
    DEAD_REGS: {  };
instr: 1
    MC: OP: CHK_EOS LINE:71 STR_ID:0,
    DEAD_REGS: {  };
instr: 2
    MC: OP: NONE LINE:-1 UCONDRF_WR:1 STAGES:-1,
    B:24 = IN:2 STAGE:-1 LINE:43 VAR: send_idx#0 DATATYPE: INT,
    RF:10:IN:0:REG:1 = B:24 STAGE:-1 VAR: send_idx#0 DATATYPE: INT,
    // OUT:INOUT_2: DATA_IN => ( send_idx#0 == MULRF_0_0[1] )
    // OUT:MC_0: CHK_EOS => ( tmp#10 == UCONDRF_0[1] )
    DEAD_REGS: {  };
instr: 3
    MC: OP: UC_DATA_IN LINE:34 IMM:0x75643120 UCRF_WR:3 STAGES:-1,
    B:24 = IN:2 STAGE:-1 LINE:44 VAR: store_idx#0 DATATYPE: INT,
    RF:6:IN:0:REG:1 = B:24 STAGE:-1 VAR: store_idx#0 DATATYPE: INT,
    // OUT:INOUT_2: DATA_IN => ( store_idx#0 == UNITRF_1_0[1] )
    // OUT:MC_0: UC_DATA_IN => ( perm_1 == UCRF_0[3] )
    DEAD_REGS: {  };
instr: 4
    MC: OP: UC_DATA_IN LINE:35 IMM:0x67451320 UCRF_WR:4 STAGES:-1,
    B:24 = IN:2 STAGE:-1 LINE:45 VAR: send_idx#1 DATATYPE: INT,
    RF:2:IN:0:REG:1 = B:24 STAGE:-1 VAR: send_idx#1 DATATYPE: INT,
    // OUT:INOUT_2: DATA_IN => ( send_idx#1 == UNITRF_0_1[1] )
    // OUT:MC_0: UC_DATA_IN => ( perm_2 == UCRF_0[4] )
    DEAD_REGS: {  };
instr: 5
    MC: OP: UC_DATA_IN LINE:36 IMM:0x75261430 UCRF_WR:5 STAGES:-1,
    B:24 = IN:2 STAGE:-1 LINE:46 VAR: store_idx#1 DATATYPE: INT,
    RF:3:IN:0:REG:1 = B:24 STAGE:-1 VAR: store_idx#1 DATATYPE: INT,
    // OUT:INOUT_2: DATA_IN => ( store_idx#1 == UNITRF_0_2[1] )
    // OUT:MC_0: UC_DATA_IN => ( perm_3 == UCRF_0[5] )
    DEAD_REGS: {  };
instr: 6
    MC: OP: UC_DATA_IN LINE:37 IMM:0x57362401 UCRF_WR:6 STAGES:-1,
    B:24 = IN:2 STAGE:-1 LINE:47 VAR: send_idx#2 DATATYPE: INT,
    RF:4:IN:0:REG:1 = B:24 STAGE:-1 VAR: send_idx#2 DATATYPE: INT,
    // OUT:INOUT_2: DATA_IN => ( send_idx#2 == UNITRF_0_3[1] )
    // OUT:MC_0: UC_DATA_IN => ( perm_4 == UCRF_0[6] )
    DEAD_REGS: {  };
instr: 7
    MC: OP: UC_DATA_IN LINE:38 IMM:0x74352601 UCRF_WR:7 STAGES:-1,
    B:24 = IN:2 STAGE:-1 LINE:48 VAR: store_idx#2 DATATYPE: INT,
    RF:11:IN:0:REG:1 = B:24 STAGE:-1 VAR: store_idx#2 DATATYPE: INT,
    // OUT:INOUT_2: DATA_IN => ( store_idx#2 == MULRF_0_1[1] )
    // OUT:MC_0: UC_DATA_IN => ( perm_5 == UCRF_0[7] )
    DEAD_REGS: {  };
instr: 8
    MC: OP: UC_DATA_IN LINE:39 IMM:0x64270531 UCRF_WR:8 STAGES:-1,
    B:24 = IN:2 STAGE:-1 LINE:49 VAR: send_idx#3 DATATYPE: INT,
    RF:5:IN:0:REG:1 = B:24 STAGE:-1 VAR: send_idx#3 DATATYPE: INT,
    // OUT:INOUT_2: DATA_IN => ( send_idx#3 == UNITRF_0_4[1] )
    // OUT:MC_0: UC_DATA_IN => ( perm_6 == UCRF_0[8] )
    DEAD_REGS: {  };
instr: 9
    MC: OP: UC_DATA_IN LINE:40 IMM:0x63170542 UCRF_WR:9 STAGES:-1,
    U5: OP: NSELECT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:-1
    B:24 = IN:2 STAGE:-1 LINE:50 VAR: store_idx#3 DATATYPE: INT,
    RF:3:IN:0:REG:2 = B:24 STAGE:-1 VAR: store_idx#3 DATATYPE: INT,
    B:39 = RF:18:OUT:2:REG:0 VAR: hw_const#0 DATATYPE: ANYINT,
    U5:IN:2 = B:39 VAR: hw_const#0 DATATYPE: ANYINT,
    B:10 = RF:6:OUT:0:REG:0 VAR: hw_const#1 DATATYPE: ANYINT,
    U5:IN:0 = B:10 VAR: hw_const#1 DATATYPE: ANYINT,
    B:28 = U5:OUT:0 INSTR_LOG:1|const#1#||0 VAR: const#1 DATATYPE: ANYINT,
    RF:4:IN:0:REG:2 = B:28 STAGE:-1 VAR: const#1 DATATYPE: ANYINT,
    // OUT:INOUT_2: DATA_IN => ( store_idx#3 == UNITRF_0_2[2] )
    // OUT:MC_0: UC_DATA_IN => ( perm_7 == UCRF_0[9] )
    //  IN:DIVIDER_0: ( const#1 ) = NSELECT( hw_const#0 == CCRF_0[0], hw_const#1 == UNITRF_1_0[0] )
    // OUT:DIVIDER_0: NSELECT => ( const#1 == UNITRF_0_3[2] )
    DEAD_REGS: {  };
instr: 10
    MC: OP: UC_DATA_IN LINE:61 IMM:0x7654321 UCRF_RD:1 UCRF_WR:10 STAGES:-1,
    U1: OP: SHIFT32 LINE:-1 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:-1
    U7: OP: COMMUCDATA LINE:28 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:28
    B:24 = IN:2 STAGE:-1 LINE:51 VAR: send_idx#4 DATATYPE: INT,
    RF:4:IN:0:REG:2 = B:24 STAGE:-1 VAR: send_idx#4 DATATYPE: INT,
    B:14 = RF:4:OUT:0:REG:2 VAR: const#1 DATATYPE: ANYINT,
    U1:IN:0 = B:14 VAR: const#1 DATATYPE: ANYINT,
    B:15 = RF:8:OUT:0:REG:0 VAR: hw_const#1 DATATYPE: ANYINT,
    U1:IN:1 = B:15 VAR: hw_const#1 DATATYPE: ANYINT,
    B:30 = U1:OUT:0 INSTR_LOG:1|const#2#||0 VAR: const#2 DATATYPE: ANYINT,
    RF:9:IN:0:REG:3 = B:30 STAGE:-1 VAR: const#2 DATATYPE: ANYINT,
    RF:3:IN:0:REG:6 = B:30 STAGE:-1 VAR: const#2 DATATYPE: ANYINT,
    RF:10:IN:0:REG:2 = B:30 STAGE:-1 VAR: const#2 DATATYPE: ANYINT,
    RF:12:IN:0:REG:1 = B:30 STAGE:-1 VAR: const#2 DATATYPE: ANYINT,
    RF:7:IN:0:REG:1 = B:30 STAGE:-1 VAR: const#2 DATATYPE: ANYINT,
    B:9 = RF:15:OUT:0:REG:0 VAR: hw_const#8 DATATYPE: ANYINT,
    U7:IN:1 = B:9 VAR: hw_const#8 DATATYPE: ANYINT,
    B:8 = RF:2:OUT:0:REG:0 VAR: hw_const#0 DATATYPE: ANYINT,
    U7:IN:0 = B:8 VAR: hw_const#0 DATATYPE: ANYINT,
    B:27 = U7:OUT:0 INSTR_LOG:1|pfm#||0 VAR: pfm DATATYPE: UINT,
    RF:5:IN:0:REG:4 = B:27 STAGE:-1 VAR: pfm DATATYPE: UINT,
    RF:8:IN:0:REG:3 = B:27 STAGE:-1 VAR: pfm DATATYPE: UINT,
    // OUT:INOUT_2: DATA_IN => ( send_idx#4 == UNITRF_0_3[2] )
    // OUT:MC_0: UC_DATA_IN => ( perm_a == UCRF_0[10] )
    //  IN:ADDER_1: ( const#2 ) = SHIFT32( const#1 == UNITRF_0_3[2], hw_const#1 == UNITRF_1_2[0] )
    // OUT:ADDER_1: SHIFT32 => ( const#2 == UNITRF_1_3[3], const#2 == UNITRF_0_2[6], const#2 == MULRF_0_0[2], const#2 == MULRF_1_0[1], const#2 == UNITRF_1_1[1] )
    //  IN:COMM_SCHED_0: ( pfm ) = COMMUCDATA( hw_const#8 == PERMRF_0[0], hw_const#0 == UNITRF_0_1[0], pframe == UCRF_0[1] )
    // OUT:COMM_SCHED_0: COMMUCDATA => ( pfm == UNITRF_0_4[4], pfm == UNITRF_1_2[3] )
    DEAD_REGS: {  };
instr: 11
    MC: OP: UC_DATA_IN LINE:62 IMM:0x10765432 UCRF_WR:11 STAGES:-1,
    U5: OP: SELECT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:-1
    U3: OP: NSELECT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:-1
    U4: OP: SELECT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:-1
    B:24 = IN:2 STAGE:-1 LINE:52 VAR: store_idx#4 DATATYPE: INT,
    RF:6:IN:0:REG:3 = B:24 STAGE:-1 VAR: store_idx#4 DATATYPE: INT,
    B:39 = RF:18:OUT:2:REG:0 VAR: hw_const#0 DATATYPE: ANYINT,
    U5:IN:2 = B:39 VAR: hw_const#0 DATATYPE: ANYINT,
    B:11 = RF:14:OUT:0:REG:0 VAR: cluster#id DATATYPE: ANYINT,
    U5:IN:1 = B:11 VAR: cluster#id DATATYPE: ANYINT,
    B:28 = U5:OUT:0 INSTR_LOG:1|cluster#id#||0 VAR: cluster#id DATATYPE: ANYINT,
    RF:4:IN:0:REG:3 = B:28 STAGE:-1 VAR: cluster#id DATATYPE: ANYINT,
    B:43 = RF:18:OUT:6:REG:0 VAR: hw_const#0 DATATYPE: ANYINT,
    U3:IN:2 = B:43 VAR: hw_const#0 DATATYPE: ANYINT,
    B:18 = RF:10:OUT:0:REG:0 VAR: hw_const#0 DATATYPE: ANYINT,
    U3:IN:0 = B:18 VAR: hw_const#0 DATATYPE: ANYINT,
    B:33 = U3:OUT:1 INSTR_LOG:1|tmp#66#||1 VAR: tmp#66 DATATYPE: HALF2,
    RF:8:IN:0:REG:1 = B:33 STAGE:-1 VAR: tmp#66 DATATYPE: HALF2,
    B:44 = RF:18:OUT:7:REG:0 VAR: hw_const#0 DATATYPE: ANYINT,
    U4:IN:2 = B:44 VAR: hw_const#0 DATATYPE: ANYINT,
    B:21 = RF:13:OUT:0:REG:0 VAR: hw_const#1 DATATYPE: ANYINT,
    U4:IN:1 = B:21 VAR: hw_const#1 DATATYPE: ANYINT,
    B:35 = U4:OUT:1 INSTR_LOG:1|const#1#||1 VAR: const#1 DATATYPE: ANYINT,
    RF:5:IN:0:REG:2 = B:35 STAGE:-1 VAR: const#1 DATATYPE: ANYINT,
    RF:3:IN:0:REG:4 = B:35 STAGE:-1 VAR: const#1 DATATYPE: ANYINT,
    // OUT:INOUT_2: DATA_IN => ( store_idx#4 == UNITRF_1_0[3] )
    // OUT:MC_0: UC_DATA_IN => ( perm_b == UCRF_0[11] )
    //  IN:DIVIDER_0: ( cluster#id ) = SELECT( hw_const#0 == CCRF_0[0], cluster#id == UNITRF_CID_0[0] )
    // OUT:DIVIDER_0: SELECT => ( cluster#id == UNITRF_0_3[3] )
    //  IN:MULTIPLIER_0: ( tmp#66 ) = NSELECT( hw_const#0 == CCRF_0[0], hw_const#0 == MULRF_0_0[0] )
    // OUT:MULTIPLIER_0: NSELECT => ( tmp#66 == UNITRF_1_2[1] )
    //  IN:MULTIPLIER_1: ( const#1 ) = SELECT( hw_const#0 == CCRF_0[0], hw_const#1 == MULRF_1_1[0] )
    // OUT:MULTIPLIER_1: SELECT => ( const#1 == UNITRF_0_4[2], const#1 == UNITRF_0_2[4] )
    DEAD_REGS: {  };
instr: 12
    MC: OP: UC_DATA_IN LINE:63 IMM:0x21076543 UCRF_WR:12 STAGES:-1,
    U1: OP: IEQ32 LINE:27 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:27
    B:24 = IN:2 STAGE:-1 LINE:53 VAR: send_idx#5 DATATYPE: INT,
    RF:5:IN:0:REG:3 = B:24 STAGE:-1 VAR: send_idx#5 DATATYPE: INT,
    B:14 = RF:4:OUT:0:REG:3 VAR: cluster#id DATATYPE: ANYINT,
    U1:IN:0 = B:14 VAR: cluster#id DATATYPE: ANYINT,
    B:15 = RF:8:OUT:0:REG:1 VAR: tmp#66 DATATYPE: HALF2,
    U1:IN:1 = B:15 VAR: tmp#66 DATATYPE: HALF2,
    B:30 = U1:OUT:0 INSTR_LOG:1|clust_zero#||0 VAR: clust_zero DATATYPE: CC,
    RF:3:IN:0:REG:3 = B:30 STAGE:-1 VAR: clust_zero DATATYPE: CC,
    RF:4:IN:0:REG:5 = B:30 STAGE:-1 VAR: clust_zero DATATYPE: CC,
    B:46 = U1:OUT:0 INSTR_LOG:1|clust_zero#||0 VAR: clust_zero DATATYPE: CC,
    RF:18:IN:0:REG:1 = B:46 STAGE:-1 VAR: clust_zero DATATYPE: CC,
    // OUT:INOUT_2: DATA_IN => ( send_idx#5 == UNITRF_0_4[3] )
    // OUT:MC_0: UC_DATA_IN => ( perm_c == UCRF_0[12] )
    //  IN:ADDER_1: ( clust_zero ) = IEQ32( cluster#id == UNITRF_0_3[3], tmp#66 == UNITRF_1_2[1] )
    // OUT:ADDER_1: IEQ32 => ( clust_zero == UNITRF_0_2[3], clust_zero == UNITRF_0_3[5], clust_zero == CCRF_0[1] )
    DEAD_REGS: {  };
instr: 13
    MC: OP: UC_DATA_IN LINE:64 IMM:0x32107654 UCRF_WR:13 STAGES:-1,
    U7: OP: SELECT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:-1
    U2: OP: SHIFT32 LINE:-1 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:-1
    U0: OP: NOT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:-1
    U3: OP: NSELECT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\rle_kc.i:-1
    B:24 = IN:2 STAGE:-1 LINE:54 VAR: store_idx#5 DATATYPE: INT,
    RF:11:IN:0:REG:2 = B:24 STAGE:-1 VAR: store_idx#5 DATATYPE: INT,
    B:38 = RF:18:OUT:1:REG:0 VAR: hw_const#0 DATATYPE: ANYINT,
    U7:IN:2 = B:38 VAR: hw_const#0 DATATYPE: ANYINT,
    B:9 = RF:15:OUT:0:REG:0 VAR: hw_const#8 DATATYPE: ANYINT,
    U7:IN:1 = B:9 VAR: hw_const#8 DATATYPE: ANYINT,
    B:27 = U7:OUT:0 INSTR_LOG:1|const#8#||0 VAR: const#8 DATATYPE: ANYINT,
    RF:3:IN:0:REG:4 = B:27 STAGE:-1 VAR: const#8 DATATYPE: ANYINT,
    B:16 = RF:5:OUT:0:REG:2 VAR: const#1 DATATYPE: ANYINT,
    U2:IN:0 = B:16 VAR: const#1 DATATYPE: ANYINT,
    B:17 = RF:9:OUT:0:REG:3 VAR: const#2 DATATYPE: ANYINT,
    U2:IN:1 = B:17 VAR: const#2 DATATYPE: ANYINT,
    B:31 = U2:OUT:0 INSTR_LOG:1|const#4#||0 VAR: const#4 DATATYPE: ANYINT,
    RF:7:IN:0:REG:2 = B:31 STAGE:-1 VAR: const#4 DATATYPE: ANYINT,
    RF:9:IN:0:REG:2 = B:31 STAGE:-1 VAR: const#4 DATATYPE: ANYINT,
    RF:8:IN:0:REG:1 = B:31 STAGE:-1 VAR: const#4 DATATYPE: ANYINT,
    B:12 = RF:3:OUT:0:REG:4 VAR: const#1 DATATYPE: ANYINT,
    U0:IN:0 = B:12 VAR: const#1 DATATYPE: ANYINT,
    B:29 = U0:OUT:0 INSTR_LOG:1|const#-2#||0 VAR: const#-2 DATATYPE: ANYINT,
    RF:5:IN:0:REG:5 = B:29 STAGE:-1 VAR: const#-2 DATATYPE: ANYINT,
    RF:6:IN:0:REG:2 = B:29 STAGE:-1 VAR: const#-2 DATATYPE: ANYINT,
    B:43 = RF:18:OUT:6:REG:0 VAR: hw_const#0 DATATYPE: ANYINT,
    U3:IN:2 = B:43 VAR: hw_const#0 DATATYPE: ANYINT,
    B:18 = RF:10:OUT:0:REG:2 VAR: const#2 DATATYPE: ANYINT,
    U3:IN:0 = B:18 VAR: const#2 DATATYPE: ANYINT,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -