OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc1/] [newlib/] [libc/] [machine/] [h8500/] [divhi3.S] - Diff between revs 207 and 345

Only display areas with differences | Details | Blame | View Log

Rev 207 Rev 345
        .title "H8/500 DIVIDE"
        .title "H8/500 DIVIDE"
!! 2 byte integer Divide code for the H8/500
!! 2 byte integer Divide code for the H8/500
!!
!!
!! Steve Chamberlain
!! Steve Chamberlain
!! sac@cygnus.com
!! sac@cygnus.com
!!
!!
!!
!!
!! args in r1 and r4, result in r0/r1
!! args in r1 and r4, result in r0/r1
#if __CODE__==32
#if __CODE__==32
#define RET prts
#define RET prts
#else
#else
#define RET rts
#define RET rts
#endif
#endif
        .global __divmodhi4
        .global __divmodhi4
__divmodhi4:
__divmodhi4:
        clr.w   r0
        clr.w   r0
        tst.w   r1      ! neg arg1
        tst.w   r1      ! neg arg1
        bpl     PU
        bpl     PU
        neg.w   r1
        neg.w   r1
NU:     tst.w   r4
NU:     tst.w   r4
        bmi     NN
        bmi     NN
NP:     divxu.w r4,r0
NP:     divxu.w r4,r0
        neg.w   r0
        neg.w   r0
        neg.w   r1
        neg.w   r1
        RET
        RET
NN:     neg.w   r4
NN:     neg.w   r4
        divxu.w r4,r0
        divxu.w r4,r0
        neg.w   r0      ! get rem sign right
        neg.w   r0      ! get rem sign right
        RET
        RET
PU:
PU:
        tst.w   r4
        tst.w   r4
        bpl     PP
        bpl     PP
PN:     neg.w   r4
PN:     neg.w   r4
        divxu.w r4,r0
        divxu.w r4,r0
        neg.w   r1
        neg.w   r1
        RET
        RET
PP:     divxu.w r4,r0   ! rem in r0, q in r1
PP:     divxu.w r4,r0   ! rem in r0, q in r1
        RET
        RET
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.