Changeset e2ec980f in mainline for arch/ia64/src/cpu/cpu.c


Ignore:
Timestamp:
2005-11-09T01:21:46Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b183865e
Parents:
0b5ac364
Message:

ia64 work.
Big cleanup of IA-64 interrupt processing.
Merge of interrupt.c and interrupt_handler.c.
Rewrite of ivt.S and interrupt.c.
Higher level interrupt handlers are now passed a vector number and a pointer to stack structure.

ia32 work.
ia32 has ordered writes. Until it deploys weaker memory ordering model, write_barrier() can be empty statement.

File:
1 edited

Legend:

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

    r0b5ac364 re2ec980f  
    44#include <arch/types.h>
    55
    6 extern int IVT;
    7 
    8 
    9 
    10 
    116void cpu_arch_init(void)
    127{
    13 
    14 
    15 
    16     int *p=&IVT;
    17     volatile __u64 hlp,hlp2;
    18 
    19 
    20     int psr = 0x2000;
     8        int psr = 0x2000;
    219   
    22 
    2310        __asm__  volatile (
    24                 "mov cr2 = %0;;\n"
    25                 "{mov psr.l = %1;;}\n"
     11                "{mov psr.l = %0 ;;}\n"
    2612                "{srlz.i;"
    27                 "srlz.d;;}"
     13                "srlz.d ;;}"
    2814                :
    29                 : "r" (p), "r" (psr)
     15                : "r" (psr)
    3016        );
    3117
    32 
    33 
    34         /*Switch register bank of regs r16 .. r31 to 1 It is automaticly cleared on exception*/
     18        /* Switch to register bank 1. */
    3519        __asm__ volatile
    3620        (
     
    3822        );             
    3923       
    40 
    4124}
    4225
Note: See TracChangeset for help on using the changeset viewer.