Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/src/ivt.S

    r9928240 r293703e  
    3131#include <arch/register.h>
    3232#include <arch/mm/page.h>
    33 #include <arch/interrupt.h>
    3433#include <arch/istate_struct.h>
    3534#include <align.h>
     
    4039
    4140/** Partitioning of bank 0 registers. */
    42 #define R_VECTOR        r16
     41#define R_OFFS          r16
    4342#define R_HANDLER       r17
    4443#define R_RET           r18
     44#define R_TMP           r19
    4545#define R_KSTACK_BSP    r22     /* keep in sync with before_thread_runs_arch() */
    4646#define R_KSTACK        r23     /* keep in sync with before_thread_runs_arch() */
    4747
    4848/* Speculation vector handler */
    49 .macro SPECULATION_VECTOR_HANDLER vector
    50     .org ivt + \vector * 0x100
     49.macro SPECULATION_VECTOR_HANDLER offs
     50    .org ivt + \offs
    5151
    5252    /* 1. Save predicates, IIM, IIP, IPSR and ISR CR's in bank 0 registers. */
     
    9494 * @param handler Interrupt handler address.
    9595 */
    96 .macro HEAVYWEIGHT_HANDLER vector, handler=exc_dispatch
    97     .org ivt + \vector * 0x100
    98         mov R_VECTOR = \vector
     96.macro HEAVYWEIGHT_HANDLER offs, handler=universal_handler
     97    .org ivt + \offs
     98        mov R_OFFS = \offs
    9999        movl R_HANDLER = \handler ;;
    100100        br heavyweight_handler
     
    165165         * copy input parameters to stack.
    166166         */
    167         cmp.eq p6, p5 = EXC_BREAK_INSTRUCTION, R_VECTOR ;;
     167        mov R_TMP = 0x2c00 ;;
     168        cmp.eq p6, p5 = R_OFFS, R_TMP ;;
    168169       
    169170        /*
     
    308309        mov loc1 = R_RET        /* b0 belonging to interrupted context */
    309310        mov loc2 = R_HANDLER
    310         mov out0 = R_VECTOR
     311        mov out0 = R_OFFS
    311312       
    312313        add out1 = STACK_SCRATCH_AREA_SIZE, r12
     
    542543.align 32768
    543544ivt:
    544         HEAVYWEIGHT_HANDLER 0x00
    545         HEAVYWEIGHT_HANDLER 0x04
    546         HEAVYWEIGHT_HANDLER 0x08
    547         HEAVYWEIGHT_HANDLER 0x0c
    548         HEAVYWEIGHT_HANDLER 0x10
    549         HEAVYWEIGHT_HANDLER 0x14
    550         HEAVYWEIGHT_HANDLER 0x18
    551         HEAVYWEIGHT_HANDLER 0x1c
    552         HEAVYWEIGHT_HANDLER 0x20
    553         HEAVYWEIGHT_HANDLER 0x24
    554         HEAVYWEIGHT_HANDLER 0x28
    555         HEAVYWEIGHT_HANDLER 0x2c break_instruction
    556         HEAVYWEIGHT_HANDLER 0x30
    557         HEAVYWEIGHT_HANDLER 0x34
    558         HEAVYWEIGHT_HANDLER 0x38
    559         HEAVYWEIGHT_HANDLER 0x3c
    560         HEAVYWEIGHT_HANDLER 0x40
    561         HEAVYWEIGHT_HANDLER 0x44
    562         HEAVYWEIGHT_HANDLER 0x48
    563         HEAVYWEIGHT_HANDLER 0x4c
    564 
    565         HEAVYWEIGHT_HANDLER 0x50
    566         HEAVYWEIGHT_HANDLER 0x51
    567         HEAVYWEIGHT_HANDLER 0x52
    568         HEAVYWEIGHT_HANDLER 0x53
    569         HEAVYWEIGHT_HANDLER 0x54
    570         HEAVYWEIGHT_HANDLER 0x55
    571         HEAVYWEIGHT_HANDLER 0x56
    572         SPECULATION_VECTOR_HANDLER 0x57
    573         HEAVYWEIGHT_HANDLER 0x58
    574         HEAVYWEIGHT_HANDLER 0x59
    575         HEAVYWEIGHT_HANDLER 0x5a
    576         HEAVYWEIGHT_HANDLER 0x5b
    577         HEAVYWEIGHT_HANDLER 0x5c
    578         HEAVYWEIGHT_HANDLER 0x5d
    579         HEAVYWEIGHT_HANDLER 0x5e
    580         HEAVYWEIGHT_HANDLER 0x5f
    581        
    582         HEAVYWEIGHT_HANDLER 0x60
    583         HEAVYWEIGHT_HANDLER 0x61
    584         HEAVYWEIGHT_HANDLER 0x62
    585         HEAVYWEIGHT_HANDLER 0x63
    586         HEAVYWEIGHT_HANDLER 0x64
    587         HEAVYWEIGHT_HANDLER 0x65
    588         HEAVYWEIGHT_HANDLER 0x66
    589         HEAVYWEIGHT_HANDLER 0x67
    590         HEAVYWEIGHT_HANDLER 0x68
    591         HEAVYWEIGHT_HANDLER 0x69
    592         HEAVYWEIGHT_HANDLER 0x6a
    593         HEAVYWEIGHT_HANDLER 0x6b
    594         HEAVYWEIGHT_HANDLER 0x6c
    595         HEAVYWEIGHT_HANDLER 0x6d
    596         HEAVYWEIGHT_HANDLER 0x6e
    597         HEAVYWEIGHT_HANDLER 0x6f
    598 
    599         HEAVYWEIGHT_HANDLER 0x70
    600         HEAVYWEIGHT_HANDLER 0x71
    601         HEAVYWEIGHT_HANDLER 0x72
    602         HEAVYWEIGHT_HANDLER 0x73
    603         HEAVYWEIGHT_HANDLER 0x74
    604         HEAVYWEIGHT_HANDLER 0x75
    605         HEAVYWEIGHT_HANDLER 0x76
    606         HEAVYWEIGHT_HANDLER 0x77
    607         HEAVYWEIGHT_HANDLER 0x78
    608         HEAVYWEIGHT_HANDLER 0x79
    609         HEAVYWEIGHT_HANDLER 0x7a
    610         HEAVYWEIGHT_HANDLER 0x7b
    611         HEAVYWEIGHT_HANDLER 0x7c
    612         HEAVYWEIGHT_HANDLER 0x7d
    613         HEAVYWEIGHT_HANDLER 0x7e
    614         HEAVYWEIGHT_HANDLER 0x7f
     545        HEAVYWEIGHT_HANDLER 0x0000
     546        HEAVYWEIGHT_HANDLER 0x0400
     547        HEAVYWEIGHT_HANDLER 0x0800
     548        HEAVYWEIGHT_HANDLER 0x0c00 alternate_instruction_tlb_fault
     549        HEAVYWEIGHT_HANDLER 0x1000 alternate_data_tlb_fault
     550        HEAVYWEIGHT_HANDLER 0x1400 data_nested_tlb_fault
     551        HEAVYWEIGHT_HANDLER 0x1800
     552        HEAVYWEIGHT_HANDLER 0x1c00
     553        HEAVYWEIGHT_HANDLER 0x2000 data_dirty_bit_fault
     554        HEAVYWEIGHT_HANDLER 0x2400 instruction_access_bit_fault
     555        HEAVYWEIGHT_HANDLER 0x2800 data_access_bit_fault
     556        HEAVYWEIGHT_HANDLER 0x2c00 break_instruction
     557        HEAVYWEIGHT_HANDLER 0x3000 external_interrupt   /* For external interrupt, heavyweight handler is used. */
     558        HEAVYWEIGHT_HANDLER 0x3400
     559        HEAVYWEIGHT_HANDLER 0x3800
     560        HEAVYWEIGHT_HANDLER 0x3c00
     561        HEAVYWEIGHT_HANDLER 0x4000
     562        HEAVYWEIGHT_HANDLER 0x4400
     563        HEAVYWEIGHT_HANDLER 0x4800
     564        HEAVYWEIGHT_HANDLER 0x4c00
     565
     566        HEAVYWEIGHT_HANDLER 0x5000 page_not_present
     567        HEAVYWEIGHT_HANDLER 0x5100
     568        HEAVYWEIGHT_HANDLER 0x5200
     569        HEAVYWEIGHT_HANDLER 0x5300 data_access_rights_fault
     570        HEAVYWEIGHT_HANDLER 0x5400 general_exception
     571        HEAVYWEIGHT_HANDLER 0x5500 disabled_fp_register
     572        HEAVYWEIGHT_HANDLER 0x5600
     573        SPECULATION_VECTOR_HANDLER 0x5700
     574        HEAVYWEIGHT_HANDLER 0x5800
     575        HEAVYWEIGHT_HANDLER 0x5900
     576        HEAVYWEIGHT_HANDLER 0x5a00
     577        HEAVYWEIGHT_HANDLER 0x5b00
     578        HEAVYWEIGHT_HANDLER 0x5c00
     579        HEAVYWEIGHT_HANDLER 0x5d00
     580        HEAVYWEIGHT_HANDLER 0x5e00
     581        HEAVYWEIGHT_HANDLER 0x5f00
     582       
     583        HEAVYWEIGHT_HANDLER 0x6000
     584        HEAVYWEIGHT_HANDLER 0x6100
     585        HEAVYWEIGHT_HANDLER 0x6200
     586        HEAVYWEIGHT_HANDLER 0x6300
     587        HEAVYWEIGHT_HANDLER 0x6400
     588        HEAVYWEIGHT_HANDLER 0x6500
     589        HEAVYWEIGHT_HANDLER 0x6600
     590        HEAVYWEIGHT_HANDLER 0x6700
     591        HEAVYWEIGHT_HANDLER 0x6800
     592        HEAVYWEIGHT_HANDLER 0x6900
     593        HEAVYWEIGHT_HANDLER 0x6a00
     594        HEAVYWEIGHT_HANDLER 0x6b00
     595        HEAVYWEIGHT_HANDLER 0x6c00
     596        HEAVYWEIGHT_HANDLER 0x6d00
     597        HEAVYWEIGHT_HANDLER 0x6e00
     598        HEAVYWEIGHT_HANDLER 0x6f00
     599
     600        HEAVYWEIGHT_HANDLER 0x7000
     601        HEAVYWEIGHT_HANDLER 0x7100
     602        HEAVYWEIGHT_HANDLER 0x7200
     603        HEAVYWEIGHT_HANDLER 0x7300
     604        HEAVYWEIGHT_HANDLER 0x7400
     605        HEAVYWEIGHT_HANDLER 0x7500
     606        HEAVYWEIGHT_HANDLER 0x7600
     607        HEAVYWEIGHT_HANDLER 0x7700
     608        HEAVYWEIGHT_HANDLER 0x7800
     609        HEAVYWEIGHT_HANDLER 0x7900
     610        HEAVYWEIGHT_HANDLER 0x7a00
     611        HEAVYWEIGHT_HANDLER 0x7b00
     612        HEAVYWEIGHT_HANDLER 0x7c00
     613        HEAVYWEIGHT_HANDLER 0x7d00
     614        HEAVYWEIGHT_HANDLER 0x7e00
     615        HEAVYWEIGHT_HANDLER 0x7f00
Note: See TracChangeset for help on using the changeset viewer.