cmovd.c

来自「linux下的gcc编译器」· C语言 代码 · 共 48 行

C
48
字号
/* Move double-word library function.   Copyright (C) 2000 Free Software Foundation, Inc.   Contributed by Red Hat, Inc.     This file is part of GNU CC.     GNU CC 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, or (at your option)   any later version.     GNU CC is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY ; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.     You should have received a copy of the GNU General Public License   along with GNU CC; see the file COPYING.  If not, write to   the Free Software Foundation, 59 Temple Place - Suite 330,   Boston, MA 02111-1307, USA.  */void__cmovd (long long *dest, const long long *src, unsigned len){  unsigned i;  unsigned num = len >> 3;  unsigned xlen = len & ~7;  char *dest_byte = (char *)dest;  const char *src_byte = (const char *)src;  if (dest_byte < src_byte || dest_byte > src_byte+len)    {      for (i = 0; i < num; i++)	dest[i] = src[i];      while (len > xlen)	{	  dest_byte[xlen] = src_byte[xlen];	  xlen++;	}    }  else    {      while (len-- > 0)	dest_byte[len] = src_byte[len];    }}

⌨️ 快捷键说明

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