ia64_cpuid.s
来自「最著名最快的分子模拟软件」· S 代码 · 共 179 行
S
179 行
/* * $Id: ia64_cpuid.S,v 1.1 2005/02/09 09:09:34 lindahl Exp $ * * Gromacs 4.0 Copyright (c) 1991-2003 * David van der Spoel, Erik Lindahl, University of Groningen. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * To help us fund GROMACS development, we humbly ask that you cite * the research papers on the package. Check out http://www.gromacs.org * * And Hey: * Gnomes, ROck Monsters And Chili Sauce */#ifdef HAVE_CONFIG_H#include <config.h>#endif#define zero r0 /* permanent zero */#define gp r1 /* global data pointer */#define at0 r2 /* temp, target of addi */#define at1 r3 /* temp, target of addi */#define S0 r4 /* callee saves register */#define S1 r5 /* callee saves register */#define S2 r6 /* callee saves register */#define S3 r7 /* callee saves register */#define v0 r8 /* 1st fixed point return value/ptr */#define v1 r9 /* 2nd fixed return value/ptr */#define v2 r10 /* 3rd fixed return value/ptr */#define v3 r11 /* 4th fixed return value/ptr */#define sp r12 /* memory stack pointer */#define tp r13 /* thread pointer */#define t0 r14 /* caller saves register */#define t1 r15 /* caller saves register */#define t2 r16 /* caller saves register */#define t3 r17 /* caller saves register */#define t4 r18 /* caller saves register */#define t5 r19 /* caller saves register */#define t6 r20 /* caller saves register */#define t7 r21 /* caller saves register */#define t8 r22 /* caller saves register */#define t9 r23 /* caller saves register */#define t10 r24 /* caller saves register */#define t11 r25 /* caller saves register */#define t12 r26 /* caller saves register */#define t13 r27 /* caller saves register */#define t14 r28 /* caller saves register */#define t15 r29 /* caller saves register */#define t16 r30 /* caller saves register */#define t17 r31 /* caller saves register */#define fZero f0 /* permanent floating point 0.0 */#define fOne f1 /* permanent floating point 1.0 */#define fs0 f2 /* callee saves register */#define fs1 f3 /* callee saves register */#define fs2 f4 /* callee saves register */#define fs3 f5 /* callee saves register */ #define ft0 f6 /* caller saves register */#define ft1 f7 /* caller saves register */#define fa0 f8 /* argument register 0 */#define fa1 f9 /* argument register 1 */#define fa2 f10 /* argument register 2 */#define fa3 f11 /* argument register 3 */#define fa4 f12 /* argument register 4 */#define fa5 f13 /* argument register 5 */#define fa6 f14 /* argument register 6 */#define fa7 f15 /* argument register 7 */#define fv0 f8 /* return value register 0 */#define fv1 f9 /* return value register 1 */#define fv2 f10 /* return value register 2 */#define fv3 f11 /* return value register 3 */#define fv4 f12 /* return value register 4 */#define fv5 f13 /* return value register 5 */#define fv6 f14 /* return value register 6 */#define fv7 f15 /* return value register 7 */#define fs4 f16 /* callee saves register */#define fs5 f17 /* callee saves register */#define fs6 f18 /* callee saves register */#define fs7 f19 /* callee saves register */#define fs8 f20 /* callee saves register */#define fs9 f21 /* callee saves register */#define fs10 f22 /* callee saves register */#define fs11 f23 /* callee saves register */#define fs12 f24 /* callee saves register */#define fs13 f25 /* callee saves register */#define fs14 f26 /* callee saves register */#define fs15 f27 /* callee saves register */#define fs16 f28 /* callee saves register */#define fs17 f29 /* callee saves register */#define fs18 f30 /* callee saves register */#define fs19 f31 /* callee saves register */#define pone p0 /* permanent one predicate */#define pTrue p0 /* permanent one predicate */#define ps0 p1 /* callee saves predicate */#define ps1 p2 /* callee saves predicate */#define ps2 p3 /* callee saves predicate */#define ps3 p4 /* callee saves predicate */#define ps4 p5 /* callee saves predicate */#define pt0 p6 /* caller saves predicate */#define pt1 p7 /* caller saves predicate */#define pt2 p8 /* caller saves predicate */#define pt3 p9 /* caller saves predicate */#define pt4 p10 /* caller saves predicate */#define pt5 p11 /* caller saves predicate */#define pt6 p12 /* caller saves predicate */#define pt7 p13 /* caller saves predicate */#define pt8 p14 /* caller saves predicate */#define pt9 p15 /* caller saves predicate */#define rb b0 /* return link */#define bs0 b1 /* callee saves branch register */#define bs1 b2 /* callee saves branch register */#define bs2 b3 /* callee saves branch register */#define bs3 b4 /* callee saves branch register */#define bs4 b5 /* callee saves branch register */ #define bt0 b6 /* caller saves branch register */#define bt1 b7 /* caller saves branch register */ .text#define _NINPUTS 1#define _NLOCALS 0#define _NOUTPUT 0 .regstk 1, 0, 0, 0// The mutex call parameter isnt used at all in assembly... .global ia64_cpuid .proc ia64_cpuid .align 32ia64_cpuid: { .mfi alloc at0 = ar.pfs, 1,0,0,0 nop 0x0 nop 0x0 } ;; { .mfb mov r8 = cpuid[in0] nop 0x0 br.ret.sptk.few rp } ;; .endp ia64_cpuid
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?