aboutsummaryrefslogtreecommitdiffstats
path: root/arch/v850/lib/negdi2.c
blob: 571e04fc619a6b75379bb4702aed8c104ffece69 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*
 * arch/v850/lib/negdi2.c -- 64-bit negation
 *
 *  Copyright (C) 2001  NEC Corporation
 *  Copyright (C) 2001  Miles Bader <miles@gnu.org>
 *
 * This file is subject to the terms and conditions of the GNU General
 * Public License.  See the file COPYING in the main directory of this
 * archive for more details.
 *
 * Written by Miles Bader <miles@gnu.org>
 */

typedef		 int DItype	__attribute__ ((mode (DI)));

DItype __negdi2 (DItype x)
{
	__asm__ __volatile__
		("not	r6, r10;"
		 "add	1, r10;"
		 "setf	c, r6;"
		 "not	r7, r11;"
		 "add	r6, r11"
		 ::: "r6", "r7", "r10", "r11");
}