diff options
Diffstat (limited to 'qemu/roms/openbios/libgcc/__lshrdi3.c')
-rw-r--r-- | qemu/roms/openbios/libgcc/__lshrdi3.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/qemu/roms/openbios/libgcc/__lshrdi3.c b/qemu/roms/openbios/libgcc/__lshrdi3.c deleted file mode 100644 index 4c1a38cd5..000000000 --- a/qemu/roms/openbios/libgcc/__lshrdi3.c +++ /dev/null @@ -1,59 +0,0 @@ -/* lshrdi3.c extracted from gcc-2.7.2/libgcc2.c which is: */ -/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, 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, 51 Franklin St, Fifth Floor, Boston, -MA 02110-1301, USA. */ - -#include "libgcc.h" - -#define BITS_PER_UNIT 8 - -struct DIstruct {SItype high, low;}; - -typedef union -{ - struct DIstruct s; - DItype ll; -} DIunion; - -DItype -__lshrdi3 (DItype u, word_type b) -{ - DIunion w; - word_type bm; - DIunion uu; - - if (b == 0) - return u; - - uu.ll = u; - - bm = (sizeof (SItype) * BITS_PER_UNIT) - b; - if (bm <= 0) - { - w.s.high = 0; - w.s.low = (USItype)uu.s.high >> -bm; - } - else - { - USItype carries = (USItype)uu.s.high << bm; - w.s.high = (USItype)uu.s.high >> b; - w.s.low = ((USItype)uu.s.low >> b) | carries; - } - - return w.ll; -} |