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

📄 assign_compare_macros.uc

📁 国内还比较新的network processor的微代码开发
💻 UC
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------
//
//                  I N T E L   P R O P R I E T A R Y
//
//     COPYRIGHT [c]  2001 BY  INTEL  CORPORATION.  ALL RIGHTS
//     RESERVED.   NO  PART  OF THIS PROGRAM  OR  PUBLICATION  MAY
//     BE  REPRODUCED,   TRANSMITTED,   TRANSCRIBED,   STORED  IN  A
//     RETRIEVAL SYSTEM, OR TRANSLATED INTO ANY LANGUAGE OR COMPUTER
//     LANGUAGE IN ANY FORM OR BY ANY MEANS, ELECTRONIC, MECHANICAL,
//     MAGNETIC,  OPTICAL,  CHEMICAL, MANUAL, OR OTHERWISE,  WITHOUT
//     THE PRIOR WRITTEN PERMISSION OF :
//
//                        INTEL  CORPORATION
//
//                     2200 MISSION COLLEGE BLVD
//
//               SANTA  CLARA,  CALIFORNIA  95052-8119
//
//---------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////
//
//
//      File Name: assign_compare_macros.uc
//
//      Purpose: macros to assign and compare data 
//
//      History:
//
//
//      Date            Comment                         By
//      ---------------------------------------------------------------------
//
//      10/18/2001      Created                         David Chou
//
//
/////////////////////////////////////////////////////////////////////////////

#ifndef ASSIGN_COMPARE_MACROS_UC
#define ASSIGN_COMPARE_MACROS_UC

/////////////////////////////////////////////////////////////////////////////
// assign_1_inc_src
//
//	Description: assign input src to output out_data_0, and increase src by one
//
//	Output:
//			out_data_0			GPR 32-bit word
//
//	Input/output:
//			src					GPR 32-bit word
//
//	Size:
//		2 instructions
//
#macro assign_1_inc_src[src, out_data_0]
	alu[out_data_0, --, b, src]			; assign src to out_data_0
    alu[src, src, +, 1]                 ; increase src by one
#endm


/////////////////////////////////////////////////////////////////////////////
// assign_2
//
//	Description: assign input src to output out_data_0, and increase src by one,
//               then assign src to output out_data_1, then increase src by one
//
//	Output:
//			out_data_0			GPR 32-bit word
//			out_data_1			GPR 32-bit word
//
//	Input/output:
//			src					GPR 32-bit word
//
//	Size:
//		4 instructions
//
#macro assign_2[src, out_data_0, out_data_1]
    assign_1_inc_src[src, out_data_0]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_1]	; call macro assign_1_inc_src
#endm


/////////////////////////////////////////////////////////////////////////////
// assign_3
//
//	Description: assign input src to output out_data_0, and increase src by one,
//               then assign src to output out_data_1, then increase src by one,
//               then assign src to output out_data_2, then increase src by one
//
//	Output:
//			out_data_0			GPR 32-bit word
//			out_data_1			GPR 32-bit word
//			out_data_2			GPR 32-bit word
//
//	Input/output:
//			src					GPR 32-bit word
//
//	Size:
//		6 instructions
//
#macro assign_3[src, out_data_0, out_data_1, out_data_2]
    assign_1_inc_src[src, out_data_0]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_1]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_2]	; call macro assign_1_inc_src
#endm

/////////////////////////////////////////////////////////////////////////////
// assign_4
//
//	Description: assign input src to output out_data_0, and increase src by one,
//               then assign src to output out_data_1, then increase src by one,
//               then assign src to output out_data_2, then increase src by one,
//               then assign src to output out_data_3, then increase src by one
//
//	Output:
//			out_data_0			GPR 32-bit word
//			out_data_1			GPR 32-bit word
//			out_data_2			GPR 32-bit word
//			out_data_3			GPR 32-bit word
//
//	Input/output:
//			src					GPR 32-bit word
//
//	Size:
//		8 instructions
//
#macro assign_4[src, out_data_0, out_data_1, out_data_2, out_data_3]
    assign_1_inc_src[src, out_data_0]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_1]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_2]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_3]	; call macro assign_1_inc_src
#endm

/////////////////////////////////////////////////////////////////////////////
// assign_5
//
//	Description: assign input src to output out_data_0, and increase src by one,
//               then assign src to output out_data_1, then increase src by one,
//               then assign src to output out_data_2, then increase src by one,
//               then assign src to output out_data_3, then increase src by one,
//               then assign src to output out_data_4, then increase src by one
//
//	Output:
//			out_data_0			GPR 32-bit word
//			out_data_1			GPR 32-bit word
//			out_data_2			GPR 32-bit word
//			out_data_3			GPR 32-bit word
//			out_data_4			GPR 32-bit word
//
//	Input/output:
//			src					GPR 32-bit word
//
//	Size:
//		10 instructions
//
#macro assign_5[src, out_data_0, out_data_1, out_data_2, out_data_3, out_data_4]
    assign_1_inc_src[src, out_data_0]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_1]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_2]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_3]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_4]	; call macro assign_1_inc_src
#endm

/////////////////////////////////////////////////////////////////////////////
// assign_6
//
//	Description: assign input src to output out_data_0, and increase src by one,
//               then assign src to output out_data_1, then increase src by one,
//               then assign src to output out_data_2, then increase src by one,
//               then assign src to output out_data_3, then increase src by one,
//               then assign src to output out_data_4, then increase src by one,
//               then assign src to output out_data_5, then increase src by one

//
//	Output:
//			out_data_0			GPR 32-bit word
//			out_data_1			GPR 32-bit word
//			out_data_2			GPR 32-bit word
//			out_data_3			GPR 32-bit word
//			out_data_4			GPR 32-bit word
//			out_data_5			GPR 32-bit word

//
//	Input/output:
//			src					GPR 32-bit word
//
//	Size:
//		12 instructions
//
#macro assign_6[src, out_data_0, out_data_1, out_data_2, out_data_3, out_data_4, out_data_5]
    assign_1_inc_src[src, out_data_0]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_1]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_2]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_3]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_4]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_5]	; call macro assign_1_inc_src
#endm

/////////////////////////////////////////////////////////////////////////////
// assign_7
//
//	Description: assign input src to output out_data_0, and increase src by one,
//               then assign src to output out_data_1, then increase src by one,
//               then assign src to output out_data_2, then increase src by one,
//               then assign src to output out_data_3, then increase src by one,
//               then assign src to output out_data_4, then increase src by one,
//               then assign src to output out_data_5, then increase src by one,
//               then assign src to output out_data_6, then increase src by one
//
//	Output:
//			out_data_0			GPR 32-bit word
//			out_data_1			GPR 32-bit word
//			out_data_2			GPR 32-bit word
//			out_data_3			GPR 32-bit word
//			out_data_4			GPR 32-bit word
//			out_data_5			GPR 32-bit word
//			out_data_6			GPR 32-bit word
//
//	Input/output:
//			src					GPR 32-bit word
//
//	Size:
//		14 instructions
//
#macro assign_7[src, out_data_0, out_data_1, out_data_2, out_data_3, out_data_4, out_data_5, out_data_6]
    assign_1_inc_src[src, out_data_0]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_1]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_2]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_3]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_4]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_5]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_6]	; call macro assign_1_inc_src
#endm

/////////////////////////////////////////////////////////////////////////////
// assign_8
//
//	Description: assign input src to output out_data_0, and increase src by one,
//               then assign src to output out_data_1, then increase src by one,
//               then assign src to output out_data_2, then increase src by one,
//               then assign src to output out_data_3, then increase src by one,
//               then assign src to output out_data_4, then increase src by one,
//               then assign src to output out_data_5, then increase src by one,
//               then assign src to output out_data_6, then increase src by one,
//               then assign src to output out_data_7, then increase src by one
//
//	Output:
//			out_data_0			GPR 32-bit word
//			out_data_1			GPR 32-bit word
//			out_data_2			GPR 32-bit word
//			out_data_3			GPR 32-bit word
//			out_data_4			GPR 32-bit word
//			out_data_5			GPR 32-bit word
//			out_data_6			GPR 32-bit word
//			out_data_7			GPR 32-bit word
//
//	Input/output:
//			src					GPR 32-bit word
//
//	Size:
//		16 instructions
//
#macro assign_8[src, out_data_0, out_data_1, out_data_2, out_data_3, out_data_4, out_data_5, out_data_6, out_data_7]
    assign_1_inc_src[src, out_data_0]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_1]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_2]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_3]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_4]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_5]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_6]	; call macro assign_1_inc_src
    assign_1_inc_src[src, out_data_7]	; call macro assign_1_inc_src

⌨️ 快捷键说明

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