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

📄 me_fast_search4_kc.uc

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

// RESULTS: -rs 0, -rf 0
//   block: 0 best: 26 achieved: 29 (lines: 1-87, instrs: 0-28)
//   block: 1 best: 6 achieved: 7 (lines: 88-89, instrs: 29-35)
//   block: 2 best: 5 achieved: 5 (lines: 90-92, instrs: 36-40)
//   block: 3 best: 5 achieved: 5 (lines: 93-96, instrs: 41-46)
//   block: 4 best: 6 achieved: 7 (lines: 97-98, instrs: 47-53)
//   block: 5 best: 8 achieved: 9 (lines: 99-113, instrs: 54-62)
//   block: 6 best: 22 achieved: 23 (lines: 114-118, instrs: 63-86)
//   block: 7 best: 15 achieved: 19 (lines: 119-126, instrs: 87-105)
//   block: 8 best: 4 achieved: 4 (lines: 127-128, instrs: 106-109)
//   block: 9 best: 7 achieved: 9 (lines: 129-140, instrs: 110-118)
//   block: 10 best: 3 achieved: 3 (lines: 141-142, instrs: 119-121)

instr: 0
    MC: OP: UC_DATA_IN LINE:-1 IMM:0xffff UCRF_WR:3 STAGES:-1,
    // OUT:MC_0: UC_DATA_IN => ( uc_const#0xffff == UCRF_0[3] )
    DEAD_REGS: {  };
instr: 1
    MC: OP: UC_DATA_IN LINE:-1 IMM:0x88883120 UCRF_RD:3 UCRF_WR:3 STAGES:-1,
    U7: OP: COMMUCDATA LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U8: OP: INIT_CISTATE LINE:30 STR_ID:0 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:30
    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|const#0xffff#||0 VAR: const#0xffff DATATYPE: ANYINT,
    RF:8:IN:0:REG:1 = B:27 STAGE:-1 VAR: const#0xffff DATATYPE: ANYINT,
    B:49 = U8:OUT:0 INSTR_LOG:1|jb_row0#111#||0 VAR: jb_row0#111 DATATYPE: UNDEFINED,
    RF:19:IN:0:REG:1 = B:49 STAGE:-1 VAR: jb_row0#111 DATATYPE: UNDEFINED,
    // OUT:MC_0: UC_DATA_IN => ( uc_const#0x88883120 == UCRF_0[3] )
    //  IN:COMM_SCHED_0: ( const#0xffff ) = COMMUCDATA( hw_const#8 == PERMRF_0[0], hw_const#0 == UNITRF_0_1[0], uc_const#0xffff == UCRF_0[3] )
    // OUT:COMM_SCHED_0: COMMUCDATA => ( const#0xffff == UNITRF_1_2[1] )
    // OUT:JUKEBOX_SCHED_0: INIT_CISTATE => ( jb_row0#111 == JBRF_0[1] )
    DEAD_REGS: {  };
instr: 2
    MC: OP: UC_DATA_IN LINE:-1 IMM:0x88318820 UCRF_RD:3 UCRF_WR:3 STAGES:-1,
    U5: OP: NSELECT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U7: OP: COMMUCDATA LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U8: OP: INIT_CISTATE LINE:31 STR_ID:1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:31
    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:1 = B:28 STAGE:-1 VAR: const#1 DATATYPE: ANYINT,
    RF:5:IN:0:REG:1 = B:28 STAGE:-1 VAR: const#1 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|const#0x88883120#||0 VAR: const#0x88883120 DATATYPE: ANYINT,
    RF:12:IN:0:REG:1 = B:27 STAGE:-1 VAR: const#0x88883120 DATATYPE: ANYINT,
    B:49 = U8:OUT:0 INSTR_LOG:1|jb_row1#112#||0 VAR: jb_row1#112 DATATYPE: UNDEFINED,
    RF:19:IN:0:REG:2 = B:49 STAGE:-1 VAR: jb_row1#112 DATATYPE: UNDEFINED,
    // OUT:MC_0: UC_DATA_IN => ( uc_const#0x88318820 == UCRF_0[3] )
    //  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[1], const#1 == UNITRF_0_4[1] )
    //  IN:COMM_SCHED_0: ( const#0x88883120 ) = COMMUCDATA( hw_const#8 == PERMRF_0[0], hw_const#0 == UNITRF_0_1[0], uc_const#0x88883120 == UCRF_0[3] )
    // OUT:COMM_SCHED_0: COMMUCDATA => ( const#0x88883120 == MULRF_1_0[1] )
    // OUT:JUKEBOX_SCHED_0: INIT_CISTATE => ( jb_row1#112 == JBRF_0[2] )
    DEAD_REGS: {  };
instr: 3
    MC: OP: NONE LINE:-1 UCRF_RD:3,
    U1: OP: NOT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U7: OP: COMMUCDATA LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U8: OP: INIT_CISTATE LINE:32 STR_ID:2 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:32
    B:14 = RF:4:OUT:0:REG:0 VAR: hw_const#0 DATATYPE: ANYINT,
    U1:IN:0 = B:14 VAR: hw_const#0 DATATYPE: ANYINT,
    B:30 = U1:OUT:0 INSTR_LOG:1|const#-1#||0 VAR: const#-1 DATATYPE: ANYINT,
    RF:5:IN:0:REG:2 = B:30 STAGE:-1 VAR: const#-1 DATATYPE: ANYINT,
    RF:11:IN:0:REG:1 = B:30 STAGE:-1 VAR: const#-1 DATATYPE: ANYINT,
    RF:9:IN:0:REG:1 = B:30 STAGE:-1 VAR: const#-1 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|const#0x88318820#||0 VAR: const#0x88318820 DATATYPE: ANYINT,
    RF:13:IN:0:REG:1 = B:27 STAGE:-1 VAR: const#0x88318820 DATATYPE: ANYINT,
    RF:12:IN:0:REG:2 = B:27 STAGE:-1 VAR: const#0x88318820 DATATYPE: ANYINT,
    B:49 = U8:OUT:0 INSTR_LOG:1|jb_row2#113#||0 VAR: jb_row2#113 DATATYPE: UNDEFINED,
    RF:19:IN:0:REG:3 = B:49 STAGE:-1 VAR: jb_row2#113 DATATYPE: UNDEFINED,
    //  IN:ADDER_1: ( const#-1 ) = NOT( hw_const#0 == UNITRF_0_3[0] )
    // OUT:ADDER_1: NOT => ( const#-1 == UNITRF_0_4[2], const#-1 == MULRF_0_1[1], const#-1 == UNITRF_1_3[1] )
    //  IN:COMM_SCHED_0: ( const#0x88318820 ) = COMMUCDATA( hw_const#8 == PERMRF_0[0], hw_const#0 == UNITRF_0_1[0], uc_const#0x88318820 == UCRF_0[3] )
    // OUT:COMM_SCHED_0: COMMUCDATA => ( const#0x88318820 == MULRF_1_1[1], const#0x88318820 == MULRF_1_0[2] )
    // OUT:JUKEBOX_SCHED_0: INIT_CISTATE => ( jb_row2#113 == JBRF_0[3] )
    DEAD_REGS: {  };
instr: 4
    MC: OP: NONE LINE:-1,
    U2: OP: SHIFT32 LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U7: OP: SELECT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U8: OP: INIT_COSTATE LINE:34 STR_ID:4 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:34
    B:16 = RF:5:OUT:0:REG:1 VAR: const#1 DATATYPE: ANYINT,
    U2:IN:0 = B:16 VAR: const#1 DATATYPE: ANYINT,
    B:17 = RF:9:OUT:0:REG:0 VAR: hw_const#1 DATATYPE: ANYINT,
    U2:IN:1 = B:17 VAR: hw_const#1 DATATYPE: ANYINT,
    B:31 = U2:OUT:0 INSTR_LOG:1|const#2#||0 VAR: const#2 DATATYPE: ANYINT,
    RF:3:IN:0:REG:3 = B:31 STAGE:-1 VAR: const#2 DATATYPE: ANYINT,
    RF:8:IN:0:REG:3 = B:31 STAGE:-1 VAR: const#2 DATATYPE: ANYINT,
    RF:7:IN:0:REG:2 = B:31 STAGE:-1 VAR: const#2 DATATYPE: ANYINT,
    RF:4:IN:0:REG:2 = B:31 STAGE:-1 VAR: const#2 DATATYPE: ANYINT,
    RF:10:IN:0:REG:3 = B:31 STAGE:-1 VAR: const#2 DATATYPE: ANYINT,
    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:5:IN:0:REG:3 = B:27 STAGE:-1 VAR: const#8 DATATYPE: ANYINT,
    RF:9:IN:0:REG:3 = B:27 STAGE:-1 VAR: const#8 DATATYPE: ANYINT,
    B:49 = U8:OUT:0 INSTR_LOG:1|jb_motions_out#115#||0 VAR: jb_motions_out#115 DATATYPE: UNDEFINED,
    RF:19:IN:0:REG:4 = B:49 STAGE:-1 VAR: jb_motions_out#115 DATATYPE: UNDEFINED,
    //  IN:ADDER_2: ( const#2 ) = SHIFT32( const#1 == UNITRF_0_4[1], hw_const#1 == UNITRF_1_3[0] )
    // OUT:ADDER_2: SHIFT32 => ( const#2 == UNITRF_0_2[3], const#2 == UNITRF_1_2[3], const#2 == UNITRF_1_1[2], const#2 == UNITRF_0_3[2], const#2 == MULRF_0_0[3] )
    //  IN:COMM_SCHED_0: ( const#8 ) = SELECT( hw_const#0 == CCRF_0[0], hw_const#8 == PERMRF_0[0] )
    // OUT:COMM_SCHED_0: SELECT => ( const#8 == UNITRF_0_4[3], const#8 == UNITRF_1_3[3] )
    // OUT:JUKEBOX_SCHED_0: INIT_COSTATE => ( jb_motions_out#115 == JBRF_0[4] )
    DEAD_REGS: {  };
instr: 5
    MC: OP: SYNCH LINE:39,
    U2: OP: SHIFT32 LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U1: OP: NOT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    B:16 = RF:5:OUT:0:REG:3 VAR: const#8 DATATYPE: ANYINT,
    U2:IN:0 = B:16 VAR: const#8 DATATYPE: ANYINT,
    B:17 = RF:9:OUT:0:REG:0 VAR: hw_const#1 DATATYPE: ANYINT,
    U2:IN:1 = B:17 VAR: hw_const#1 DATATYPE: ANYINT,
    B:31 = U2:OUT:0 INSTR_LOG:1|const#16#||0 VAR: const#16 DATATYPE: ANYINT,
    RF:4:IN:0:REG:1 = B:31 STAGE:-1 VAR: const#16 DATATYPE: ANYINT,
    RF:8:IN:0:REG:2 = B:31 STAGE:-1 VAR: const#16 DATATYPE: ANYINT,
    RF:12:IN:0:REG:3 = B:31 STAGE:-1 VAR: const#16 DATATYPE: ANYINT,
    RF:7:IN:0:REG:1 = B:31 STAGE:-1 VAR: const#16 DATATYPE: ANYINT,
    RF:9:IN:0:REG:2 = B:31 STAGE:-1 VAR: const#16 DATATYPE: ANYINT,
    RF:5:IN:0:REG:1 = B:31 STAGE:-1 VAR: const#16 DATATYPE: ANYINT,
    B:14 = RF:4:OUT:0:REG:1 VAR: const#1 DATATYPE: ANYINT,
    U1:IN:0 = B:14 VAR: const#1 DATATYPE: ANYINT,
    B:30 = U1:OUT:0 INSTR_LOG:1|const#-2#||0 VAR: const#-2 DATATYPE: ANYINT,
    RF:3:IN:0:REG:1 = B:30 STAGE:-1 VAR: const#-2 DATATYPE: ANYINT,
    RF:2:IN:0:REG:1 = B:30 STAGE:-1 VAR: const#-2 DATATYPE: ANYINT,
    RF:11:IN:0:REG:3 = B:30 STAGE:-1 VAR: const#-2 DATATYPE: ANYINT,
    RF:10:IN:0:REG:2 = B:30 STAGE:-1 VAR: const#-2 DATATYPE: ANYINT,
    //  IN:ADDER_2: ( const#16 ) = SHIFT32( const#8 == UNITRF_0_4[3], hw_const#1 == UNITRF_1_3[0] )
    // OUT:ADDER_2: SHIFT32 => ( const#16 == UNITRF_0_3[1], const#16 == UNITRF_1_2[2], const#16 == MULRF_1_0[3], const#16 == UNITRF_1_1[1], const#16 == UNITRF_1_3[2], const#16 == UNITRF_0_4[1] )
    //  IN:ADDER_1: ( const#-2 ) = NOT( const#1 == UNITRF_0_3[1] )
    // OUT:ADDER_1: NOT => ( const#-2 == UNITRF_0_2[1], const#-2 == UNITRF_0_1[1], const#-2 == MULRF_0_1[3], const#-2 == MULRF_0_0[2] )
    DEAD_REGS: {  };
instr: 6
    MC: OP: NONE LINE:-1,
    U1: OP: NOT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U2: OP: SHIFT32 LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U0: OP: SHIFT32 LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    B:14 = RF:4:OUT:0:REG:1 VAR: const#16 DATATYPE: ANYINT,
    U1:IN:0 = B:14 VAR: const#16 DATATYPE: ANYINT,
    B:30 = U1:OUT:0 INSTR_LOG:1|const#-17#||0 VAR: const#-17 DATATYPE: ANYINT,
    RF:5:IN:0:REG:2 = B:30 STAGE:-1 VAR: const#-17 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#8 DATATYPE: ANYINT,
    U2:IN:1 = B:17 VAR: const#8 DATATYPE: ANYINT,
    B:31 = U2:OUT:0 INSTR_LOG:1|const#-256#||0 VAR: const#-256 DATATYPE: ANYINT,
    RF:3:IN:0:REG:1 = B:31 STAGE:-1 VAR: const#-256 DATATYPE: ANYINT,
    B:12 = RF:3:OUT:0:REG:1 VAR: const#-2 DATATYPE: ANYINT,
    U0:IN:0 = B:12 VAR: const#-2 DATATYPE: ANYINT,
    B:13 = RF:7:OUT:0:REG:2 VAR: const#2 DATATYPE: ANYINT,
    U0:IN:1 = B:13 VAR: const#2 DATATYPE: ANYINT,
    B:29 = U0:OUT:0 INSTR_LOG:1|const#-8#||0 VAR: const#-8 DATATYPE: ANYINT,
    RF:7:IN:0:REG:3 = B:29 STAGE:-1 VAR: const#-8 DATATYPE: ANYINT,
    RF:9:IN:0:REG:3 = B:29 STAGE:-1 VAR: const#-8 DATATYPE: ANYINT,
    RF:8:IN:0:REG:6 = B:29 STAGE:-1 VAR: const#-8 DATATYPE: ANYINT,
    //  IN:ADDER_1: ( const#-17 ) = NOT( const#16 == UNITRF_0_3[1] )
    // OUT:ADDER_1: NOT => ( const#-17 == UNITRF_0_4[2] )
    //  IN:ADDER_2: ( const#-256 ) = SHIFT32( const#-1 == UNITRF_0_4[2], const#8 == UNITRF_1_3[3] )
    // OUT:ADDER_2: SHIFT32 => ( const#-256 == UNITRF_0_2[1] )
    //  IN:ADDER_0: ( const#-8 ) = SHIFT32( const#-2 == UNITRF_0_2[1], const#2 == UNITRF_1_1[2] )
    // OUT:ADDER_0: SHIFT32 => ( const#-8 == UNITRF_1_1[3], const#-8 == UNITRF_1_3[3], const#-8 == UNITRF_1_2[6] )
    DEAD_REGS: {  };
instr: 7
    MC: OP: NONE LINE:-1 UCRF_RD:1,
    U2: OP: AND LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U3: OP: SELECT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    U7: OP: COMMUCDATA LINE:40 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:40
    U0: OP: NOT LINE:-1 STAGE:-1, // D:\working\im_apps\h264\me_fast_search4_kc.i:-1
    B:16 = RF:5:OUT:0:REG:2 VAR: const#-17 DATATYPE: ANYINT,
    U2:IN:0 = B:16 VAR: const#-17 DATATYPE: ANYINT,
    B:17 = RF:9:OUT:0:REG:3 VAR: const#-8 DATATYPE: ANYINT,
    U2:IN:1 = B:17 VAR: const#-8 DATATYPE: ANYINT,
    B:31 = U2:OUT:0 INSTR_LOG:1|const#-24#||0 VAR: const#-24 DATATYPE: ANYINT,
    RF:7:IN:0:REG:2 = B:31 STAGE:-1 VAR: const#-24 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:19 = RF:12:OUT:0:REG:0 VAR: hw_const#1 DATATYPE: ANYINT,
    U3:IN:1 = B:19 VAR: hw_const#1 DATATYPE: ANYINT,
    B:33 = U3:OUT:1 INSTR_LOG:1|const#1#||1 VAR: const#1 DATATYPE: ANYINT,
    RF:4:IN:0:REG:3 = B:33 STAGE:-1 VAR: const#1 DATATYPE: ANYINT,
    B:9 = RF:15:OUT:0:REG:0 VAR: hw_const#8 DATATYPE: ANYINT,

⌨️ 快捷键说明

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