Changeset c621f4aa in mainline for uspace/lib/c/arch/ppc32


Ignore:
Timestamp:
2010-07-25T10:11:13Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
377cce8
Parents:
24a2517 (diff), a2da43c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge with mainline.

Location:
uspace/lib/c/arch/ppc32
Files:
24 moved

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/ppc32/Makefile.common

    r24a2517 rc621f4aa  
    2727#
    2828
    29 #include "regname.h"
     29GCC_CFLAGS += -mcpu=powerpc -msoft-float -m32
     30AFLAGS = -a32
    3031
    31 .section BOOTSTRAP, "ax"
     32ENDIANESS = BE
    3233
    33 .global start
    34 
    35 start:
    36         lis r4, ofw_cif@ha
    37         addi r4, r4, ofw_cif@l
    38         stw r5, 0(r4)
    39        
    40         bl ofw_init
    41        
    42         b bootstrap
     34BFD_NAME = elf32-powerpc
     35BFD_ARCH = powerpc:common
  • uspace/lib/c/arch/ppc32/Makefile.inc

    r24a2517 rc621f4aa  
    2727#
    2828
    29 ## Toolchain configuration
    30 #
    31 
    32 TARGET = sparc64-linux-gnu
    33 TOOLCHAIN_DIR = $(CROSS_PREFIX)/sparc64/bin
    34 
    35 ARCH_SOURCES += arch/$(UARCH)/src/fibril.S \
     29ARCH_SOURCES = \
     30        arch/$(UARCH)/src/entry.s \
     31        arch/$(UARCH)/src/thread_entry.s \
     32        arch/$(UARCH)/src/syscall.c \
     33        arch/$(UARCH)/src/fibril.S \
    3634        arch/$(UARCH)/src/tls.c \
    3735        arch/$(UARCH)/src/stacktrace.c \
    3836        arch/$(UARCH)/src/stacktrace_asm.S
    3937
    40 GCC_CFLAGS += -mcpu=ultrasparc -m64
    41 LFLAGS += -no-check-sections -N
    42 
    43 ENDIANESS = BE
    44 
    45 BFD_NAME = elf64-sparc
    46 BFD_ARCH = sparc
     38.PRECIOUS: arch/$(UARCH)/src/entry.o
  • uspace/lib/c/arch/ppc32/_link.ld.in

    r24a2517 rc621f4aa  
    1 STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
     1STARTUP(LIBC_PATH/arch/UARCH/src/entry.o)
    22ENTRY(__entry)
    33
  • uspace/lib/c/arch/ppc32/include/atomic.h

    r24a2517 rc621f4aa  
    2727 */
    2828
    29 /** @addtogroup libcppc32       
     29/** @addtogroup libcppc32
    3030 * @{
    3131 */
     
    4242static inline void atomic_inc(atomic_t *val)
    4343{
    44         long tmp;
    45 
     44        atomic_count_t tmp;
     45       
    4646        asm volatile (
    4747                "1:\n"
     
    5050                "stwcx. %0, 0, %2\n"
    5151                "bne- 1b"
    52                 : "=&r" (tmp), "=m" (val->count)
    53                 : "r" (&val->count), "m" (val->count)
    54                 : "cc");
     52                : "=&r" (tmp),
     53                  "=m" (val->count)
     54                : "r" (&val->count),
     55                  "m" (val->count)
     56                : "cc"
     57        );
    5558}
    5659
    5760static inline void atomic_dec(atomic_t *val)
    5861{
    59         long tmp;
    60 
     62        atomic_count_t tmp;
     63       
    6164        asm volatile (
    6265                "1:\n"
    6366                "lwarx %0, 0, %2\n"
    6467                "addic %0, %0, -1\n"
    65                 "stwcx. %0, 0, %2\n"
     68                "stwcx. %0, 0, %2\n"
    6669                "bne- 1b"
    67                 : "=&r" (tmp), "=m" (val->count)
    68                 : "r" (&val->count), "m" (val->count)
    69                 : "cc");
     70                : "=&r" (tmp),
     71                  "=m" (val->count)
     72                : "r" (&val->count),
     73                  "m" (val->count)
     74                : "cc"
     75        );
    7076}
    7177
    72 static inline long atomic_postinc(atomic_t *val)
     78static inline atomic_count_t atomic_postinc(atomic_t *val)
    7379{
    7480        atomic_inc(val);
     
    7682}
    7783
    78 static inline long atomic_postdec(atomic_t *val)
     84static inline atomic_count_t atomic_postdec(atomic_t *val)
    7985{
    8086        atomic_dec(val);
     
    8288}
    8389
    84 static inline long atomic_preinc(atomic_t *val)
     90static inline atomic_count_t atomic_preinc(atomic_t *val)
    8591{
    8692        atomic_inc(val);
     
    8894}
    8995
    90 static inline long atomic_predec(atomic_t *val)
     96static inline atomic_count_t atomic_predec(atomic_t *val)
    9197{
    9298        atomic_dec(val);
  • uspace/lib/c/arch/ppc32/include/types.h

    r24a2517 rc621f4aa  
    2727 */
    2828
    29 /** @addtogroup libcppc32       
     29/** @addtogroup libcppc32
    3030 * @{
    3131 */
     
    3838#define __32_BITS__
    3939
    40 typedef unsigned int sysarg_t;
     40#include <libarch/common.h>
    4141
    42 typedef char int8_t;
    43 typedef short int int16_t;
    44 typedef int int32_t;
    45 typedef long long int int64_t;
     42#define SIZE_MIN  UINT32_MIN
     43#define SIZE_MAX  UINT32_MAX
    4644
    47 typedef unsigned char uint8_t;
    48 typedef unsigned short int uint16_t;
    49 typedef unsigned int uint32_t;
    50 typedef unsigned long long int uint64_t;
     45#define SSIZE_MIN  INT32_MIN
     46#define SSIZE_MAX  INT32_MAX
     47
     48typedef uint32_t sysarg_t;
    5149
    5250typedef int32_t ssize_t;
     
    5452
    5553typedef uint32_t uintptr_t;
     54typedef uint32_t atomic_count_t;
     55typedef int32_t atomic_signed_t;
    5656
    5757#endif
Note: See TracChangeset for help on using the changeset viewer.