digit_asm.h
来自「A Library of Efficient Data Types and Al」· C头文件 代码 · 共 112 行
H
112 行
/*******************************************************************************++ LEDA 4.5 +++ digit_asm.h+++ Copyright (c) 1995-2004+ by Algorithmic Solutions Software GmbH+ All rights reserved.+ *******************************************************************************/// $Revision: 1.3 $ $Date: 2004/02/06 11:19:33 $#ifndef _DIGIT_ASM_H#define _DIGIT_ASM_HLEDA_BEGIN_NAMESPACEtypedef unsigned long digit;typedef unsigned int digit_sz;#ifdef ASM_SPARC#if defined(__sparcv9)#error no assembbler for sparcv9#endif#define digMul digMul_v8#define vecMulInnerLoop vecMulLoop_v8#define vecMulLoopFirst vecMulLoopFirst_v8#define vecMulLoopNext vecMulLoopNext_v8#define vecDivInnerLoop vecDivLoop_v8#define vecAdd vecAdd_v8#define vecAddTo vecAddTo_v8#define vecSub vecSub_v8#define vecSubFrom vecSubFrom_v8#define digMul_asm #define vecMulLoop_asm#define vecDivLoop_asm#define vecAdd_asm#define vecAddTo_asm#define vecSub_asm#define vecSubFrom_asm extern "C" digit_sz vecAdd(digit* a,digit_sz n,digit* b,digit_sz m,digit* sum);extern "C" digit_sz vecAddTo(digit*,digit_sz,digit*,digit_sz);extern "C" void vecSub(digit*,digit_sz,digit*,digit_sz,digit*);extern "C" void vecSubFrom(digit*,digit_sz,digit*,digit_sz);extern "C" digit digMul(digit a, digit b, digit* high);extern "C" digit vecMulInnerLoop(digit* p, digit* a, digit* a_stop, digit B);extern "C" digit vecDivInnerLoop(digit* p, digit* a, digit* a_stop, digit B);extern "C" digit vecMulLoopFirst(digit* p, digit* a, digit* a_stop, digit B);extern "C" digit vecMulLoopNext(digit* p, digit* a, digit* a_stop, digit B);#endif#ifdef ASM_INTEL_386#define digMul digMul_i386#define vecMulInnerLoop vecMulInnerLoop_i386#define vecMulLoopFirst vecMulLoopFirst_i386#define vecMulLoopFinish vecMulLoopFinish_i386#define vecDivInnerLoop vecDivInnerLoop_i386#define vecAdd vecAdd_i386#define vecAddTo vecAddTo_i386#define vecSub vecSub_i386#define vecSubFrom vecSubFrom_i386#define digMul_asm#define vecMulLoop_asm#define vecDivLoop_asm#define vecAdd_asm#define vecAddTo_asm#define vecSub_asm#define vecSubFrom_asmextern "C" digit digMul(digit a, digit b, digit* high);extern "C" digit vecMulInnerLoop(digit* p, digit* a, digit* a_stop, digit B);extern "C" digit vecDivInnerLoop(digit* p, digit* a, digit* a_stop, digit B);extern "C" digit_sz vecAdd(digit* a,digit_sz n,digit* b,digit_sz m,digit* sum);extern "C" digit_sz vecAddTo(digit*,digit_sz,digit*,digit_sz);extern "C" void vecSub(digit*,digit_sz,digit*,digit_sz,digit*);extern "C" void vecSubFrom(digit*,digit_sz,digit*,digit_sz);extern "C" digit vecMulLoopFirst(digit*, digit*, digit*, digit);extern "C" digit vecMulLoopFinish(digit*,digit*,digit*,digit*,digit*);#endif#ifdef ASM_MIPS_64 #define digMul digMul_mips64#define digMul_asmextern "C" digit digMul(digit a, digit b, digit* high);#endif#ifdef ASM_ALPHA #define digMul digMul_alpha#define digMul_asmextern "C" digit digMul(digit a, digit b, digit* high);#endifLEDA_END_NAMESPACE#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?