Changeset 3bc42bd in mainline


Ignore:
Timestamp:
2013-11-26T18:49:32Z (10 years ago)
Author:
Jakub Klama <jakub.klama@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a218709
Parents:
a7372ccf
Message:

Added register window flushes in userspace when apporiate
and done some minor fixes.

Location:
uspace/lib/c/arch/sparc32
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/sparc32/include/libarch/stack.h

    ra7372ccf r3bc42bd  
    3333 */
    3434
    35 #ifndef LIBC_sparc64_STACK_H_
    36 #define LIBC_sparc64_STACK_H_
     35#ifndef LIBC_sparc32_STACK_H_
     36#define LIBC_sparc32_STACK_H_
    3737
    38 #define STACK_ITEM_SIZE                 8
     38#define STACK_ITEM_SIZE                 4
    3939
    4040/** According to SPARC Compliance Definition, every stack frame is 16-byte aligned. */
  • uspace/lib/c/arch/sparc32/include/libarch/stackarg.h

    ra7372ccf r3bc42bd  
    2727 */
    2828
    29 /** @addtogroup libcsparc64     
     29/** @addtogroup libcsparc32
    3030 * @{
    3131 */
     
    3333 */
    3434
    35 #ifndef LIBC_sparc64_STACKARG_H_
    36 #define LIBC_sparc64_STACKARG_H_
     35#ifndef LIBC_sparc32_STACKARG_H_
     36#define LIBC_sparc32_STACKARG_H_
    3737
    3838#endif
  • uspace/lib/c/arch/sparc32/include/libarch/thread.h

    ra7372ccf r3bc42bd  
    2828 */
    2929
    30 /** @addtogroup libcsparc64
     30/** @addtogroup libcsparc32
    3131 * @{
    3232 */
    3333
    34 #ifndef LIBC_sparc64_THREAD_H_
    35 #define LIBC_sparc64_THREAD_H_
     34#ifndef LIBC_sparc32_THREAD_H_
     35#define LIBC_sparc32_THREAD_H_
    3636
    3737#endif
  • uspace/lib/c/arch/sparc32/src/entry.s

    ra7372ccf r3bc42bd  
    4444        save %sp, -176, %sp
    4545# XXX   flushw
     46        mov 7, %g1
     471:      subcc %g1, 1, %g1
     48        bg 1b
     49        save %sp, -64, %sp
     50
     51        mov 7, %g1
     521:      subcc %g1, 1, %g1
     53        bg 1b
     54
     55# XXX end flush
    4656#       add %g0, -0x7ff, %fp
    4757        set 0x80000000, %fp
  • uspace/lib/c/arch/sparc32/src/fibril.S

    ra7372ccf r3bc42bd  
    3131.text
    3232
     33.global flush_windows
    3334.global context_save
    3435.global context_restore
     
    3940        # should a thread switch occur.
    4041        #
     42        mov 7, %g1
     431:      subcc %g1, 1, %g1
     44        bg 1b
     45        save %sp, -64, %sp
     46
     47        mov 7, %g1
     481:      subcc %g1, 1, %g1
     49        bg 1b
     50        restore
     51
    4152        CONTEXT_SAVE_ARCH_CORE %o0
    4253        retl
     
    5263# XXX
    5364#       flushw
     65#        ta 0x4f
     66#        nop
     67        mov 7, %g1
     681:      subcc %g1, 1, %g1
     69        bg 1b
     70        save %sp, -64, %sp
     71
     72        mov 7, %g1
     731:      subcc %g1, 1, %g1
     74        bg 1b
     75        restore
    5476       
    5577        CONTEXT_RESTORE_ARCH_CORE %o0
  • uspace/lib/c/arch/sparc32/src/stacktrace.c

    ra7372ccf r3bc42bd  
    22 * Copyright (c) 2010 Jakub Jermar
    33 * Copyright (c) 2010 Jiri Svoboda
     4 * Copyright (c) 2013 Jakub Klama
    45 * All rights reserved.
    56 *
     
    2829 */
    2930
    30 /** @addtogroup sparc64
     31/** @addtogroup sparc32
    3132 * @{
    3233 */
     
    4142#include <stacktrace.h>
    4243
    43 #define FRAME_OFFSET_FP_PREV    (14 * 8)
    44 #define FRAME_OFFSET_RA         (15 * 8)
     44#define FRAME_OFFSET_FP_PREV    (14 * 4)
     45#define FRAME_OFFSET_RA         (15 * 4)
    4546
    4647bool stacktrace_fp_valid(stacktrace_t *st, uintptr_t fp)
  • uspace/lib/c/arch/sparc32/src/stacktrace_asm.S

    ra7372ccf r3bc42bd  
    3838        save %sp, -(STACK_WINDOW_SAVE_AREA_SIZE+STACK_ARG_SAVE_AREA_SIZE), %sp
    3939        # Flush all other windows to memory so that we can read their contents.
    40 # XXX   flushw
     40        mov 7, %g1
     411:      subcc %g1, 1, %g1
     42        bg 1b
     43        save %sp, -64, %sp
     44
     45        mov 7, %g1
     461:      subcc %g1, 1, %g1
     47        bg 1b
     48
    4149        ret
    4250        restore
  • uspace/lib/c/arch/sparc32/src/thread_entry.s

    ra7372ccf r3bc42bd  
    4040        save %sp, -176, %sp
    4141# XXX   flushw
    42         add %g0, -0x7ff, %fp
     42        mov 7, %g1
     431:      subcc %g1, 1, %g1
     44        bg 1b
     45        save %sp, -64, %sp
     46
     47        mov 7, %g1
     481:      subcc %g1, 1, %g1
     49        bg 1b
     50# XXX end flushw
     51        set 0x80000000, %fp
    4352
    4453        #
Note: See TracChangeset for help on using the changeset viewer.