URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [config/] [vax/] [lib1funcs.asm] - Rev 282
Compare with Previous | Blame | View Log
/* Copyright (C) 2009 Free Software Foundation, Inc.This file is part of GCC.Contributed by Maciej W. Rozycki <macro@linux-mips.org>.This file is free software; you can redistribute it and/or modify itunder the terms of the GNU General Public License as published by theFree Software Foundation; either version 3, or (at your option) anylater version.This file is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNUGeneral Public License for more details.Under Section 7 of GPL version 3, you are granted additionalpermissions described in the GCC Runtime Library Exception, version3.1, as published by the Free Software Foundation.You should have received a copy of the GNU General Public License anda copy of the GCC Runtime Library Exception along with this program;see the files COPYING3 and COPYING.RUNTIME respectively. If not, see<http://www.gnu.org/licenses/>. */#ifdef L_udivsi3.text.globl __udivsi3.type __udivsi3, @function__udivsi3:.word 0movl 8(%ap), %r1blss 0f /* Check bit #31 of divisor. */movl 4(%ap), %r2blss 1f /* Check bit #31 of dividend. *//* Both zero, do a standard division. */divl3 %r1, %r2, %r0ret/* MSB of divisor set, only 1 or 0 may result. */0:decl %r1clrl %r0cmpl %r1, 4(%ap)adwc $0, %r0ret/* MSB of dividend set, do an extended division. */1:clrl %r3ediv %r1, %r2, %r0, %r3ret.size __udivsi3, . - __udivsi3.previous#endif#ifdef L_umodsi3.text.globl __umodsi3.type __umodsi3, @function__umodsi3:.word 0movl 8(%ap), %r1blss 0f /* Check bit #31 of divisor. */movl 4(%ap), %r2blss 1f /* Check bit #31 of dividend. *//* Both zero, do a standard division. */divl3 %r1, %r2, %r0mull2 %r0, %r1subl3 %r1, %r2, %r0ret/* MSB of divisor set, subtract the divisor at most once. */0:movl 4(%ap), %r2clrl %r0cmpl %r2, %r1sbwc $0, %r0bicl2 %r0, %r1subl3 %r1, %r2, %r0ret/* MSB of dividend set, do an extended division. */1:clrl %r3ediv %r1, %r2, %r3, %r0ret.size __umodsi3, . - __umodsi3.previous#endif
