📄 assign_compare_macros.uc
字号:
//---------------------------------------------------------------------------
//
// 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 + -