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 + -
显示快捷键?