Changeset 802bb95 in mainline


Ignore:
Timestamp:
2005-11-09T22:31:34Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
13fe013
Parents:
2ccd275
Message:

ia64 work.
Comment some offending steps of heavyweight interrupt handler regarding RSE switching.
With this change, ia64 will do well on tests rwlock #4 and thread #1.
Cleanup.

Location:
arch/ia64/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/src/cpu/cpu.c

    r2ccd275 r802bb95  
     1/*
     2 * Copyright (C) 2005 Jakub Jermar
     3 * All rights reserved.
     4 *
     5 * Redistribution and use in source and binary forms, with or without
     6 * modification, are permitted provided that the following conditions
     7 * are met:
     8 *
     9 * - Redistributions of source code must retain the above copyright
     10 *   notice, this list of conditions and the following disclaimer.
     11 * - Redistributions in binary form must reproduce the above copyright
     12 *   notice, this list of conditions and the following disclaimer in the
     13 *   documentation and/or other materials provided with the distribution.
     14 * - The name of the author may not be used to endorse or promote products
     15 *   derived from this software without specific prior written permission.
     16 *
     17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27 */
     28
    129#include <cpu.h>
    2 #include <print.h>
    3 #include <panic.h>
    4 #include <arch/types.h>
    530
    631void cpu_arch_init(void)
    732{
    8         int psr = 0x2000;
    9    
    10         __asm__  volatile (
    11                 "{mov psr.l = %0 ;;}\n"
    12                 "{srlz.i;"
    13                 "srlz.d ;;}"
    14                 :
    15                 : "r" (psr)
    16         );
    17 
    18         /* Switch to register bank 1. */
    19         __asm__ volatile
    20         (
    21             "bsw.1;;\n"
    22         );             
    23        
    2433}
    2534
  • arch/ia64/src/ivt.S

    r2ccd275 r802bb95  
    107107       
    108108        /* assume kernel backing store */
    109         mov ar.bspstore = r28 ;;
     109        /* mov ar.bspstore = r28 ;; */
    110110       
    111111        mov r29 = ar.bsp
     
    147147        ld8 r24 = [r31], +8 ;;          /* load ar.rsc */
    148148
    149         mov ar.bspstore = r28 ;;        /* (step 4) */
    150         mov ar.rnat = r27               /* (step 5) */
     149        /* mov ar.bspstore = r28 ;; */  /* (step 4) */
     150        /* mov ar.rnat = r27 */         /* (step 5) */
    151151
    152152        mov ar.pfs = r25                /* (step 6) */
     
    248248   
    249249    /* 9. skipped (will not enable interrupts) */
     250        /*
     251         * ssm PSR_I_MASK
     252         * ;;
     253         * srlz.d
     254         */
    250255
    251256    /* 10. call handler */
     
    257262       
    258263    /* 12. skipped (will not disable interrupts) */
     264        /*
     265         * rsm PSR_I_MASK
     266         * ;;
     267         * srlz.d
     268         */
    259269
    260270    /* 13. restore general and floating-point registers */
  • arch/ia64/src/start.S

    r2ccd275 r802bb95  
    2727#
    2828
     29#include <arch/register.h>
     30
    2931.section K_TEXT_START
    3032
     
    3941        srlz.i
    4042        srlz.d
     43        ssm PSR_IC_MASK
     44        srlz.d
     45       
     46        # switch to register bank 1
     47        bsw.1
    4148       
    4249        # initialize register stack
Note: See TracChangeset for help on using the changeset viewer.