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

Subversion Repositories openrisc_2011-10-31

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/gnu-src/newlib-1.18.0
    from Rev 226 to Rev 243
    Reverse comparison

Rev 226 → Rev 243

/libgloss/ChangeLog.or32
0,0 → 1,106
2010-08-19 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or32/crt0.S (_start): Remove all leading underscores from
references to global C functions and variables (printf, stack,
atexit, _uart_init, main). Modified end of memory detection, so it
works on rentry as well as initial entry. <buserr>: New code to
allow re-entrant _start function.
 
2010-07-30 Julius Baxter <julius.baxter@orsoc.se>
 
* or32/crt0.S: Added cache initilisation routines using config regs
* or32/spr-defs.h: Replaced with or1ksim's golden version
* or32/or1ksim-board.h: Noted that cache config no longer necessary
 
2010-07-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or32/configure.in: Tidied up and made consistent with nosyslib.
* or32/Makefile.in: Tidied up and made consistent with nosyslib.
 
2010-07-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* libnosys/configure.in: Add or32 as using namespace clean
implementation.
 
2010-07-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or32/_exit.c: Removed redundant header.
* or32/close-uart.c: Deleted.
* or32/close.c: Undefined #errno. Fail for all streams.
* or32/crt0.S; Simplified cache initialization.
* or32/execve.c: Undefined #errno.
* or32/fork.c: Undefined #errno.
* or32/fstat-uart.c: Undefined #errno.
* or32/fstat.c: Undefined #errno.
* or32/isatty-uart.c: Undefined #errno.
* or32/isatty.c: Undefined #errno.
* or32/kill.c: Undefined #errno.
* or32/link.c: Undefined #errno.
* or32/lseek-uart.c: Undefined #errno.
* or32/lseek.c: Undefined #errno.
* or32/Makefile.in: Replaced close-uart.c by close.c
* or32/open.c: Undefined #errno.
* or32/read-uart.c: Undefined #errno.
* or32/read.c: Undefined #errno.
* or32/sbrk.c: Undefined #errno.
* or32/stat.c: Undefined #errno.
* or32/times.c: Undefined #errno.
* or32/unlink.c: Undefined #errno.
* or32/wait.c: Undefined #errno.
* or32/write-uart.c: Undefined #errno.
* or32/write.c: Undefined #errno.
 
2010-07-14 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or32/crt0.S: Use l.j rather than l.jr for library calls.
* or32/sbrk.c (_sbrk): Use stack, rather than &stack.
 
2010-07-07 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* README: Updated for OpenRISC
* or32/_exit.c: Created.
* or32/close.c: Created.
* or32/close-uart.c: Created.
* or32/configure: Regenerated.
* or32/configure.in: Updated for new style AC_INIT.
* or32/COPYING: Created.
* or32/crt0.S: Rewritten to match updated linker. Calls init and
sets up fini functions to handle constructors and destructors
properly.
* or32/environ.c: Created.
* or32/exceptions.c: Deleted.
* or32/execve.c: Created.
* or32/fork.c: Created.
* or32/fstat.c: Created.
* or32/fstat-uart.c: Created.
* or32/getpid.c: Created.
* or32/io.c: Deleted.
* or32/isatty.c: Created.
* or32/isatty-uart.c: Created.
* or32/kill.c: Created.
* or32/link.c: Created.
* or32/lseek.c: Created.
* or32/lseek-uart.c: Created.
* or32/Makefile.in: Updated for new source code.
* or32/open.c: Created.
* or32/or32.ld: Deleted.
* or32/or1ksim-board.h: Renamed from board.h.
* or32/proc.c: Created.
* or32/read.c: Created.
* or32/read-uart.c: Created.
* or32/sbrk.c: Created.
* or32/sim.cfg: Created.
* or32/specs: Deleted.
* or32/spr-defs.h: Renamed from spr_defs.h.
* or32/stat.c: Created.
* or32/times.c: Created.
* or32/uart.c (_uart_init, _uart_putc, _uart_getc): Renamed from
uart_init, uart_putc and uart_getc respectively. Macros simplified.
* or32/uart-dummy.c: Created.
* or32/uart.h <_uart_init, _uart_putc, _uart_getc>: Renamed
external functions.
* or32/unlink.c: Created.
* or32/wait.c: Created.
* or32/write.c: Created.
* or32/write-uart.c: Created.
 
/libgloss/ChangeLog
1,101 → 1,3
2010-07-30 Julius Baxter <julius.baxter@orsoc.se>
 
* or32/crt0.S: Added cache initilisation routines using config regs
* or32/spr-defs.h: Replaced with or1ksim's golden version
* or32/or1ksim-board.h: Noted that cache config no longer necessary
 
2010-07-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or32/configure.in: Tidied up and made consistent with nosyslib.
* or32/Makefile.in: Tidied up and made consistent with nosyslib.
 
2010-07-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* libnosys/configure.in: Add or32 as using namespace clean
implementation.
 
2010-07-16 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or32/_exit.c: Removed redundant header.
* or32/close-uart.c: Deleted.
* or32/close.c: Undefined #errno. Fail for all streams.
* or32/crt0.S; Simplified cache initialization.
* or32/execve.c: Undefined #errno.
* or32/fork.c: Undefined #errno.
* or32/fstat-uart.c: Undefined #errno.
* or32/fstat.c: Undefined #errno.
* or32/isatty-uart.c: Undefined #errno.
* or32/isatty.c: Undefined #errno.
* or32/kill.c: Undefined #errno.
* or32/link.c: Undefined #errno.
* or32/lseek-uart.c: Undefined #errno.
* or32/lseek.c: Undefined #errno.
* or32/Makefile.in: Replaced close-uart.c by close.c
* or32/open.c: Undefined #errno.
* or32/read-uart.c: Undefined #errno.
* or32/read.c: Undefined #errno.
* or32/sbrk.c: Undefined #errno.
* or32/stat.c: Undefined #errno.
* or32/times.c: Undefined #errno.
* or32/unlink.c: Undefined #errno.
* or32/wait.c: Undefined #errno.
* or32/write-uart.c: Undefined #errno.
* or32/write.c: Undefined #errno.
 
2010-07-14 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* or32/crt0.S: Use l.j rather than l.jr for library calls.
* or32/sbrk.c (_sbrk): Use stack, rather than &stack.
 
2010-07-07 Jeremy Bennett <jeremy.bennett@embecosm.com>
 
* README: Updated for OpenRISC
* or32/_exit.c: Created.
* or32/close.c: Created.
* or32/close-uart.c: Created.
* or32/configure: Regenerated.
* or32/configure.in: Updated for new style AC_INIT.
* or32/COPYING: Created.
* or32/crt0.S: Rewritten to match updated linker. Calls init and
sets up fini functions to handle constructors and destructors
properly.
* or32/environ.c: Created.
* or32/exceptions.c: Deleted.
* or32/execve.c: Created.
* or32/fork.c: Created.
* or32/fstat.c: Created.
* or32/fstat-uart.c: Created.
* or32/getpid.c: Created.
* or32/io.c: Deleted.
* or32/isatty.c: Created.
* or32/isatty-uart.c: Created.
* or32/kill.c: Created.
* or32/link.c: Created.
* or32/lseek.c: Created.
* or32/lseek-uart.c: Created.
* or32/Makefile.in: Updated for new source code.
* or32/open.c: Created.
* or32/or32.ld: Deleted.
* or32/or1ksim-board.h: Renamed from board.h.
* or32/proc.c: Created.
* or32/read.c: Created.
* or32/read-uart.c: Created.
* or32/sbrk.c: Created.
* or32/sim.cfg: Created.
* or32/specs: Deleted.
* or32/spr-defs.h: Renamed from spr_defs.h.
* or32/stat.c: Created.
* or32/times.c: Created.
* or32/uart.c (_uart_init, _uart_putc, _uart_getc): Renamed from
uart_init, uart_putc and uart_getc respectively. Macros simplified.
* or32/uart-dummy.c: Created.
* or32/uart.h <_uart_init, _uart_putc, _uart_getc>: Renamed
external functions.
* or32/unlink.c: Created.
* or32/wait.c: Created.
* or32/write.c: Created.
* or32/write-uart.c: Created.
 
2009-12-17 Jeff Johnston <jjohnstn@redhat.com>
 
* mn10300/Makefile.in: Add mkdir call to make installation
/libgloss/or32/crt0.S
56,7 → 56,7
l.ori r4,r4,lo(str) ;\
l.sw 4(r1),r4 ;\
l.mfspr r5,r0,SPR_EPCR_BASE /* Source of the interrupt */ ;\
l.jal _printf ;\
l.jal printf ;\
l.sw 8(r1),r5 ;\
;\
l.ori r3,r0,0xffff /* Failure RC */ ;\
117,19 → 117,28
 
/* 0x200: BUS exception is special, because during startup we use it
to detect where the stack should go. So we need some special code
before we return, which wel will later overwrite with l.nop.
before we return, which wel will later overwrite with l.nop. We
need to deal with the case when _start is called multiple times, so
this code must be copied into the bus error vector each time. It is
position independent to allow this copying.
 
We use registers we know will not interfere in this case. */
.org 0x200
_buserr:
l.nop /* Will be overwritten */
l.nop
l.nop
l.nop
 
_buserr_std:
UNHANDLED_EXCEPTION (.L200)
 
_buserr_special:
l.mfspr r24,r0,SPR_EPCR_BASE
l.addi r24,r24,4 /* Return one instruction on */
l.mtspr r0,r24,SPR_EPCR_BASE
l.rfe
 
_buserr_std:
UNHANDLED_EXCEPTION (.L200)
 
/* 0x300: Data Page Fault exception */
.org 0x300
UNHANDLED_EXCEPTION (.L300)
253,17 → 262,36
/* -------------------------------------------------------------------------- */
/* The stack grows down from the top of writable memory. */
.section .data
.global _stack
_stack: .space 4,0
.global stack
stack: .space 4,0
 
.section .text
.global _start
.type _start,@function
 
_start:
_start:
/* Finding the end of stack means we need to handle the bus
error. Patch in some special handler code. */
l.movhi r30,hi(_buserr) /* Where to copy to */
l.ori r30,r30,lo(_buserr)
l.movhi r28,hi(_buserr_std) /* Where to stop copying */
l.ori r28,r28,lo(_buserr_std)
l.movhi r26,hi(_buserr_special) /* Where to copy from */
l.ori r26,r26,lo(_buserr_special)
 
.L11: l.sfeq r28,r30
l.bf .L12
l.nop
 
l.lwz r24,0(r26) /* Get the instruction */
l.sw 0(r30),r24 /* Patch the instruction */
l.addi r26,r26,4 /* Next source instruction */
l.j .L11
l.addi r30,r30,4 /* Delay slot: next dest location */
/* Determine where the stack should end. Must be somewhere above the
end of loaded memory. We look in blocks of 64KB. */
l.movhi r30,hi(end)
.L12: l.movhi r30,hi(end)
l.ori r30,r30,lo(end)
l.srli r30,r30,16 /* Round down to 64KB boundary */
l.slli r30,r30,16
278,8 → 306,7
l.ori r26,r26,0xaaaa
 
/* Is this a writeable location? */
.L3:
l.sw 0(r30),r26
.L3: l.sw 0(r30),r26
l.lwz r24,0(r30)
l.sfeq r24,r26
l.bnf .L4
288,10 → 315,9
l.j .L3
l.add r30,r30,r28 /* Try 64KB higher */
 
.L4:
l.sub r30,r30,r28 /* Previous value was wanted */
l.movhi r26,hi(_stack)
l.ori r26,r26,lo(_stack)
.L4: l.sub r30,r30,r28 /* Previous value was wanted */
l.movhi r26,hi(stack)
l.ori r26,r26,lo(stack)
l.sw 0(r26),r30
 
/* Initialise stack and frame pointer (set to same value) */
306,8 → 332,7
l.movhi r26,0x1500 /* l.nop 0 */
l.ori r26,r26,0x0000
 
.L5:
l.sfeq r28,r30
.L5: l.sfeq r28,r30
l.bf .L6
l.nop
 
315,10 → 340,9
l.j .L5
l.addi r30,r30,4 /* Delay slot: next instruction */
 
.L6:
/* Instruction cache enable */
/* Check if IC present and skip enabling otherwise */
l.mfspr r24,r0,SPR_UPR
.L6: l.mfspr r24,r0,SPR_UPR
l.andi r26,r24,SPR_UPR_ICP
l.sfeq r26,r0
l.bf .L8
355,8 → 379,7
l.addi r6,r0,0
l.sll r5,r14,r28
.L7:
l.mtspr r0,r6,SPR_ICBIR
.L7: l.mtspr r0,r6,SPR_ICBIR
l.sfne r6,r5
l.bf .L7
l.add r6,r6,r14
374,10 → 397,9
l.nop
l.nop
 
.L8:
/* Data cache enable */
/* Check if DC present and skip enabling otherwise */
l.mfspr r24,r0,SPR_UPR
.L8: l.mfspr r24,r0,SPR_UPR
l.andi r26,r24,SPR_UPR_DCP
l.sfeq r26,r0
l.bf .L10
409,8 → 431,8
/* Invalidate DC */
l.addi r6,r0,0
l.sll r5,r14,r28
.L9:
l.mtspr r0,r6,SPR_DCBIR
 
.L9: l.mtspr r0,r6,SPR_DCBIR
l.sfne r6,r5
l.bf .L9
l.add r6,r6,r14
419,15 → 441,13
l.ori r6,r6,SPR_SR_DCE
l.mtspr r0,r6,SPR_SR
 
.L10:
/* Clear BSS */
l.movhi r28,hi(__bss_start)
.L10: l.movhi r28,hi(__bss_start)
l.ori r28,r28,lo(__bss_start)
l.movhi r30,hi(end)
l.ori r30,r30,lo(end)
 
.L1:
l.sw (0)(r28),r0
.L1: l.sw (0)(r28),r0
l.sfltu r28,r30
l.bf .L1
l.addi r28,r28,4 /* Delay slot */
438,18 → 458,18
/* Set up destructors to be called from exit if main never returns */
l.movhi r3,hi(fini)
l.jal _atexit
l.jal atexit
l.ori r3,r3,lo(fini) /* Delay slot */
 
/* Initialise UART in a C function. If the UART isn't present, we'll */
/* link against a dummy function. */
l.jal __uart_init
l.jal _uart_init
l.nop
 
/* Jump to main program entry point (argc = argv = envp = 0) */
l.or r3,r0,r0
l.or r4,r0,r0
l.jal _main
l.jal main
l.or r5,r0,r0 /* Delay slot */
 
/* If program exits, call exit routine */
457,8 → 477,7
l.addi r3,r11,0 /* Delay slot */
 
/* Loop forever */
.L2:
l.j .L2
.L2: l.j .L2
l.nop
.size _start, .-_start

powered by: WebSVN 2.1.0

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