Port-sparc64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

sun4v trap table



For sparc64 in locore.s below is the fragment from the sun4v trap table for TL (Trap Level) 0:

        SPILL64(uspill8_sun4vt0,ASI_AIUS)                       ! 0x080 spill_0_normal -- used to save user windows in user mode
        SPILL32(uspill4_sun4vt0,ASI_AIUS)                       ! 0x084 spill_1_normal
        SPILLBOTH(uspill8_sun4vt0,uspill4_sun4vt0,ASI_AIUS)     ! 0x088 spill_2_normal
        sun4v_trap_entry_spill_fill_fail 1                      ! 0x08c spill_3_normal
        SPILL64(kspill8_sun4vt0,ASI_N)                          ! 0x090 spill_4_normal  -- used to save supervisor windows
        SPILL32(kspill4_sun4vt0,ASI_N)                          ! 0x094 spill_5_normal
        SPILLBOTH(kspill8_sun4vt0,kspill4_sun4vt0,ASI_N)        ! 0x098 spill_6_normal
        sun4v_trap_entry_spill_fill_fail 1                      ! 0x09c spill_7_normal

Does anyone know how the TT (Trap Type) maps to the table entries? For example, when TT=0x080 why does the kernel think it needs to use SPILL64() and for example, not SPILL32(). Where is this defined?

The architecture manual does not seem to specify the details, so I assume it is left up to the OS kernel to decide? Is this correct?


Home | Main Index | Thread Index | Old Index