Changeset b1facba in mainline


Ignore:
Timestamp:
2006-06-08T09:48:51Z (19 years ago)
Author:
Jakub Vana <jakub.vana@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7674793
Parents:
07d7870
Message:

Uspace synchronous fpu context managing

Location:
libc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libc/arch/ia64/include/psthread.h

    r07d7870 rb1facba  
    3939#include <align.h>
    4040#include <libarch/stack.h>
     41#include <arch/types.h>
    4142
    4243/*
     
    108109         */
    109110        uint64_t pr;
     111
     112        __r128 f2 __attribute__ ((aligned(16)));
     113        __r128 f3;
     114        __r128 f4;
     115        __r128 f5;
     116
     117        __r128 f16;
     118        __r128 f17;
     119        __r128 f18;
     120        __r128 f19;
     121        __r128 f20;
     122        __r128 f21;
     123        __r128 f22;
     124        __r128 f23;
     125        __r128 f24;
     126        __r128 f25;
     127        __r128 f26;
     128        __r128 f27;
     129        __r128 f28;
     130        __r128 f29;
     131        __r128 f30;
     132        __r128 f31;
     133
    110134} context_t;
    111135
  • libc/arch/ia64/src/psthread.S

    r07d7870 rb1facba  
    105105         */
    106106        mov loc2 = pr           ;;
    107         st8 [in0] = loc2, 8     ;;
    108        
     107        st8 [in0] = loc2, 16;;          /* Next fpu registers should be spilled to 16B aligned address */
     108
     109        /*
     110         * Save floating-point registers.
     111         */
     112        stf.spill [in0] = f2, 16 ;;
     113        stf.spill [in0] = f3, 16 ;;
     114        stf.spill [in0] = f4, 16 ;;
     115        stf.spill [in0] = f5, 16 ;;
     116
     117        stf.spill [in0] = f16, 16 ;;
     118        stf.spill [in0] = f17, 16 ;;
     119        stf.spill [in0] = f18, 16 ;;
     120        stf.spill [in0] = f19, 16 ;;
     121        stf.spill [in0] = f20, 16 ;;
     122        stf.spill [in0] = f21, 16 ;;
     123        stf.spill [in0] = f22, 16 ;;
     124        stf.spill [in0] = f23, 16 ;;
     125        stf.spill [in0] = f24, 16 ;;
     126        stf.spill [in0] = f25, 16 ;;
     127        stf.spill [in0] = f26, 16 ;;
     128        stf.spill [in0] = f27, 16 ;;
     129        stf.spill [in0] = f28, 16 ;;
     130        stf.spill [in0] = f29, 16 ;;
     131        stf.spill [in0] = f30, 16 ;;
     132        stf.spill [in0] = f31, 16 ;;   
     133
    109134        mov ar.unat = loc1
    110135       
     
    188213         * Restore predicate registers
    189214         */
    190         ld8 loc2 = [in0], 8     ;;
     215        ld8 loc2 = [in0], 16    ;;
    191216        mov pr = loc2, ~0
     217
     218        /*
     219         * Restore floating-point registers.
     220         */
     221        ldf.fill f2 = [in0], 16 ;;
     222        ldf.fill f3 = [in0], 16 ;;
     223        ldf.fill f4 = [in0], 16 ;;
     224        ldf.fill f5 = [in0], 16 ;;
     225
     226        ldf.fill f16 = [in0], 16 ;;
     227        ldf.fill f17 = [in0], 16 ;;
     228        ldf.fill f18 = [in0], 16 ;;
     229        ldf.fill f19 = [in0], 16 ;;
     230        ldf.fill f20 = [in0], 16 ;;
     231        ldf.fill f21 = [in0], 16 ;;
     232        ldf.fill f22 = [in0], 16 ;;
     233        ldf.fill f23 = [in0], 16 ;;
     234        ldf.fill f24 = [in0], 16 ;;
     235        ldf.fill f25 = [in0], 16 ;;
     236        ldf.fill f26 = [in0], 16 ;;
     237        ldf.fill f27 = [in0], 16 ;;
     238        ldf.fill f28 = [in0], 16 ;;
     239        ldf.fill f29 = [in0], 16 ;;
     240        ldf.fill f30 = [in0], 16 ;;
     241        ldf.fill f31 = [in0], 16 ;;
    192242       
    193243        mov ar.unat = loc1
  • libc/malloc/malloc.c

    r07d7870 rb1facba  
    466466#define ONLY_MSPACES 0
    467467#define MSPACES 0
     468
     469#ifdef MALLOC_ALIGNMENT_16
     470#define MALLOC_ALIGNMENT ((size_t)16U)
     471#else
    468472#define MALLOC_ALIGNMENT ((size_t)8U)
     473#endif
     474
    469475#define FOOTERS 0
    470476#define ABORT  abort()
Note: See TracChangeset for help on using the changeset viewer.