OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [newlib-1.17.0/] [libgloss/] [m68k/] [cpu32bug.S] - Diff between revs 158 and 816

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

Rev 158 Rev 816
/*
/*
 * cpu32bug.S -- board support for the CPU32BUG monitor.
 * cpu32bug.S -- board support for the CPU32BUG monitor.
 *
 *
 * Copyright (c) 1995, 1996 Cygnus Support
 * Copyright (c) 1995, 1996 Cygnus Support
 *
 *
 * The authors hereby grant permission to use, copy, modify, distribute,
 * The authors hereby grant permission to use, copy, modify, distribute,
 * and license this software and its documentation for any purpose, provided
 * and license this software and its documentation for any purpose, provided
 * that existing copyright notices are retained in all copies and that this
 * that existing copyright notices are retained in all copies and that this
 * notice is included verbatim in any distributions. No written agreement,
 * notice is included verbatim in any distributions. No written agreement,
 * license, or royalty fee is required for any of the authorized uses.
 * license, or royalty fee is required for any of the authorized uses.
 * Modifications to this software may be copyrighted by their authors
 * Modifications to this software may be copyrighted by their authors
 * and need not follow the licensing terms described here, provided that
 * and need not follow the licensing terms described here, provided that
 * the new terms are clearly indicated on the first page of each file where
 * the new terms are clearly indicated on the first page of each file where
 * they apply.
 * they apply.
 */
 */
#include "asm.h"
#include "asm.h"
#include "cpu32bug.h"
#include "cpu32bug.h"
        .title "cpu32bug.S for m68k-coff"
        .title "cpu32bug.S for m68k-coff"
        .text
        .text
        .global SYM (_exit)
        .global SYM (_exit)
        .global SYM (outln)
        .global SYM (outln)
        .global SYM (outbyte)
        .global SYM (outbyte)
        .global SYM (putDebugChar)
        .global SYM (putDebugChar)
        .global SYM (inbyte)
        .global SYM (inbyte)
        .global SYM (getDebugChar)
        .global SYM (getDebugChar)
        .global SYM (havebyte)
        .global SYM (havebyte)
/*
/*
 * _exit -- Exit from the application. Normally we cause a user trap
 * _exit -- Exit from the application. Normally we cause a user trap
 *          to return to the ROM monitor for another run.
 *          to return to the ROM monitor for another run.
 */
 */
        .text
        .text
        .align  2
        .align  2
SYM (_exit):
SYM (_exit):
        link    fp, IMM(0)
        link    fp, IMM(0)
        trap    IMM(15)
        trap    IMM(15)
        .word   RETURN
        .word   RETURN
/*
/*
 * inbyte -- get a byte from the serial port
 * inbyte -- get a byte from the serial port
 *      d0 - contains the byte read in
 *      d0 - contains the byte read in
 */
 */
        .text
        .text
        .align  2
        .align  2
SYM (getDebugChar):             /* symbol name used by m68k-stub */
SYM (getDebugChar):             /* symbol name used by m68k-stub */
SYM (inbyte):
SYM (inbyte):
        link    fp, IMM(-8)
        link    fp, IMM(-8)
        trap    IMM(15)
        trap    IMM(15)
        .word   INCHR
        .word   INCHR
        moveb   sp@, d0
        moveb   sp@, d0
        extw    d0
        extw    d0
        extl    d0
        extl    d0
        unlk    fp
        unlk    fp
        rts
        rts
/*
/*
 * outbyte -- sends a byte out the serial port
 * outbyte -- sends a byte out the serial port
 *      d0 - contains the byte to be sent
 *      d0 - contains the byte to be sent
 */
 */
        .text
        .text
        .align  2
        .align  2
SYM (putDebugChar):             /* symbol name used by m68k-stub */
SYM (putDebugChar):             /* symbol name used by m68k-stub */
SYM (outbyte):
SYM (outbyte):
        link    fp, IMM(-4)
        link    fp, IMM(-4)
        moveb   fp@(11), sp@
        moveb   fp@(11), sp@
        trap    IMM(15)
        trap    IMM(15)
        .word   OUTCHR
        .word   OUTCHR
        unlk    fp
        unlk    fp
        rts
        rts
/*
/*
 * outln -- sends a string of bytes out the serial port with a CR/LF
 * outln -- sends a string of bytes out the serial port with a CR/LF
 *      a0 - contains the address of the string's first byte
 *      a0 - contains the address of the string's first byte
 *      a1 - contains the address of the string's last byte
 *      a1 - contains the address of the string's last byte
 */
 */
        .text
        .text
        .align  2
        .align  2
SYM (outln):
SYM (outln):
        link    fp, IMM(-8)
        link    fp, IMM(-8)
        moveml  a0/a1, sp@
        moveml  a0/a1, sp@
        trap    IMM(15)
        trap    IMM(15)
        .word   OUTLN
        .word   OUTLN
        unlk    fp
        unlk    fp
        rts
        rts
/*
/*
 * outstr -- sends a string of bytes out the serial port without a CR/LF
 * outstr -- sends a string of bytes out the serial port without a CR/LF
 *      a0 - contains the address of the string's first byte
 *      a0 - contains the address of the string's first byte
 *      a1 - contains the address of the string's last byte
 *      a1 - contains the address of the string's last byte
 */
 */
        .text
        .text
        .align  2
        .align  2
SYM (outstr):
SYM (outstr):
        link    fp, IMM(-8)
        link    fp, IMM(-8)
        moveml  a0/a1, sp@
        moveml  a0/a1, sp@
        trap    IMM(15)
        trap    IMM(15)
        .word   OUTSTR
        .word   OUTSTR
        unlk    fp
        unlk    fp
        rts
        rts
/*
/*
 * havebyte -- checks to see if there is a byte in the serial port,
 * havebyte -- checks to see if there is a byte in the serial port,
 *             returns 1 if there is a byte, 0 otherwise.
 *             returns 1 if there is a byte, 0 otherwise.
 */
 */
        .text
        .text
        .align  2
        .align  2
SYM (havebyte):
SYM (havebyte):
        trap    IMM(15)
        trap    IMM(15)
        .word   INSTAT
        .word   INSTAT
        beqs    empty
        beqs    empty
        movel   IMM(1), d0
        movel   IMM(1), d0
        rts
        rts
empty:
empty:
        movel   IMM(0), d0
        movel   IMM(0), d0
        rts
        rts
 
 

powered by: WebSVN 2.1.0

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