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

Subversion Repositories s6soc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /s6soc/trunk
    from Rev 48 to Rev 47
    Reverse comparison

Rev 48 → Rev 47

/sw/host/byteswap.cpp File deleted
/sw/host/byteswap.h File deleted
/sw/host/zipelf.cpp File deleted
/sw/host/zipelf.h File deleted
sw/host Property changes : Deleted: svn:ignore ## -1,9 +0,0 ## -.gitignore -buildsamples -dumpuart -obj-pc -qspiflash-original.bin -readflash -tags -wbregs -zipload Index: sw/zipos/string.c =================================================================== --- sw/zipos/string.c (revision 48) +++ sw/zipos/string.c (nonexistent) @@ -1,285 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Filename: string.c -// -// Project: CMod S6 System on a Chip, ZipCPU demonstration project -// -// Purpose: To provide *some* of the C-library's capabilities, without -// using perfectly optimal functions--but rather simple things that -// can be easily tested and debugged. -// -// Creator: Dan Gisselquist, Ph.D. -// Gisselquist Technology, LLC -// -//////////////////////////////////////////////////////////////////////////////// -// -// Copyright (C) 2017, Gisselquist Technology, LLC -// -// This program is free software (firmware): 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 3 of the License, or (at -// your option) any later version. -// -// This program is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY 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 this program. (It's in the $(ROOT)/doc directory. Run make with no -// target there if the PDF file isn't present.) If not, see -// for a copy. -// -// License: GPL, v3, as defined and found on www.gnu.org, -// http://www.gnu.org/licenses/gpl.html -// -// -//////////////////////////////////////////////////////////////////////////////// -// -// -#include "string.h" -#include "txfns.h" - -char * -strcpy(char *dst, const char *src) { - char v, *d = dst; - do { - *dst++ = (v = *src++); - } while(v); - - return d; -} - -char * -strcat(char *dst, const char *src) { - char v, *d = dst; - do { - v = *dst++; - } while(v); - - dst--; - strcpy(dst, src); - - return d; -} - -#ifdef C_STRING_FNS -size_t -strlen(const char *str) { - size_t ln = 0; - while(*str++) - ln++; - return ln; -} -#else -asm("\t.section\t.text\n" - "\t.global\tstrlen\n" -"strlen:\n" - "\tMOV\tR1,R2\n" - "\tCLR\tR1\n" -".Lstrlen_loop:\n" - "\tLB\t(R2),R3\n" - "\tCMP\t0,R3\n" - "\tRTN.Z\n" - "\tADD\t1,R2\n" - "\tADD\t1,R1\n" - "\tBRA\t.Lstrlen_loop\n"); -#endif - -#ifdef C_STRING_FNS -void *memcpy(void *dest, const void *src, size_t ln) { - char *d = dest; const char *s = src; - -/* - if (((((unsigned)d ^ (unsigned)s)&3)==0)&&(ln>4)) { - // Source and destination are aligned with each other - - // Align them to a word boundary - int n = (3-(((unsigned)d)&3)); - ln -= n; - while(n>0) { - *d++ = *s++; n--; - } - - int *id = (int *)d; - const int *is = (const int *)s; - while(ln >= 4) { - *id++ = *is++; ln-=4; - } d = (char *)id; s = (const char *)is; - } -*/ - - while(ln > 0) { - *d++ = *s++; ln--; - } return dest; -} -#else -asm("\t.section\t.text\n" - "\t.global\tmemcpy\n" -"memcpy:\n" - "\tCMP 0,R3\n" - "\tRTN.Z\n" - "\tMOV\tR1,R4\n" - "\tSUB 4,SP\n" - "\tSW R5,(SP)\n" - // - "\tTST\t3,R2\n" - "\tBZ\t.Lpre_aligned\n" - "\tLB\t(R2),R5\n" - "\tSB\tR5,(R4),R5\n" - "\tADD\t1,R2\n" - "\tADD\t1,R4\n" - "\tSUB\t1,R3\n" - "\tBZ\t.Lmemcpy_epilogue\n" - // - "\tTST\t3,R2\n" - "\tBZ\t.Lpre_aligned\n" - "\tLB\t(R2),R5\n" - "\tSB\tR5,(R4),R5\n" - "\tADD\t1,R2\n" - "\tADD\t1,R4\n" - "\tSUB\t1,R3\n" - "\tBZ\t.Lmemcpy_epilogue\n" - // - "\tTST\t3,R2\n" - "\tBZ\t.Lpre_aligned\n" - "\tLB\t(R2),R5\n" - "\tSB\tR5,(R4),R5\n" - "\tADD\t1,R2\n" - "\tADD\t1,R4\n" - "\tSUB\t1,R3\n" - "\tBZ\t.Lmemcpy_epilogue\n" - // -".Lpre_aligned:\n" - "\tTST\t1,R4\n" - "\tBNZ\t.Lmemcpy_unaligned\n" - "\tTST\t2,R4\n" - "\tBNZ\t.Lmemcpy_half_aligned\n" -".Lmemcpy_highspeed:\n" - "\tSUB\t32,R3\n" - "\tBLT\t.Lend_of_high_speed\n" - // - "\tLW\t(R2),R5\n" - "\tSW\tR5,(R4)\n" - "\tLW\t4(R2),R5\n" - "\tSW\tR5,4(R4)\n" - "\tLW\t8(R2),R5\n" - "\tSW\tR5,8(R4)\n" - "\tLW\t12(R2),R5\n" - "\tSW\tR5,12(R4)\n" - // - "\tLW\t16(R2),R5\n" - "\tSW\tR5,16(R4)\n" - "\tLW\t20(R2),R5\n" - "\tSW\tR5,20(R4)\n" - "\tLW\t24(R2),R5\n" - "\tSW\tR5,24(R4)\n" - "\tLW\t28(R2),R5\n" - "\tSW\tR5,28(R4)\n" - // - "\tADD\t32,R2\n" - "\tADD\t32,R4\n" - "\tBRA\t.Lmemcpy_highspeed\n" -".Lend_of_high_speed:\n" - "\tADD\t32,R3\n" -".Lmemcpy_half_aligned:\n" - "\tSUB\t4,R3\n" - "\tBLT\t.Lend_of_short_speed\n" - "\tLH\t(R2),R5\n" - "\tSH\tR5,(R4)\n" - "\tLH\t2(R2),R5\n" - "\tSH\tR5,2(R4)\n" - "\tADD\t4,R2\n" - "\tADD\t4,R4\n" - "\tBRA\t.Lmemcpy_half_aligned\n" -".Lend_of_short_speed:\n" - "\tADD\t4,R3\n" -".Lmemcpy_unaligned:\n" - "\tSUB\t1,R3\n" - "\tBLT\t.Lmemcpy_epilogue\n" - "\tLB\t(R2),R5\n" - "\tSB\tR5,(R4)\n" - "\tADD\t1,R2\n" - "\tADD\t1,R4\n" - "\tBRA\t.Lmemcpy_unaligned\n" -".Lmemcpy_epilogue:\n" - "\tLW\t(SP),R5\n" - "\tADD\t4,SP\n" - "\tRETN\n" -); -/* -asm("\t.section\t.text\n" - "\t.global\tmemcpy\n" -"memcpy:\n" - "\tCMP 0,R3\n" - "\tRTN.Z\n" - "\tSUB 8,SP\n" - "\tSW R5,(SP)\n" -#define HIGH_SPEED_MEMCPY -#ifdef HIGH_SPEED_MEMCPY - "\tSW R6,4(SP)\n" - "\tMOV R1,R4\n" - "\tXOR R2,R4\n" - "\tTEST 3,R4\n" - "\tBNZ .Lmemcpy_unaligned\n" - "\tCMP 8,R3\n" - "\tBLT .Lmemcpy_unaligned\n" - - // n = 3+ ~((unsigned)d&3)+1 - "\tMOV\tR1,R4\n" - "\tAND\t3,R4\n" - "\tLDI\t3,R5\n" - "\tSUB\tR4,R5" "\t; R5 = n\n" - "\tMOV\tR1,R4" "\t; R4 = d\n" - "\tBZ\t.Lmemcpy_n_is_zero\n" - - "\tSUB\tR5,R3" "\t; ln -= n\n" - "\tTEST\t1,R5\n" - "\tLB.NZ\t(R2),R6\n" - "\tSB.NZ\tR6,(R4)\n" - "\tADD.NZ\t1,R4\n" - "\tADD.NZ\t1,R2\n" - "\tTEST\t2,R5\n" - "\tLH.NZ\t(R2),R6\n" - "\tSH.NZ\tR6,(R4)\n" - "\tADD.NZ\t2,R4\n" - "\tADD.NZ\t2,R2\n" - -".Lmemcpy_n_is_zero:\n" -".Lmemcpy_word_loop:\n" - "\tSUB\t4,R3\n" - "\tBLT\t.Lmemcpy_pretail\n" - "\tLW\t(R4),R5\n" - "\tSW\tR5,(R2)\n" - "\tADD\t4,R4\n" - "\tADD\t4,R2\n" - "\tBRA\t.Lmemcpy_word_loop\n" -".Lmemcpy_pretail:\n" - "\tADD\t4,R3\n" - "\tBZ\t.Lmemcpy_epilogue\n" - "\tBRA\t.Lmemcpy_unaligned_loop\n" - -".Lmemcpy_unaligned:\n" - "\tCMP 0,R3\n" - "\tBZ .Lmemcpy_epilogue\n" -#endif - "\tMOV\tR1,R4\n" -".Lmemcpy_unaligned_loop:\n" - "\tLB\t(R2),R5\n" - "\tSB\tR5,(R4)\n" - "\tADD\t1,R4\n" - "\tADD\t1,R2\n" - "\tSUB\t1,R3\n" - "\tBNZ\t.Lmemcpy_unaligned_loop\n" -".Lmemcpy_epilogue:\n" - "\tLW\t(SP),R5\n" -#ifdef HIGH_SPEED_MEMCPY - "\tLW\t4(SP),R6\n" -#endif - "\tADD\t8,SP\n" - "\tRTN\n" -); -*/ -#endif - - Index: sw/zipos/bootloader.h =================================================================== --- sw/zipos/bootloader.h (revision 48) +++ sw/zipos/bootloader.h (nonexistent) @@ -1,47 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Filename: bootloader.h -// -// Project: Zip CPU -- a small, lightweight, RISC CPU soft core -// -// Purpose: -// -// -// Creator: Dan Gisselquist, Ph.D. -// Gisselquist Technology, LLC -// -//////////////////////////////////////////////////////////////////////////////// -// -// Copyright (C) 2015-2016, Gisselquist Technology, LLC -// -// This program is free software (firmware): 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 3 of the License, or (at -// your option) any later version. -// -// This program is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// for more details. -// -// License: GPL, v3, as defined and found on www.gnu.org, -// http://www.gnu.org/licenses/gpl.html -// -// -//////////////////////////////////////////////////////////////////////////////// -// -// -#ifndef BOOTLOADER_H -#define BOOTLOADER_H - -extern int _top_of_heap[1], _top_of_stack[1]; - -extern int _sdram[1], _flash[1], _blkram[1]; - -extern int _boot_address[1], - _kernel_image_start[1], _kernel_image_end[1], - _sdram_image_start[1], _sdram_image_end[1], - _bss_image_end[1]; - -extern void _bootloader(void); -#endif Index: sw/zipos/string.h =================================================================== --- sw/zipos/string.h (revision 48) +++ sw/zipos/string.h (nonexistent) @@ -1,49 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Filename: string.h -// -// Project: CMod S6 System on a Chip, ZipCPU demonstration project -// -// Purpose: -// -// Creator: Dan Gisselquist, Ph.D. -// Gisselquist Technology, LLC -// -//////////////////////////////////////////////////////////////////////////////// -// -// Copyright (C) 2015-2017, Gisselquist Technology, LLC -// -// This program is free software (firmware): 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 3 of the License, or (at -// your option) any later version. -// -// This program is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY 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 this program. (It's in the $(ROOT)/doc directory. Run make with no -// target there if the PDF file isn't present.) If not, see -// for a copy. -// -// License: GPL, v3, as defined and found on www.gnu.org, -// http://www.gnu.org/licenses/gpl.html -// -// -//////////////////////////////////////////////////////////////////////////////// -// -// -#ifndef STRING_H -#define STRING_H - -typedef unsigned size_t; - -size_t strlen(const char *s); -char *strcpy(char *d, const char *s); -char *strcat(char *d, const char *s); -// -void *memcpy(void *d, const void *s, size_t n); - -#endif Index: sw/zipos =================================================================== --- sw/zipos (revision 48) +++ sw/zipos (revision 47)
sw/zipos Property changes : Deleted: svn:ignore ## -1,4 +0,0 ## -.gitignore -doorbell -obj-zip -tags

powered by: WebSVN 2.1.0

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