* ========== Copyright Header Begin ==========================================
* OpenSPARC T2 Processor File: isa3_basic_idtlb4.s
* Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
* 4150 Network Circle, Santa Clara, California 95054, U.S.A.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* For the avoidance of doubt, and except that if any non-GPL license
* choice is available it will apply instead, Sun elects to use only
* the General Public License version 2 (GPLv2) at this time for any
* software where a choice of GPL license versions is made
* available with the language indicating that GPLv2 or any later version
* may be used, or where a choice of which version of the GPL is applied is
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* ========== Copyright Header End ============================================
! don't ignore Illegal_instruction trap!
#define MY_GENERIC_TRAP \
#define H_HT0_Illegal_instruction_0x10
#define My_HT0_Illegal_instruction_0x10 MY_GENERIC_TRAP
#define H_HT1_Illegal_instruction_0x10
#define My_HT1_Illegal_instruction_0x10 MY_GENERIC_TRAP
#define H_T0_Illegal_instruction_0x10
#define My_T0_Illegal_instruction_0x10 MY_GENERIC_TRAP
#define H_T1_Illegal_instruction_0x10
#define My_T1_Illegal_instruction_0x10 MY_GENERIC_TRAP
#define MAIN_PAGE_NUCLEUS_ALSO
#define MAIN_PAGE_HV_ALSO
! ! large page size to try and prevent TTE overlaps
! #define PART0_Z_TSB_SIZE_0 3
! #define PART0_NZ_TSB_SIZE_0 3
/************************************************************************
************************************************************************/
ta T_CHANGE_PRIV ! run in priv mode
rdth_id ! get thread ID in %o1
setx user_data_start, %g1, %g3
!# Initialize registers ..
!# This threads memory space into each windows %l7
setx 0x0000000000400000, %l0, %l6
!# Initialize asi register
INIT_TH_FP_REG(%l7,%f0,0x2F47F143426FF3F5)
INIT_TH_FP_REG(%l7,%f2,0x066E334D2832A788)
INIT_TH_FP_REG(%l7,%f4,0xE64CC38D3A9D93B1)
INIT_TH_FP_REG(%l7,%f6,0x52DDBB5D3C7F633A)
INIT_TH_FP_REG(%l7,%f8,0x2A76C868D7BE07AC)
INIT_TH_FP_REG(%l7,%f10,0x54B63F4A7ECD3112)
INIT_TH_FP_REG(%l7,%f12,0xEC7C15A64433EFF3)
INIT_TH_FP_REG(%l7,%f14,0x0D6724BAF3AF2D23)
INIT_TH_FP_REG(%l7,%f16,0x0447E11EAE229FF7)
INIT_TH_FP_REG(%l7,%f18,0x59AE8236385BF241)
INIT_TH_FP_REG(%l7,%f20,0xCD0EA6FC33A75976)
INIT_TH_FP_REG(%l7,%f22,0x1F2BFA386B1B0031)
INIT_TH_FP_REG(%l7,%f24,0x39586BAC26A0BC7F)
INIT_TH_FP_REG(%l7,%f26,0xED4A7D0E9C3E3720)
INIT_TH_FP_REG(%l7,%f28,0x4AFDBE01787F71F4)
INIT_TH_FP_REG(%l7,%f30,0x440E95E5D9E790F5)
nop ! wrhpr %l0, %g0, %hsys_tick_cmpr changed by convert2hboot
prefetch [%l7 + 0x14], 0x2
nop ! rdhpr %hintp, %o4 changed by convert2hboot
prefetch [%l7 + 0x0C], 0x1
prefetch [%l7 + %l0], 0x1
prefetch [%l7 + 0x24], 0x0
!Yo - got one - imm_asi 0x5f
!And yo - immediate is 0x0
nop ! tcc %icc, 0x7 changed by convert2hboot
nop ! tl %xcc, 0x5 changed by convert2hboot
fandnot1s %f26, %f30, %f2
nop ! tpos %xcc, 0x5 changed by convert2hboot
nop ! stxa %i4, [%l7 + %g6] 0x15 ASI use changed by convert2hboot
!Yo - got one - imm_asi 0x52
!And yo - immediate is 0x110
prefetch [%l7 + 0x74], 0x3
nop ! wrpr 0x1, %tl changed by convert2hboot
nop ! wrpr %l1, %tpc changed by convert2hboot
nop ! wrpr %l1, %tnpc changed by convert2hboot
setx 0x34400001400, %l0, %l1
nop ! wrpr %l1, %tstate changed by convert2hboot
nop ! wrhpr 0x4, %htstate changed by convert2hboot
nop ! retry changed by convert2hboot
nop ! tne %icc, 0x6 changed by convert2hboot
nop ! sir 0x1CE5 changed by convert2hboot
prefetch [%l7 + 0x48], 0x1
!Yo - got one - imm_asi 0x58
!And yo - immediate is 0x18
nop ! ldxa [%g0 + %i6] 0x58, %o3 ASI use changed by convert2hboot
nop ! stxa %l3, [%l7 + %i5] 0x04 ASI use changed by convert2hboot
nop ! stxa %l1, [%l7 + %g1] 0x14 ASI use changed by convert2hboot
nop ! ldxa [%l7 + %g4] 0x80, %o7 ASI use changed by convert2hboot
nop ! tn %xcc, 0x5 changed by convert2hboot
prefetch [%l7 + %i4], 0x0
prefetch [%l7 + 0x6C], 0x3
prefetch [%l7 + 0x30], 0x2
nop ! tge %xcc, 0x2 changed by convert2hboot
nop ! stxa %l5, [%l7 + %o6] 0x88 ASI use changed by convert2hboot
nop ! wrpr %g2, 0x13FC, %tick changed by convert2hboot
nop ! stxa %o1, [%l7 + %l5] 0x14 ASI use changed by convert2hboot
nop ! tneg %xcc, 0x6 changed by convert2hboot
nop ! stxa %o3, [%l7 + %o3] 0x2b ASI use changed by convert2hboot
prefetch [%l7 + 0x70], 0x1
nop ! tle %icc, 0x2 changed by convert2hboot
nop ! tvs %xcc, 0x7 changed by convert2hboot
prefetch [%l7 + 0x68], 0x0
nop ! ldxa [%l7 + %i1] 0x19, %o0 ASI use changed by convert2hboot
prefetch [%l7 + 0x50], 0x3
prefetch [%l7 + 0x2C], 0x3
nop ! tleu %xcc, 0x6 changed by convert2hboot
prefetch [%l7 + 0x7C], 0x2
nop ! stxa %o7, [%l7 + %g3] 0x10 ASI use changed by convert2hboot
nop ! tsubcctv %i5, %o4, %o0 changed by convert2hboot
nop ! tsubcctv %g2, %l5, %i4 changed by convert2hboot
!Yo - got one - imm_asi 0x50
!And yo - immediate is 0x00
nop ! ldxa [%g0 + %o5] 0x50, %g3 ASI use changed by convert2hboot
nop ! rdhpr %htba, %l2 changed by convert2hboot
nop ! ldxa [%l7 + %l6] 0x1c, %i7 ASI use changed by convert2hboot
!Yo - got one - imm_asi 0x58
!And yo - immediate is 0x20
nop ! tcs %xcc, 0x7 changed by convert2hboot
nop ! stxa %i1, [%l7 + %o2] 0x1c ASI use changed by convert2hboot
nop ! tneg %xcc, 0x3 changed by convert2hboot
!Yo - got one - imm_asi 0x50
!And yo - immediate is 0x18
faligndata %f24, %f4, %f24
nop ! wrhpr %l0, 0x4AD, %hsys_tick_cmpr changed by convert2hboot
nop ! rdhpr %htba, %l6 changed by convert2hboot
nop ! taddcc %i6, 0x093D, %i4 changed by convert2hboot
nop ! rdhpr %htba, %o5 changed by convert2hboot
prefetch [%l7 + 0x54], 0x1
prefetch [%l7 + 0x6C], 0x0
prefetch [%l7 + 0x68], 0x1
nop ! tle %xcc, 0x5 changed by convert2hboot
nop ! stxa %l3, [%l7 + %o4] 0x89 ASI use changed by convert2hboot
nop ! ldxa [%l7 + %i6] 0x11, %g1 ASI use changed by convert2hboot
prefetch [%l7 + 0x38], 0x1
prefetch [%l7 + 0x58], 0x3
nop ! ldxa [%l7 + %g4] 0x1d, %i5 ASI use changed by convert2hboot
nop ! tn %icc, 0x3 changed by convert2hboot
prefetch [%l7 + 0x44], 0x1
nop ! stxa %l3, [%l7 + %o7] 0x81 ASI use changed by convert2hboot
prefetch [%l7 + 0x78], 0x1
nop ! tle %icc, 0x4 changed by convert2hboot
nop ! tcs %xcc, 0x1 changed by convert2hboot
nop ! tneg %icc, 0x7 changed by convert2hboot
nop ! tge %icc, 0x7 changed by convert2hboot
nop ! sir 0x0CB5 changed by convert2hboot
prefetch [%l7 + 0x60], 0x3
prefetch [%l7 + 0x34], 0x3
!Yo - got one - imm_asi 0x20
!And yo - immediate is 0x28
nop ! ldxa [%g0 + %l5] 0x20, %l2 ASI use changed by convert2hboot
prefetch [%l7 + 0x5C], 0x3
prefetch [%l7 + 0x4C], 0x3
prefetch [%l7 + 0x1C], 0x1
prefetch [%l7 + 0x74], 0x1
nop ! ldxa [%l7 + %o3] 0x04, %o7 ASI use changed by convert2hboot
nop ! tg %xcc, 0x3 changed by convert2hboot
nop ! rdhpr %htba, %o2 changed by convert2hboot
nop ! rdhpr %hsys_tick_cmpr, %g6 changed by convert2hboot
prefetch [%l7 + 0x6C], 0x1
!Yo - got one - imm_asi 0x20
!And yo - immediate is 0x20
nop ! ldxa [%g0 + %g3] 0x20, %l5 ASI use changed by convert2hboot
!Yo - got one - imm_asi 0x21
!And yo - immediate is 0x8
nop ! rdhpr %hintp, %o2 changed by convert2hboot
nop ! tneg %xcc, 0x6 changed by convert2hboot
nop ! tsubcc %l5, %i4, %i5 changed by convert2hboot
nop ! wrhpr %l0, 0x890, %hsys_tick_cmpr changed by convert2hboot
prefetch [%l7 + %l6], 0x3
nop ! tle %xcc, 0x5 changed by convert2hboot
prefetch [%l7 + 0x14], 0x1
nop ! stxa %o7, [%l7 + %l0] 0x22 ASI use changed by convert2hboot
prefetch [%l7 + 0x34], 0x2
nop ! wrhpr %l0, 0xBB6, %hsys_tick_cmpr changed by convert2hboot
nop ! rdhpr %hpstate, %o0 changed by convert2hboot
prefetch [%l7 + 0x44], 0x3
prefetch [%l7 + 0x48], 0x0
nop ! tvs %icc, 0x5 changed by convert2hboot
fmuld8sux16 %f19, %f2, %f8
prefetch [%l7 + 0x5C], 0x0
nop ! ldxa [%l7 + %o0] 0x04, %l3 ASI use changed by convert2hboot
prefetch [%l7 + 0x70], 0x0
prefetch [%l7 + 0x68], 0x2
fmul8x16au %f5, %f11, %f22
nop ! rdhpr %hpstate, %o6 changed by convert2hboot
nop ! tge %icc, 0x1 changed by convert2hboot
prefetch [%l7 + %i3], 0x3
prefetch [%l7 + 0x24], 0x1
nop ! wrpr %l1, 0x0D2B, %tick changed by convert2hboot
fandnot2s %f22, %f4, %f27
nop ! sir 0x026A changed by convert2hboot
prefetch [%l7 + 0x2C], 0x2
prefetch [%l7 + 0x1C], 0x0
nop ! wrpr %o5, %l6, %tick changed by convert2hboot
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
EXIT_GOOD /* test finish */
/************************************************************************
************************************************************************/