re PR inline-asm/61692 (ICE in extract_insn in recog.c for asm with many parameters)
[official-gcc.git] / libgcc / config / rl78 / signbit.S
blob55f63a471e24eec83f601d498178dbfb616ad36c
1 ;   Copyright (C) 2012-2014 Free Software Foundation, Inc.
2 ;   Contributed by Red Hat.
3
4 ; This file is free software; you can redistribute it and/or modify it
5 ; under the terms of the GNU General Public License as published by the
6 ; Free Software Foundation; either version 3, or (at your option) any
7 ; later version.
8
9 ; This file is distributed in the hope that it will be useful, but
10 ; WITHOUT ANY WARRANTY; without even the implied warranty of
11 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 ; General Public License for more details.
13
14 ; Under Section 7 of GPL version 3, you are granted additional
15 ; permissions described in the GCC Runtime Library Exception, version
16 ; 3.1, as published by the Free Software Foundation.
18 ; You should have received a copy of the GNU General Public License and
19 ; a copy of the GCC Runtime Library Exception along with this program;
20 ; see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
21 ; <http://www.gnu.org/licenses/>.
23 #include "vregs.h"
24         
25 ;; int signbitf (float X)
26 ;; int signbit  (double X)
27 ;; int signbitl (long double X)
29 ;;     `signbit' returns a nonzero value if the value of X has its sign
30 ;;     bit set.
32 ;;     This is not the same as `x < 0.0', because IEEE 754 floating point
33 ;;     allows zero to be signed.  The comparison `-0.0 < 0.0' is false,
34 ;;     but `signbit (-0.0)' will return a nonzero value.
36 ;----------------------------------------------------------------------
38         .text
40         .global _signbit
41 _signbit:
42         .global _signbitf
43 _signbitf:
44         ;; X is at [sp+4]
45         ;; result is in R8..R9
47         movw    r8, #0
48         mov     a, [sp+7]
49         mov1    cy, a.7
50         sknc
51         movw    r8, #1
52         ret
53         .size   _signbit, . - _signbit
54         .size   _signbitf, . - _signbitf
56         .global _signbitl
57 _signbitl:
58         ;; X is at [sp+4]
59         ;; result is in R8..R9
61         movw    r8, #0
62         mov     a, [sp+11]
63         mov1    cy, a.7
64         sknc
65         movw    r8, #1
66         ret
67         .size   _signbitl, . - _signbitl