* ========== Copyright Header Begin ==========================================
* OpenSPARC T2 Processor File: tlu_rand5_7745150.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 ============================================
#define IMMU_SKIP_IF_NO_TTE
#define DMMU_SKIP_IF_NO_TTE
#define MAIN_PAGE_NUCLEUS_ALSO
#define MAIN_PAGE_HV_ALSO
#define MAIN_PAGE_VA_IS_RA_ALSO
#define DISABLE_PART_LIMIT_CHECK
#define MAIN_PAGE_USE_CONFIG 3
#define PART0_Z_TSB_SIZE_3 10
#define PART0_Z_PAGE_SIZE_3 1
#define PART0_NZ_TSB_SIZE_3 10
#define PART0_NZ_PAGE_SIZE_3 1
#define PART0_Z_TSB_SIZE_1 3
#define PART0_NZ_TSB_SIZE_1 3
#define USER_PAGE_CUSTOM_MAP
#define MAIN_BASE_TEXT_VA 0x333000000
#define MAIN_BASE_TEXT_RA 0x033000000
#define MAIN_BASE_DATA_VA 0x379400000
#define MAIN_BASE_DATA_RA 0x079400000
#define HIGHVA_HIGHNUM 0x3
#undef H_HT0_Instruction_Access_MMU_Error_0x71
#define H_HT0_Instruction_Access_MMU_Error_0x71 inst_access_mmu_error_handler
#undef H_HT0_Instruction_access_error_0x0a
#define H_HT0_Instruction_access_error_0x0a inst_access_error_handler
#undef H_HT0_Internal_Processor_Error_0x29
#define H_HT0_Internal_Processor_Error_0x29 int_proc_err_handler
#undef H_HT0_Data_Access_MMU_Error_0x72
#define H_HT0_Data_Access_MMU_Error_0x72 data_access_mmu_error_handler
#undef H_HT0_Data_access_error_0x32
#define H_HT0_Data_access_error_0x32 data_access_error_handler
#undef H_HT0_Hw_Corrected_Error_0x63
#define H_HT0_Hw_Corrected_Error_0x63 hw_corrected_error_handler
#undef H_HT0_Sw_Recoverable_Error_0x40
#define H_HT0_Sw_Recoverable_Error_0x40 sw_recoverable_error_handler
#undef H_HT0_Store_Error_0x07
#define H_HT0_Store_Error_0x07 store_error_handler
#define DAE_SKIP_IF_SOCU_ERROR
# 5 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#ifndef T_HANDLER_RAND4_1
#define T_HANDLER_RAND4_1 b .+16;\
sdiv %r1, %r0, %l4;nop;nop
#ifndef T_HANDLER_RAND7_1
#define T_HANDLER_RAND7_1 b .+28;\
nop; nop ; nop; nop; illtrap
#ifndef T_HANDLER_RAND4_2
#define T_HANDLER_RAND4_2 save %i7, %g0, %i7; \
#ifndef T_HANDLER_RAND7_2
#define T_HANDLER_RAND7_2 b .+8 ;\
wrpr %l3, %r0, %tstate; nop
#ifndef T_HANDLER_RAND4_3
#define T_HANDLER_RAND4_3 save %i7, %g0, %i7;\
#ifndef T_HANDLER_RAND7_3
#define T_HANDLER_RAND7_3 b .+8 ;\
stda %f16,[%i7]ASI_BLOCK_AS_IF_USER_PRIMARY ;\
stda %f0,[%i7]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE ;
#ifndef T_HANDLER_RAND4_4
#define T_HANDLER_RAND4_4 b .+4 ; b .+4; b .+4; b .+4
#ifndef T_HANDLER_RAND7_4
#define T_HANDLER_RAND7_4 b .+8;\
#ifndef T_HANDLER_RAND4_5
#define T_HANDLER_RAND4_5 ldda [%r31]ASI_NUCLEUS_QUAD_LDD, %l4;\
stda %l4, [%i7]ASI_BLOCK_PRIMARY_LITTLE;
#ifndef T_HANDLER_RAND7_5
#define T_HANDLER_RAND7_5 save %i7, %g0, %i7;\
#ifndef T_HANDLER_RAND4_6
#define T_HANDLER_RAND4_6 ldda [%r31]ASI_BLOCK_AS_IF_USER_PRIMARY, %l2;\
stda %f0,[%r31]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE;
#ifndef T_HANDLER_RAND7_6
#define T_HANDLER_RAND7_6 umul %o4, 2, %o5;\
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#ifndef HT_HANDLER_RAND4_1
#define HT_HANDLER_RAND4_1 mov 0x80, %l3;\
#ifndef HT_HANDLER_RAND7_1
#define HT_HANDLER_RAND7_1 b .+28;\
nop; nop ; nop; nop; illtrap
#ifndef HT_HANDLER_RAND4_2
#define HT_HANDLER_RAND4_2 rdpr %tstate, %l2;\
wrpr %l2, 0x800, %tstate;\
#ifndef HT_HANDLER_RAND7_2
#define HT_HANDLER_RAND7_2 b .+8 ;\
wrhpr %l3, %r0, %htstate; nop
#ifndef HT_HANDLER_RAND4_3
#define HT_HANDLER_RAND4_3 stxa %l4, [%r31]ASI_AS_IF_USER_PRIMARY;\
ldxa [%r31]ASI_AS_IF_USER_PRIMARY, %l4;
#ifndef HT_HANDLER_RAND7_3
#define HT_HANDLER_RAND7_3 b .+8 ;\
stda %f16,[%i7]ASI_BLOCK_AS_IF_USER_PRIMARY ;\
stda %f0,[%i7]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE ;
#ifndef HT_HANDLER_RAND4_4
#define HT_HANDLER_RAND4_4 ldda [%i7]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE, %l3;\
stxa %l3, [%g0]ASI_LSU_CONTROL; nop
#ifndef HT_HANDLER_RAND7_4
#define HT_HANDLER_RAND7_4 rdpr %tnpc, %l3;\
#ifndef HT_HANDLER_RAND4_5
#define HT_HANDLER_RAND4_5 ldda [%r31]ASI_NUCLEUS_QUAD_LDD, %l4;\
stda %f32, [%r31]ASI_BLOCK_PRIMARY_LITTLE;
#ifndef HT_HANDLER_RAND7_5
#define HT_HANDLER_RAND7_5 save %i7, %g0, %i7;\
#ifndef HT_HANDLER_RAND4_6
#define HT_HANDLER_RAND4_6 ld [%r31], %l2;\
stda %f0,[%i7]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE;
#ifndef HT_HANDLER_RAND7_6
#define HT_HANDLER_RAND7_6 rdhpr %htstate, %o4;\
wrhpr %o4, %r0, %htstate;\
!!!!!!!!!!!!!!!!!!!!!!!!!
#define ENABLE_T1_Privileged_Opcode_0x11
#define ENABLE_T1_Fp_Disabled_0x20
#define ENABLE_HT0_Watchdog_Reset_0x02
#define My_RED_Mode_Other_Reset
#define My_RED_Mode_Other_Reset \
nop;retry;nop;nop;nop;nop;nop
#define H_HT0_Software_Initiated_Reset_0x04
#define SUN_H_HT0_Software_Initiated_Reset_0x04 \
setx Software_Reset_Handler, %g1, %g2 ;\
# 198 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_T1_Clean_Window_0x24
#define SUN_H_T1_Clean_Window_0x24 \
wrpr %l1, %g0, %cleanwin;\
retry; nop; nop; nop; nop
#define H_T1_Clean_Window_0x25
#define SUN_H_T1_Clean_Window_0x25 \
wrpr %l1, %g0, %cleanwin;\
retry; nop; nop; nop; nop
#define H_T1_Clean_Window_0x26
#define SUN_H_T1_Clean_Window_0x26 \
wrpr %l1, %g0, %cleanwin;\
retry; nop; nop; nop; nop
#define H_T1_Clean_Window_0x27
#define SUN_H_T1_Clean_Window_0x27 \
wrpr %l1, %g0, %cleanwin;\
retry; nop; nop; nop; nop
# 227 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_HT0_Tag_Overflow
#define My_HT0_Tag_Overflow \
#define H_T0_Tag_Overflow
#define My_T0_Tag_Overflow \
#define H_T1_Tag_Overflow_0x23
#define SUN_H_T1_Tag_Overflow_0x23 \
#define H_T0_Window_Spill_0_Normal_Trap
#define SUN_H_T0_Window_Spill_0_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_1_Normal_Trap
#define SUN_H_T0_Window_Spill_1_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_2_Normal_Trap
#define SUN_H_T0_Window_Spill_2_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_3_Normal_Trap
#define SUN_H_T0_Window_Spill_3_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_4_Normal_Trap
#define SUN_H_T0_Window_Spill_4_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_5_Normal_Trap
#define SUN_H_T0_Window_Spill_5_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_6_Normal_Trap
#define SUN_H_T0_Window_Spill_6_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_7_Normal_Trap
#define SUN_H_T0_Window_Spill_7_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_0_Other_Trap
#define SUN_H_T0_Window_Spill_0_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_1_Other_Trap
#define SUN_H_T0_Window_Spill_1_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_2_Other_Trap
#define SUN_H_T0_Window_Spill_2_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_3_Other_Trap
#define SUN_H_T0_Window_Spill_3_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_4_Other_Trap
#define SUN_H_T0_Window_Spill_4_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_5_Other_Trap
#define SUN_H_T0_Window_Spill_5_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_6_Other_Trap
#define SUN_H_T0_Window_Spill_6_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Spill_7_Other_Trap
#define SUN_H_T0_Window_Spill_7_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_0_Normal_Trap
#define SUN_H_T0_Window_Fill_0_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_1_Normal_Trap
#define SUN_H_T0_Window_Fill_1_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_2_Normal_Trap
#define SUN_H_T0_Window_Fill_2_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_3_Normal_Trap
#define SUN_H_T0_Window_Fill_3_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_4_Normal_Trap
#define SUN_H_T0_Window_Fill_4_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_5_Normal_Trap
#define SUN_H_T0_Window_Fill_5_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_6_Normal_Trap
#define SUN_H_T0_Window_Fill_6_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_7_Normal_Trap
#define SUN_H_T0_Window_Fill_7_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_0_Other_Trap
#define SUN_H_T0_Window_Fill_0_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_1_Other_Trap
#define SUN_H_T0_Window_Fill_1_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_2_Other_Trap
#define SUN_H_T0_Window_Fill_2_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_3_Other_Trap
#define SUN_H_T0_Window_Fill_3_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_4_Other_Trap
#define SUN_H_T0_Window_Fill_4_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_5_Other_Trap
#define SUN_H_T0_Window_Fill_5_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_6_Other_Trap
#define SUN_H_T0_Window_Fill_6_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Window_Fill_7_Other_Trap
#define SUN_H_T0_Window_Fill_7_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
# 339 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_T1_Window_Spill_0_Normal_Trap
#define SUN_H_T1_Window_Spill_0_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_1_Normal_Trap
#define SUN_H_T1_Window_Spill_1_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_2_Normal_Trap
#define SUN_H_T1_Window_Spill_2_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_3_Normal_Trap
#define SUN_H_T1_Window_Spill_3_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_4_Normal_Trap
#define SUN_H_T1_Window_Spill_4_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_5_Normal_Trap
#define SUN_H_T1_Window_Spill_5_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_6_Normal_Trap
#define SUN_H_T1_Window_Spill_6_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_7_Normal_Trap
#define SUN_H_T1_Window_Spill_7_Normal_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_0_Other_Trap
#define SUN_H_T1_Window_Spill_0_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_1_Other_Trap
#define SUN_H_T1_Window_Spill_1_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_2_Other_Trap
#define SUN_H_T1_Window_Spill_2_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_3_Other_Trap
#define SUN_H_T1_Window_Spill_3_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_4_Other_Trap
#define SUN_H_T1_Window_Spill_4_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_5_Other_Trap
#define SUN_H_T1_Window_Spill_5_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_6_Other_Trap
#define SUN_H_T1_Window_Spill_6_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Spill_7_Other_Trap
#define SUN_H_T1_Window_Spill_7_Other_Trap saved; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_0_Normal_Trap
#define SUN_H_T1_Window_Fill_0_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_1_Normal_Trap
#define SUN_H_T1_Window_Fill_1_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_2_Normal_Trap
#define SUN_H_T1_Window_Fill_2_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_3_Normal_Trap
#define SUN_H_T1_Window_Fill_3_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_4_Normal_Trap
#define SUN_H_T1_Window_Fill_4_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_5_Normal_Trap
#define SUN_H_T1_Window_Fill_5_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_6_Normal_Trap
#define SUN_H_T1_Window_Fill_6_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_7_Normal_Trap
#define SUN_H_T1_Window_Fill_7_Normal_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_0_Other_Trap
#define SUN_H_T1_Window_Fill_0_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_1_Other_Trap
#define SUN_H_T1_Window_Fill_1_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_2_Other_Trap
#define SUN_H_T1_Window_Fill_2_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_3_Other_Trap
#define SUN_H_T1_Window_Fill_3_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_4_Other_Trap
#define SUN_H_T1_Window_Fill_4_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_5_Other_Trap
#define SUN_H_T1_Window_Fill_5_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_6_Other_Trap
#define SUN_H_T1_Window_Fill_6_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T1_Window_Fill_7_Other_Trap
#define SUN_H_T1_Window_Fill_7_Other_Trap restored; retry; nop;nop;nop;nop;nop;nop;
#define H_T0_Trap_Instruction_0
#define My_T0_Trap_Instruction_0 \
#define H_T0_Trap_Instruction_1
#define My_T0_Trap_Instruction_1 \
#define H_T0_Trap_Instruction_2
#define My_T0_Trap_Instruction_2 \
#define H_T0_Trap_Instruction_3
#define My_T0_Trap_Instruction_3 \
#define H_T0_Trap_Instruction_4
#define My_T0_Trap_Instruction_4 \
#define H_T0_Trap_Instruction_5
#define My_T0_Trap_Instruction_5 \
#define H_T1_Trap_Instruction_0
#define My_T1_Trap_Instruction_0 \
#define H_T1_Trap_Instruction_1
#define My_T1_Trap_Instruction_1 \
#define H_T1_Trap_Instruction_2
#define My_T1_Trap_Instruction_2 \
#define H_T1_Trap_Instruction_3
#define My_T1_Trap_Instruction_3 \
#define H_T1_Trap_Instruction_4
#define My_T1_Trap_Instruction_4 \
#define H_T1_Trap_Instruction_5
#define My_T1_Trap_Instruction_5 \
#define H_HT0_Trap_Instruction_0
#define My_HT0_Trap_Instruction_0 \
#define H_HT0_Trap_Instruction_1
#define My_HT0_Trap_Instruction_1 \
#define H_HT0_Trap_Instruction_2
#define My_HT0_Trap_Instruction_2 \
#define H_HT0_Trap_Instruction_3
#define My_HT0_Trap_Instruction_3 \
#define H_HT0_Trap_Instruction_4
#define My_HT0_Trap_Instruction_4 \
#define H_HT0_Trap_Instruction_5
#define My_HT0_Trap_Instruction_5 \
#define H_HT0_Mem_Address_Not_Aligned_0x34
#define My_HT0_Mem_Address_Not_Aligned_0x34 \
#define H_HT0_Illegal_instruction_0x10
#define My_HT0_Illegal_instruction_0x10 \
#define H_HT0_DAE_so_page_0x30
#define My_HT0_DAE_so_page_0x30 \
#define H_HT0_DAE_invalid_asi_0x14
#define SUN_H_HT0_DAE_invalid_asi_0x14 \
#define H_HT0_DAE_privilege_violation_0x15
#define SUN_H_HT0_DAE_privilege_violation_0x15 \
#define H_HT0_Privileged_Action_0x37
#define My_HT0_Privileged_Action_0x37 \
#define H_HT0_Lddf_Mem_Address_Not_Aligned_0x35
#define My_HT0_Lddf_Mem_Address_Not_Aligned_0x35 \
#define H_HT0_Stdf_Mem_Address_Not_Aligned_0x36
#define My_HT0_Stdf_Mem_Address_Not_Aligned_0x36 \
#define H_HT0_Fp_exception_ieee_754_0x21
#define My_HT0_Fp_exception_ieee_754_0x21 \
#define H_HT0_Fp_exception_other_0x22
#define My_HT0_Fp_exception_other_0x22 \
#define H_HT0_Division_By_Zero
#define My_HT0_Division_By_Zero \
#define H_T0_Division_By_Zero
#define My_T0_Division_By_Zero \
#define H_T1_Division_By_Zero_0x28
#define My_H_T1_Division_By_Zero_0x28 \
#define H_T0_Division_By_Zero
#define My_T0_Division_By_Zero\
#define H_T0_Fp_exception_ieee_754_0x21
#define My_T0_Fp_exception_ieee_754_0x21 \
#define H_T1_Fp_Exception_Ieee_754_0x21
#define My_H_T1_Fp_Exception_Ieee_754_0x21 \
#define H_T1_Fp_Exception_Other_0x22
#define My_H_T1_Fp_Exception_Other_0x22 \
#define H_T1_Privileged_Opcode_0x11
#define SUN_H_T1_Privileged_Opcode_0x11 \
#define H_HT0_Privileged_opcode_0x11
#define My_HT0_Privileged_opcode_0x11 \
#define H_HT0_Fp_disabled_0x20
#define My_HT0_Fp_disabled_0x20 \
#define H_T0_Fp_disabled_0x20
#define My_T0_Fp_disabled_0x20 \
#define H_T1_Fp_Disabled_0x20
#define My_H_T1_Fp_Disabled_0x20 \
#define H_HT0_Watchdog_Reset_0x02
#define My_HT0_Watchdog_Reset_0x02 \
nop;retry;nop;nop;nop;nop;nop
#define H_T0_Privileged_opcode_0x11
#define My_T0_Privileged_opcode_0x11 \
#define H_T1_Fp_exception_other_0x22
#define My_T1_Fp_exception_other_0x22 \
#define H_T0_Fp_exception_other_0x22
#define My_T0_Fp_exception_other_0x22 \
#define H_HT0_Trap_Level_Zero_0x5f
#define My_HT0_Trap_Level_Zero_0x5f \
#define My_Watchdog_Reset
#define My_Watchdog_Reset \
nop;retry;nop;nop;nop;nop;nop
#define H_HT0_Control_Transfer_Instr_0x74
#define My_H_HT0_Control_Transfer_Instr_0x74 \
wrpr %l3, %l4, %tstate ;\
#define H_T0_Control_Transfer_Instr_0x74
#define My_H_T0_Control_Transfer_Instr_0x74 \
wrpr %l3, %l4, %tstate ;\
#define H_T1_Control_Transfer_Instr_0x74
#define My_H_T1_Control_Transfer_Instr_0x74 \
wrpr %l3, %l4, %tstate ;\
# 707 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_HT0_data_access_protection_0x6c
#define SUN_H_HT0_data_access_protection_0x6c ba daccess_prot_handler; nop
#define H_HT0_PA_Watchpoint_0x61
#define My_H_HT0_PA_Watchpoint_0x61 \
#ifndef H_HT0_Data_access_error_0x32
#define H_HT0_Data_access_error_0x32
#define SUN_H_HT0_Data_access_error_0x32 \
# 722 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_T0_VA_Watchpoint_0x62
#define My_T0_VA_Watchpoint_0x62 \
#define H_T1_VA_Watchpoint_0x62
#define SUN_H_T1_VA_Watchpoint_0x62 \
#define H_HT0_VA_Watchpoint_0x62
#define My_H_HT0_VA_Watchpoint_0x62 \
#define H_HT0_Instruction_VA_Watchpoint_0x75
#define SUN_H_HT0_Instruction_VA_Watchpoint_0x75 \
#define H_HT0_Instruction_Breakpoint_0x76
#define SUN_H_HT0_Instruction_Breakpoint_0x76 \
wrhpr %g1, 0x400, %htstate;\
# 748 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_HT0_Instruction_address_range_0x0d
#define SUN_H_HT0_Instruction_address_range_0x0d \
#define H_HT0_Instruction_real_range_0x0e
#define SUN_H_HT0_Instruction_real_range_0x0e \
#define H_HT0_mem_real_range_0x2d
#define SUN_H_HT0_mem_real_range_0x2d \
# 764 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_HT0_mem_address_range_0x2e
#define SUN_H_HT0_mem_address_range_0x2e \
#define H_HT0_DAE_nc_page_0x16
#define SUN_H_HT0_DAE_nc_page_0x16 \
#define H_HT0_DAE_nfo_page_0x17
#define SUN_H_HT0_DAE_nfo_page_0x17 \
# 780 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_HT0_IAE_unauth_access_0x0b
#define SUN_H_HT0_IAE_unauth_access_0x0b \
# 786 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_HT0_IAE_nfo_page_0x0c
#define SUN_H_HT0_IAE_nfo_page_0x0c \
# 792 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_HT0_Reserved_0x3b
#define SUN_H_HT0_Reserved_0x3b \
# 802 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_handlers.s"
#define H_HT0_IAE_privilege_violation_0x08
#define My_HT0_IAE_privilege_violation_0x08 \
#ifndef H_HT0_Instruction_Access_MMU_Error_0x71
#define H_HT0_Instruction_Access_MMU_Error_0x71
#define SUN_H_HT0_Instruction_Access_MMU_Error_0x71 \
#ifndef H_HT0_Data_Access_MMU_Error_0x72
#define H_HT0_Data_Access_MMU_Error_0x72
#define SUN_H_HT0_Data_Access_MMU_Error_0x72 \
!!!!!!!!!!!!!!!!!!!!!! END of all handlers !!!!!!!!!!!!!!!!!!!
# 12 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_intr_handlers.s"
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!! START of Interrupt Handlers !!!!!!!!!!!!!!!!!
#ifndef INT_HANDLER_RAND4_1
#define INT_HANDLER_RAND4_1 retry; nop; nop; nop
#ifndef INT_HANDLER_RAND7_1
#define INT_HANDLER_RAND7_1 mov 0x20,%g1; mov 1, %g2;stxa %g2,[%g1]0x40
#ifndef INT_HANDLER_RAND4_2
#define INT_HANDLER_RAND4_2 retry; nop; nop; nop
#ifndef INT_HANDLER_RAND7_2
#define INT_HANDLER_RAND7_2 mov 0x80,%g1;stxa %g0,[%g1]0x40
#ifndef INT_HANDLER_RAND4_3
#define INT_HANDLER_RAND4_3 retry; nop; nop; nop
#ifndef INT_HANDLER_RAND7_3
#define INT_HANDLER_RAND7_3 retry; nop; nop; nop ; nop; nop; nop
#define H_HT0_Externally_Initiated_Reset_0x03
#define SUN_H_HT0_Externally_Initiated_Reset_0x03 \
ldxa [%g0] ASI_LSU_CTL_REG, %g1; \
set cregs_lsu_ctl_reg_r64, %g1; \
stxa %g1, [%g0] ASI_LSU_CTL_REG; \
#define My_External_Reset \
ldxa [%g0] ASI_LSU_CTL_REG, %l5; \
set cregs_lsu_ctl_reg_r64, %l5; \
stxa %l5, [%g0] ASI_LSU_CTL_REG; \
!!!!! SPU Interrupt Handlers
#define H_HT0_Control_Word_Queue_Interrupt_0x3c
#define My_HT0_Control_Word_Queue_Interrupt_0x3c \
#define H_HT0_Modular_Arithmetic_Interrupt_0x3d
#define My_H_HT0_Modular_Arithmetic_Interrupt_0x3d \
# 59 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_intr_handlers.s"
!!!!! HW interrupt handlers
#define H_HT0_Interrupt_0x60
#define My_HT0_Interrupt_0x60 \
ldxa [%g0] ASI_SWVR_INTR_RECEIVE, %g5 ;\
ldxa [%g0] ASI_SWVR_INTR_R, %g4 ;\
ldxa [%g0] ASI_SWVR_INTR_RECEIVE, %g3 ;\
!!!!! Queue interrupt handler
# 72 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_intr_handlers.s"
#define H_T0_Cpu_Mondo_Trap_0x7c
#define My_T0_Cpu_Mondo_Trap_0x7c \
#define H_T0_Dev_Mondo_Trap_0x7d
#define My_T0_Dev_Mondo_Trap_0x7d \
#define H_T0_Resumable_Error_0x7e
#define My_T0_Resumable_Error_0x7e \
#define H_T1_Cpu_Mondo_Trap_0x7c
#define My_T1_Cpu_Mondo_Trap_0x7c \
#define H_T1_Dev_Mondo_Trap_0x7d
#define My_T1_Dev_Mondo_Trap_0x7d \
#define H_T1_Resumable_Error_0x7e
#define My_T1_Resumable_Error_0x7e \
#define H_HT0_Reserved_0x7c
#define SUN_H_HT0_Reserved_0x7c \
#define H_HT0_Reserved_0x7d
#define SUN_H_HT0_Reserved_0x7d \
#define H_HT0_Reserved_0x7e
#define SUN_H_HT0_Reserved_0x7e \
# 172 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_intr_handlers.s"
!!!!! Hstick-match trap handler
# 175 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_intr_handlers.s"
#define H_T0_Reserved_0x5e
#define My_T0_Reserved_0x5e \
wrhpr %g3, %g3, %hintp; \
#define H_HT0_Hstick_Match_0x5e
#define My_HT0_Hstick_Match_0x5e \
wrhpr %g3, %g3, %hintp; \
#define H_T0_Reserved_0x5e
#define My_T0_Reserved_0x5e \
wrhpr %g3, %g3, %hintp; \
#define H_T1_Reserved_0x5e
#define My_T1_Reserved_0x5e \
wrhpr %g3, %g3, %hintp; \
# 220 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_intr_handlers.s"
!!!!! SW interuupt handlers
# 223 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_intr_handlers.s"
#define H_T0_Interrupt_Level_14_0x4e
#define My_T0_Interrupt_Level_14_0x4e \
sethi %hi(0x14000), %g3; \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_1_0x41
#define My_T0_Interrupt_Level_1_0x41 \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_2_0x42
#define My_T0_Interrupt_Level_2_0x42 \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_3_0x43
#define My_T0_Interrupt_Level_3_0x43 \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_4_0x44
#define My_T0_Interrupt_Level_4_0x44 \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_5_0x45
#define My_T0_Interrupt_Level_5_0x45 \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_6_0x46
#define My_T0_Interrupt_Level_6_0x46 \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_7_0x47
#define My_T0_Interrupt_Level_7_0x47 \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_8_0x48
#define My_T0_Interrupt_Level_8_0x48 \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_9_0x49
#define My_T0_Interrupt_Level_9_0x49 \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_10_0x4a
#define My_T0_Interrupt_Level_10_0x4a \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_11_0x4b
#define My_T0_Interrupt_Level_11_0x4b \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_12_0x4c
#define My_T0_Interrupt_Level_12_0x4c \
sethi %hi(0x1000), %g3; \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_13_0x4d
#define My_T0_Interrupt_Level_13_0x4d \
sethi %hi(0x2000), %g3; \
wr %g3, %g0, %clear_softint; \
#define H_T0_Interrupt_Level_15_0x4f
#define My_T0_Interrupt_Level_15_0x4f \
sethi %hi(0x8000), %g3; \
wr %g3, %g0, %clear_softint; \
sethi %hi(0x80040000), %g2;\
#define H_T1_Interrupt_Level_14_0x4e
#define My_T1_Interrupt_Level_14_0x4e \
sethi %hi(0x14000), %g3; \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_1_0x41
#define My_T1_Interrupt_Level_1_0x41 \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_2_0x42
#define My_T1_Interrupt_Level_2_0x42 \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_3_0x43
#define My_T1_Interrupt_Level_3_0x43 \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_4_0x44
#define My_T1_Interrupt_Level_4_0x44 \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_5_0x45
#define My_T1_Interrupt_Level_5_0x45 \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_6_0x46
#define My_T1_Interrupt_Level_6_0x46 \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_7_0x47
#define My_T1_Interrupt_Level_7_0x47 \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_8_0x48
#define My_T1_Interrupt_Level_8_0x48 \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_9_0x49
#define My_T1_Interrupt_Level_9_0x49 \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_10_0x4a
#define My_T1_Interrupt_Level_10_0x4a \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_11_0x4b
#define My_T1_Interrupt_Level_11_0x4b \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_12_0x4c
#define My_T1_Interrupt_Level_12_0x4c \
sethi %hi(0x1000), %g3; \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_13_0x4d
#define My_T1_Interrupt_Level_13_0x4d \
sethi %hi(0x2000), %g3; \
wr %g3, %g0, %clear_softint; \
#define H_T1_Interrupt_Level_15_0x4f
#define My_T1_Interrupt_Level_15_0x4f \
sethi %hi(0x8000), %g3; \
wr %g3, %g0, %clear_softint; \
sethi %hi(0x80040000), %g2;\
#define H_HT0_Interrupt_Level_14_0x4e
#define My_HT0_Interrupt_Level_14_0x4e \
sethi %hi(0x14000), %g3; \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_1_0x41
#define My_HT0_Interrupt_Level_1_0x41 \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_2_0x42
#define My_HT0_Interrupt_Level_2_0x42 \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_3_0x43
#define My_HT0_Interrupt_Level_3_0x43 \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_4_0x44
#define My_HT0_Interrupt_Level_4_0x44 \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_5_0x45
#define My_HT0_Interrupt_Level_5_0x45 \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_6_0x46
#define My_HT0_Interrupt_Level_6_0x46 \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_7_0x47
#define My_HT0_Interrupt_Level_7_0x47 \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_8_0x48
#define My_HT0_Interrupt_Level_8_0x48 \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_9_0x49
#define My_HT0_Interrupt_Level_9_0x49 \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_10_0x4a
#define My_HT0_Interrupt_Level_10_0x4a \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_11_0x4b
#define My_HT0_Interrupt_Level_11_0x4b \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_12_0x4c
#define My_HT0_Interrupt_Level_12_0x4c \
sethi %hi(0x1000), %g3; \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_13_0x4d
#define My_HT0_Interrupt_Level_13_0x4d \
sethi %hi(0x2000), %g3; \
wr %g3, %g0, %clear_softint; \
#define H_HT0_Interrupt_Level_15_0x4f
#define My_HT0_Interrupt_Level_15_0x4f \
sethi %hi(0x8000), %g3; \
wr %g3, %g0, %clear_softint; \
sethi %hi(0x80040000), %g2;\
# 710 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_intr_handlers.s"
!!!!!!!!!!!!!!!!!!!!!! END of all handlers !!!!!!!!!!!!!!!!!!!
!# Steer towards main TBA on these errors ..
!# These are redefines ...
#undef SUN_H_HT0_DAE_nc_page_0x16
#define SUN_H_HT0_DAE_nc_page_0x16 \
best_set_reg(0x120000, %r1, %r2);\
#undef SUN_H_HT0_DAE_nfo_page_0x17
#define SUN_H_HT0_DAE_nfo_page_0x17 \
best_set_reg(0x120000, %r1, %r2);\
#undef SUN_H_HT0_IAE_unauth_access_0x0b
#define SUN_H_HT0_IAE_unauth_access_0x0b \
set resolve_bad_tte, %g3;\
#undef My_HT0_IAE_privilege_violation_0x08
#define My_HT0_IAE_privilege_violation_0x08 \
set resolve_bad_tte, %g3;\
#define H_HT0_Instruction_address_range_0x0d
#define SUN_H_HT0_Instruction_address_range_0x0d \
#define H_HT0_Instruction_real_range_0x0e
#define SUN_H_HT0_Instruction_real_range_0x0e \
#undef SUN_H_HT0_IAE_nfo_page_0x0c
#define SUN_H_HT0_IAE_nfo_page_0x0c \
set resolve_bad_tte, %g3;\
#define H_HT0_Instruction_Invalid_TSB_Entry_0x2a
#define SUN_H_HT0_Instruction_Invalid_TSB_Entry_0x2a \
set restore_range_regs, %g3;\
#define H_HT0_Data_Invalid_TSB_Entry_0x2b
#define SUN_H_HT0_Data_Invalid_TSB_Entry_0x2b \
set restore_range_regs, %g3;\
#define LOMEIN_TEXT_VA [0x]mpeval(MAIN_BASE_TEXT_VA&0xffffffff,16)
#define LOMEIN_DATA_VA [0x]mpeval(MAIN_BASE_DATA_VA&0xffffffff,16)
SECTION .LOMEIN TEXT_VA=LOMEIN_TEXT_VA, DATA_VA=LOMEIN_DATA_VA
PA= ra2pa2(MAIN_BASE_TEXT_RA, 0),
part_0_ctx_nonzero_tsb_config_1,
part_0_ctx_zero_tsb_config_1,
TTE_G=1, TTE_Context=0x44, TTE_V=1,
TTE_Size=0, TTE_NFO=0, TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=1,
PA= ra2pa2(MAIN_BASE_DATA_RA, 0),
part_0_ctx_nonzero_tsb_config_2,
part_0_ctx_zero_tsb_config_2
TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=0,
PA= ra2pa2(MAIN_BASE_DATA_RA, 0),
part_0_ctx_nonzero_tsb_config_3,
part_0_ctx_zero_tsb_config_3
TTE_G=1, TTE_Context=0x55, TTE_V=1, TTE_Size=0, TTE_NFO=0,
TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=0,
SECTION .MAIN TEXT_VA=MAIN_BASE_TEXT_VA, DATA_VA=MAIN_BASE_DATA_VA
part_0_ctx_nonzero_tsb_config_2,
part_0_ctx_zero_tsb_config_2,
TTE_G=1, TTE_Context=0x44, TTE_V=1,
TTE_Size=0, TTE_NFO=0, TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=1,
part_0_ctx_nonzero_tsb_config_1,
part_0_ctx_zero_tsb_config_1
TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=0,
part_0_ctx_nonzero_tsb_config_3,
part_0_ctx_zero_tsb_config_3
TTE_G=1, TTE_Context=0x55, TTE_V=1, TTE_Size=0, TTE_NFO=0,
TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=1, TTE_X=0,
! Set up ld/st area per thread
set sync_thr_counter4, %r23
add %o2,%r23,%r23 !Core's sync counter
st %r10, [%r23] !lock sync_thr_counter4
st %r10, [%r23] !lock sync_thr_counter5
st %r10, [%r23] !lock sync_thr_counter6
setx user_data_start, %r1, %r3
!Initializing integer registers
!Initializing float registers
!! Set TPC/TNPC to diag-finish in case we get to a strange TL ..
setx diag_finish, %r29, %r28
wrhpr %g1, %g0, %hsys_tick_cmpr
wr %g1, %g0, %sys_tick_cmpr
stxa %r0, [%g1]ASI_SCRATCHPAD
lduw [%r27], %r12 ! load jmp dest into dcache - xinval
.word 0x9f802b92 ! 1: SIR sir 0x0b92
! fork: source strm = 0xffffffffffffffff; target strm = 0x1
setx fork_lbl_0_1, %g2, %g3
! fork: source strm = 0xffffffffffffffff; target strm = 0x2
setx fork_lbl_0_2, %g2, %g3
! fork: source strm = 0xffffffffffffffff; target strm = 0x4
setx fork_lbl_0_3, %g2, %g3
! fork: source strm = 0xffffffffffffffff; target strm = 0x8
setx fork_lbl_0_4, %g2, %g3
! fork: source strm = 0xffffffffffffffff; target strm = 0x10
setx fork_lbl_0_5, %g2, %g3
! fork: source strm = 0xffffffffffffffff; target strm = 0x20
setx fork_lbl_0_6, %g2, %g3
! fork: source strm = 0xffffffffffffffff; target strm = 0x40
setx fork_lbl_0_7, %g2, %g3
! fork: source strm = 0xffffffffffffffff; target strm = 0x80
setx fork_lbl_0_8, %g2, %g3
setx join_lbl_0_0, %g1, %g2
setx join_lbl_0_0, %g1, %g2
.word 0xc1bfe160 ! 1: STDFA_I stda %f0, [0x0160, %r31]
.word 0xb3800011 ! 2: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r3, [%r0+0x3c8] %asi
.word 0x9d94c010 ! 3: WRPR_WSTATE_R wrpr %r19, %r16, %wstate
.word 0xe19fe0e0 ! 4: LDDFA_I ldda [%r31, 0x00e0], %f16
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610090, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x91414000 ! 5: RDPC rd %pc, %r8
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_5-donret_80_5), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x006fc000 | (0x89 << 24)), %r13
wrhpr %g0, 0xd8b, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (80)
.word 0x8d903e65 ! 6: WRPR_PSTATE_I wrpr %r0, 0x1e65, %pstate
.word 0xe937e1da ! 7: STQF_I - %f20, [0x01da, %r31]
best_set_reg(0xe0a00000, %r20, %r27)
.word 0xb7c6c000 ! 8: JMPL_R jmpl %r27 + %r0, %r27
.word 0x39400001 ! 9: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x9f803b76 ! 10: SIR sir 0x1b76
.word 0x8d802000 ! 11: WRFPRS_I wr %r0, 0x0000, %fprs
mov 0x8, %r1 ! (VA for ASI 0x48)
.word 0xe8884900 ! 12: LDUBA_R lduba [%r1, %r0] 0x48, %r20
.word 0xe81fe100 ! 13: LDD_I ldd [%r31 + 0x0100], %r20
.word 0x22ca0001 ! 1: BRZ brz,a,pt %r8,<label_0xa0001>
.word 0x8d903cc4 ! 14: WRPR_PSTATE_I wrpr %r0, 0x1cc4, %pstate
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610020, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa1414000 ! 15: RDPC rd %pc, %r16
setx common_target, %r12, %r27
.word 0xa5a449c6 ! 1: FDIVd fdivd %f48, %f6, %f18
.word 0xe1bfdb60 ! 16: STDFA_R stda %f16, [%r0, %r31]
best_set_reg(0xe0a00000, %r20, %r27)
.word 0xb7c6c000 ! 17: JMPL_R jmpl %r27 + %r0, %r27
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r10, [%r0+0x3d0] %asi
.word 0x9d940012 ! 18: WRPR_WSTATE_R wrpr %r16, %r18, %wstate
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r8, [%r0+0x3c0] %asi
.word 0x9d94c003 ! 19: WRPR_WSTATE_R wrpr %r19, %r3, %wstate
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 20: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_16) + 56, 16, 16)) -> intp(3,0,7,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_16)&0xffffffff) + 40, 16, 16)) -> intp(1,0,31,,,,,1)
.word 0x39400001 ! 21: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x81da4011 ! 22: FLUSH_R flush %r9, %r17, %r0
.word 0x3f400001 ! 1: FBPO fbo,a,pn %fcc0, <label_0x1>
.word 0x8d903c64 ! 23: WRPR_PSTATE_I wrpr %r0, 0x1c64, %pstate
.word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
ta T_CHANGE_NONHPRIV ! macro
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r12, [%r0+0x3d0] %asi
.word 0x9d940006 ! 25: WRPR_WSTATE_R wrpr %r16, %r6, %wstate
.word 0x81510000 ! 26: RDPR_TICK rdpr %tick, %r0
.word 0x879c273e ! 27: WRHPR_HINTP_I wrhpr %r16, 0x073e, %hintp
setx fp_data_quads, %r19, %r20
.word 0x87a80a44 ! 28: FCMPd fcmpd %fcc<n>, %f0, %f4
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r20, [%r0+0x3d8] %asi
.word 0x9d94c002 ! 29: WRPR_WSTATE_R wrpr %r19, %r2, %wstate
.word 0x819835ef ! 30: WRHPR_HPSTATE_I wrhpr %r0, 0x15ef, %hpstate
setx 0x00000000003a0000, %r11, %r12
.word 0x8b90000c ! 31: WRPR_TBA_R wrpr %r0, %r12, %tba
mov 0x8, %r1 ! (VA for ASI 0x4a)
.word 0xe8d04940 ! 32: LDSHA_R ldsha [%r1, %r0] 0x4a, %r20
.word 0x39400001 ! 33: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e012 ! 34: CASA_R casa [%r31] %asi, %r18, %r20
.word 0xe89fe0d0 ! 35: LDDA_I ldda [%r31, + 0x00d0] %asi, %r20
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e010 ! 36: CASA_R casa [%r31] %asi, %r16, %r20
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_28-donret_80_28), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x002e4c00 | (0x89 << 24)), %r13
ta T_CHANGE_NONHPRIV ! rand=1 (80)
.word 0x33400001 ! 37: FBPE fbe,a,pn %fcc0, <label_0x1>
setx common_target, %r12, %r27
.word 0xa3a00543 ! 1: FSQRTd fsqrt
.word 0xc1bfe060 ! 38: STDFA_I stda %f0, [0x0060, %r31]
.word 0x91908011 ! 39: WRPR_PIL_R wrpr %r2, %r17, %pil
.word 0xd877e179 ! 40: STX_I stx %r12, [%r31 + 0x0179]
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610010, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa1414000 ! 41: RDPC rd %pc, %r16
.word 0xe69fe160 ! 42: LDDA_I ldda [%r31, + 0x0160] %asi, %r19
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe7e7e014 ! 43: CASA_R casa [%r31] %asi, %r20, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_34-donret_80_34+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00a48100 | (0x8a << 24)), %r13
wrhpr %g0, 0x1365, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (80)
.word 0xe66fe0d8 ! 44: LDSTUB_I ldstub %r19, [%r31 + 0x00d8]
.word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, <label_0x1>
.word 0xe65fc000 ! 45: LDX_R ldx [%r31 + %r0], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_35)+48, 16, 16)) -> intp(mask2tid(0x80),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_35)&0xffffffff) + 0, 16, 16)) -> intp(mask2tid(0x80),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9843c0e ! 46: WR_SET_SOFTINT_I wr %r16, 0x1c0e, %set_softint
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_80_36
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_80_36
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_80_36
ldxa [0x50]%asi, %r14 !Running_rw
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0xe69fe030 ! 47: LDDA_I ldda [%r31, + 0x0030] %asi, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_37-donret_80_37+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r12, %r10, %r12 ! low VA tpc
set (0x00e3c700 | (16 << 24)), %r13
wrhpr %g0, 0x1e0d, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (80)
.word 0x8d90289f ! 48: WRPR_PSTATE_I wrpr %r0, 0x089f, %pstate
.word 0x89800011 ! 49: WRTICK_R wr %r0, %r17, %tick
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_80_39
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_80_39
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_80_39
ldxa [0x50]%asi, %r14 !Running_rw
setx common_target, %r20, %r19
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0xc19fd960 ! 50: LDDFA_R ldda [%r31, %r0], %f0
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 51: FBPULE fbule,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
done_change_to_randtl_80_41:
.word 0x8f902002 ! 52: WRPR_TL_I wrpr %r0, 0x0002, %tl
.word 0xc1bfdf20 ! 53: STDFA_R stda %f0, [%r0, %r31]
.word 0x89800011 ! 54: WRTICK_R wr %r0, %r17, %tick
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_43-donret_80_43+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x005e0400 | (0x88 << 24)), %r13
wrhpr %g0, 0x49f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (80)
.word 0x24800001 ! 1: BLE ble,a <label_0x1>
.word 0x8d902e4d ! 55: WRPR_PSTATE_I wrpr %r0, 0x0e4d, %pstate
.word 0xe64fc000 ! 56: LDSB_R ldsb [%r31 + %r0], %r19
.word 0xe71fe198 ! 57: LDDF_I ldd [%r31, 0x0198], %f19
.word 0x8780201c ! 58: WRASI_I wr %r0, 0x001c, %asi
.word 0x89800011 ! 59: WRTICK_R wr %r0, %r17, %tick
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610030, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x93414000 ! 60: RDPC rd %pc, %r9
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r12, [%r0+0x3d8] %asi
.word 0x9d940014 ! 61: WRPR_WSTATE_R wrpr %r16, %r20, %wstate
.word 0x83d020b3 ! 62: Tcc_I te icc_or_xcc, %r0 + 179
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 63: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xe19fe100 ! 64: LDDFA_I ldda [%r31, 0x0100], %f16
.word 0x81982e51 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x0e51, %hpstate
.word 0x8d903d37 ! 66: WRPR_PSTATE_I wrpr %r0, 0x1d37, %pstate
.word 0x39400001 ! 67: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_80_52
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_80_52
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_80_52
ldxa [0x50]%asi, %r14 !Running_rw
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0x97a449ab ! 68: FDIVs fdivs %f17, %f11, %f11
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_53-donret_80_53+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x0082b200 | (32 << 24)), %r13
wrhpr %g0, 0x629, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (80)
.word 0x3f400001 ! 69: FBPO fbo,a,pn %fcc0, <label_0x1>
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0x95b487d0 ! 70: PDIST pdistn %d18, %d16, %d10
.word 0x91a00172 ! 71: FABSq dis not found
.word 0xc19fe020 ! 72: LDDFA_I ldda [%r31, 0x0020], %f0
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_56-donret_80_56), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00c36800 | (0x89 << 24)), %r13
wrhpr %g0, 0x1acd, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (80)
.word 0xe4ffe00d ! 73: SWAPA_I swapa %r18, [%r31 + 0x000d] %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c00c ! 1: STQF_R - %f18, [%r12, %r31]
.word 0xe43fe050 ! 74: STD_I std %r18, [%r31 + 0x0050]
.word 0x91948003 ! 75: WRPR_PIL_R wrpr %r18, %r3, %pil
.word 0xb3800011 ! 76: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 77: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802036 ! 78: WRASI_I wr %r0, 0x0036, %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c013 ! 1: STQF_R - %f18, [%r19, %r31]
.word 0xe49fe070 ! 79: LDDA_I ldda [%r31, + 0x0070] %asi, %r18
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r20, [%r0+0x3e8] %asi
.word 0x9d918010 ! 80: WRPR_WSTATE_R wrpr %r6, %r16, %wstate
.word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31
.word 0xe45fc000 ! 81: LDX_R ldx [%r31 + %r0], %r18
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0x99b487ca ! 82: PDIST pdistn %d18, %d10, %d12
.word 0xd23fc000 ! 83: STD_R std %r9, [%r31 + %r0]
.word 0x97a00172 ! 84: FABSq dis not found
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610010, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x93414000 ! 85: RDPC rd %pc, %r9
.word 0xa7450000 ! 86: RD_SET_SOFTINT rd %set_softint, %r19
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0x93b7c7c8 ! 1: PDIST pdistn %d62, %d8, %d40
.word 0x9f803153 ! 87: SIR sir 0x1153
setx 0xffffffbdffffffa5, %g1, %g7
.word 0xa3800007 ! 88: WR_PERF_COUNTER_R wr %r0, %r7, %-
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_68)+16, 16, 16)) -> intp(mask2tid(0x80),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_68)&0xffffffff) + 0, 16, 16)) -> intp(mask2tid(0x80),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa980e169 ! 89: WR_SET_SOFTINT_I wr %r3, 0x0169, %set_softint
.word 0x39400001 ! 90: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx fp_data_quads, %r19, %r20
.word 0x89b00484 ! 91: FCMPLE32 fcmple32 %d0, %d4, %r4
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r10, [%r0+0x3e0] %asi
.word 0x9d948006 ! 92: WRPR_WSTATE_R wrpr %r18, %r6, %wstate
.word 0x8d902ec6 ! 93: WRPR_PSTATE_I wrpr %r0, 0x0ec6, %pstate
.word 0x8d802000 ! 94: WRFPRS_I wr %r0, 0x0000, %fprs
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xd1e7e014 ! 95: CASA_R casa [%r31] %asi, %r20, %r8
.word 0xc3ec4034 ! 96: PREFETCHA_R prefetcha [%r17, %r20] 0x01, #one_read
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_80_75
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_80_75
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_80_75
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000000e0a00000, %r20, %r19)
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0xc3ea0026 ! 97: PREFETCHA_R prefetcha [%r8, %r6] 0x01, #one_read
mov 0x10, %r1 ! (VA for ASI 0x5a)
.word 0xd8c04b40 ! 98: LDSWA_R ldswa [%r1, %r0] 0x5a, %r12
.word 0x81460000 ! 99: RD_STICK_REG stbar
best_set_reg(0xe1a00000, %r20, %r27)
.word 0xb7c6c000 ! 100: JMPL_R jmpl %r27 + %r0, %r27
setx 0xffffffb3ffffffa8, %g1, %g7
.word 0xa3800007 ! 101: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x85827c75 ! 102: WRCCR_I wr %r9, 0x1c75, %ccr
.word 0xd8cfe038 ! 103: LDSBA_I ldsba [%r31, + 0x0038] %asi, %r12
done_change_to_randtl_80_80:
.word 0x8f902001 ! 104: WRPR_TL_I wrpr %r0, 0x0001, %tl
setx 0xffffffb6ffffffa8, %g1, %g7
.word 0xa3800007 ! 105: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x2c800001 ! 1: BNEG bneg,a <label_0x1>
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 106: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xd8cfe198 ! 107: LDSBA_I ldsba [%r31, + 0x0198] %asi, %r12
.word 0x9f8035de ! 108: SIR sir 0x15de
.word 0xd8dfe050 ! 109: LDXA_I ldxa [%r31, + 0x0050] %asi, %r12
.word 0x87802020 ! 110: WRASI_I wr %r0, 0x0020, %asi
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r8, [%r0+0x3e0] %asi
.word 0x9d92c010 ! 111: WRPR_WSTATE_R wrpr %r11, %r16, %wstate
.word 0x81460000 ! 112: RD_STICK_REG stbar
.word 0xa7a249d0 ! 113: FDIVd fdivd %f40, %f16, %f50
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100a0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa1414000 ! 114: RDPC rd %pc, %r16
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_86) + 0, 16, 16)) -> intp(5,0,31,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_86)&0xffffffff) + 40, 16, 16)) -> intp(4,0,10,,,,,1)
.word 0x39400001 ! 115: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx 0xffffffbeffffffa6, %g1, %g7
.word 0xa3800007 ! 116: WR_PERF_COUNTER_R wr %r0, %r7, %-
mov 0x8, %r1 ! (VA for ASI 0x49)
.word 0xd8c04920 ! 117: LDSWA_R ldswa [%r1, %r0] 0x49, %r12
.word 0x99450000 ! 118: RD_SET_SOFTINT rd %set_softint, %r12
setx fp_data_quads, %r19, %r20
.word 0xc3e83d23 ! 119: PREFETCHA_I prefetcha [%r0, + 0xfffffd23] %asi, #one_read
.word 0x9f802939 ! 120: SIR sir 0x0939
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_90-donret_80_90+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x0036f000 | (0x4f << 24)), %r13
wrhpr %g0, 0x795, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (80)
.word 0xe66fe0f8 ! 121: LDSTUB_I ldstub %r19, [%r31 + 0x00f8]
.word 0x9f80399f ! 122: SIR sir 0x199f
setx 0x00000000002a0000, %r11, %r12
.word 0x8b98000c ! 123: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610020, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x99414000 ! 124: RDPC rd %pc, %r12
.word 0x39400001 ! 125: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8d802004 ! 126: WRFPRS_I wr %r0, 0x0004, %fprs
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_80_94
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_80_94
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_80_94
ldxa [0x50]%asi, %r14 !Running_rw
setx common_target, %r20, %r19
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0xa5b18493 ! 127: FCMPLE32 fcmple32 %d6, %d50, %r18
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_80_95
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_80_95
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_80_95
ldxa [0x50]%asi, %r14 !Running_rw
setx common_target, %r20, %r19
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0x87ab0a53 ! 128: FCMPd fcmpd %fcc<n>, %f12, %f50
.word 0x95b304c1 ! 129: FCMPNE32 fcmpne32 %d12, %d32, %r10
.word 0xe88008a0 ! 130: LDUWA_R lduwa [%r0, %r0] 0x45, %r20
setx 0x4059fee120a27300, %r1, %r28
.word 0x25400001 ! 131: FBPLG fblg,a,pn %fcc0, <label_0x1>
.word 0x8198240d ! 132: WRHPR_HPSTATE_I wrhpr %r0, 0x040d, %hpstate
mov 0x0, %r1 ! (VA for ASI 0x72)
.word 0xe8c04e40 ! 133: LDSWA_R ldswa [%r1, %r0] 0x72, %r20
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_100)+16, 16, 16)) -> intp(mask2tid(0x80),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_100)&0xffffffff) + 8, 16, 16)) -> intp(mask2tid(0x80),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa982a89c ! 134: WR_SET_SOFTINT_I wr %r10, 0x089c, %set_softint
setx 0x177556e31eb326cc, %r1, %r28
.word 0x25400001 ! 135: FBPLG fblg,a,pn %fcc0, <label_0x1>
setx 0xe3a108e3d5e744e5, %r1, %r28
.word 0x25400001 ! 136: FBPLG fblg,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_103-donret_80_103), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00b85800 | (0x89 << 24)), %r13
wrhpr %g0, 0x1bcf, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (80)
.word 0xe86fe0b4 ! 137: LDSTUB_I ldstub %r20, [%r31 + 0x00b4]
.word 0xe19fe0c0 ! 138: LDDFA_I ldda [%r31, 0x00c0], %f16
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e011 ! 139: CASA_R casa [%r31] %asi, %r17, %r20
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 140: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_80_107
brnz %r16, iaw_wait80_107
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_80_107
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_80_107
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000000e1a00000, %r20, %r19)
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0xe89fe1f0 ! 141: LDDA_I ldda [%r31, + 0x01f0] %asi, %r20
.word 0x91d020b2 ! 142: Tcc_I ta icc_or_xcc, %r0 + 178
.word 0x819826de ! 143: WRHPR_HPSTATE_I wrhpr %r0, 0x06de, %hpstate
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0x87ad0a4c ! 144: FCMPd fcmpd %fcc<n>, %f20, %f12
.word 0x2b400001 ! 1: FBPUG fbug,a,pn %fcc0, <label_0x1>
.word 0x8d902bc9 ! 145: WRPR_PSTATE_I wrpr %r0, 0x0bc9, %pstate
set user_data_start, %r31
.word 0x8581f631 ! 146: WRCCR_I wr %r7, 0x1631, %ccr
.word 0xa5410000 ! 147: RDTICK rd %tick, %r18
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_113-donret_80_113+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x0052b300 | (0x8b << 24)), %r13
wrhpr %g0, 0x100d, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (80)
.word 0xe6ffe14d ! 148: SWAPA_I swapa %r19, [%r31 + 0x014d] %asi
setx 0x00000000003a0000, %r11, %r12
.word 0x8b90000c ! 149: WRPR_TBA_R wrpr %r0, %r12, %tba
setx 0x00000000002a0000, %r11, %r12
.word 0x8b98000c ! 150: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
setx fp_data_quads, %r19, %r20
.word 0x87a80a44 ! 151: FCMPd fcmpd %fcc<n>, %f0, %f4
taddcctv %r2, 0x1911, %r18
.word 0xe607e1d5 ! 152: LDUW_I lduw [%r31 + 0x01d5], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_118)+56, 16, 16)) -> intp(mask2tid(0x80),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_118)&0xffffffff) + 48, 16, 16)) -> intp(mask2tid(0x80),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984b1d5 ! 153: WR_SET_SOFTINT_I wr %r18, 0x11d5, %set_softint
.word 0x89800011 ! 154: WRTICK_R wr %r0, %r17, %tick
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r11, [%r0+0x3d0] %asi
.word 0x9d910004 ! 155: WRPR_WSTATE_R wrpr %r4, %r4, %wstate
.word 0xe737c000 ! 156: STQF_R - %f19, [%r0, %r31]
.word 0x87802020 ! 157: WRASI_I wr %r0, 0x0020, %asi
.word 0x9a693ace ! 158: UDIVX_I udivx %r4, 0xffffface, %r13
.word 0xb3800011 ! 159: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_80_122-donret_80_122), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00172600 | (57 << 24)), %r13
wrhpr %g0, 0x162f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (80)
.word 0x93a4c9c6 ! 160: FDIVd fdivd %f50, %f6, %f40
setx 0xffffffb2ffffffa5, %g1, %g7
.word 0xa3800007 ! 161: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8b90000c ! 162: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r16, [%r0+0x3d8] %asi
.word 0x9d908009 ! 163: WRPR_WSTATE_R wrpr %r2, %r9, %wstate
.word 0xa1902001 ! 164: WRPR_GL_I wrpr %r0, 0x0001, %-
mov 0x28, %r1 ! (VA for ASI 0x5b)
.word 0xda884b60 ! 165: LDUBA_R lduba [%r1, %r0] 0x5b, %r13
.word 0x8d802004 ! 166: WRFPRS_I wr %r0, 0x0004, %fprs
setx 0x00000000003a0000, %r11, %r12
.word 0x8b90000c ! 167: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x83d0001e ! 168: Tcc_R te icc_or_xcc, %r0 + %r30
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xdbe7e00d ! 169: CASA_R casa [%r31] %asi, %r13, %r13
.word 0x9f8020fa ! 170: SIR sir 0x00fa
.word 0x8d902431 ! 171: WRPR_PSTATE_I wrpr %r0, 0x0431, %pstate
.word 0xc1bfe020 ! 172: STDFA_I stda %f0, [0x0020, %r31]
.word 0xa46ca955 ! 173: UDIVX_I udivx %r18, 0x0955, %r18
.word 0xa9690009 ! 174: SDIVX_R sdivx %r4, %r9, %r20
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe0dfc02d ! 175: LDXA_R ldxa [%r31, %r13] 0x01, %r16
.word 0xa7852b4e ! 176: WR_GRAPHICS_STATUS_REG_I wr %r20, 0x0b4e, %-
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610060, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x93414000 ! 177: RDPC rd %pc, %r9
setx fp_data_quads, %r19, %r20
.word 0x8da009a4 ! 178: FDIVs fdivs %f0, %f4, %f6
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 179: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0x87802014 ! 180: WRASI_I wr %r0, 0x0014, %asi
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_135)+0, 16, 16)) -> intp(mask2tid(0x80),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_135)&0xffffffff) + 16, 16, 16)) -> intp(mask2tid(0x80),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa98423bb ! 181: WR_SET_SOFTINT_I wr %r16, 0x03bb, %set_softint
mov 0x8, %r1 ! (VA for ASI 0x4a)
.word 0xdac84940 ! 182: LDSBA_R ldsba [%r1, %r0] 0x4a, %r13
setx 0xd7c95357cd5464f3, %r1, %r28
.word 0x25400001 ! 183: FBPLG fblg,a,pn %fcc0, <label_0x1>
tsubcctv %r0, 0x16f6, %r2
.word 0xda07e0dc ! 184: LDUW_I lduw [%r31 + 0x00dc], %r13
.word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0x819837df ! 185: WRHPR_HPSTATE_I wrhpr %r0, 0x17df, %hpstate
.word 0xda77c000 ! 186: STX_R stx %r13, [%r31 + %r0]
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xdb37e070 ! 1: STQF_I - %f13, [0x0070, %r31]
.word 0x8d902744 ! 187: WRPR_PSTATE_I wrpr %r0, 0x0744, %pstate
.word 0x91d0001e ! 188: Tcc_R ta icc_or_xcc, %r0 + %r30
.word 0x87ac8a42 ! 189: FCMPd fcmpd %fcc<n>, %f18, %f2
tsubcctv %r17, 0x107c, %r16
.word 0xd807e12e ! 190: LDUW_I lduw [%r31 + 0x012e], %r12
.word 0x87802058 ! 191: WRASI_I wr %r0, 0x0058, %asi
setx 0xcf785d1388fd1a80, %r1, %r28
.word 0x25400001 ! 192: FBPLG fblg,a,pn %fcc0, <label_0x1>
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_144) + 48, 16, 16)) -> intp(7,0,30,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_144)&0xffffffff) + 16, 16, 16)) -> intp(4,0,31,,,,,1)
.word 0x39400001 ! 193: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x87802058 ! 194: WRASI_I wr %r0, 0x0058, %asi
.word 0x89800011 ! 195: WRTICK_R wr %r0, %r17, %tick
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xc19fe000 ! 196: LDDFA_I ldda [%r31, 0x0000], %f0
setx 0x00000000003a0000, %r11, %r12
.word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x9ac1e377 ! 198: ADDCcc_I addccc %r7, 0x0377, %r13
setx 0xffffffbaffffffa2, %g1, %g7
.word 0xa3800007 ! 199: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0xc1bfd960 ! 200: STDFA_R stda %f0, [%r0, %r31]
setx join_lbl_0_0, %g1, %g2
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_40_1
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_40_1
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_40_1
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000050f9c000be,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xc1bfe060 ! 1: STDFA_I stda %f0, [0x0060, %r31]
.word 0xaf800011 ! 2: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r6, [%r0+0x3c8] %asi
.word 0x9d930013 ! 3: WRPR_WSTATE_R wrpr %r12, %r19, %wstate
.word 0xc19fe0e0 ! 4: LDDFA_I ldda [%r31, 0x00e0], %f0
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610050, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 5: RDPC rd %pc, %r20
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_5-donret_40_5), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x003a6a00 | (0x89 << 24)), %r13
wrhpr %g0, 0x1d8f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (40)
.word 0x8d903d59 ! 6: WRPR_PSTATE_I wrpr %r0, 0x1d59, %pstate
.word 0xe937e09d ! 7: STQF_I - %f20, [0x009d, %r31]
best_set_reg(0xe1200000, %r20, %r27)
.word 0xb7c6c000 ! 8: JMPL_R jmpl %r27 + %r0, %r27
.word 0x39400001 ! 9: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0xa9b7c490 ! 1: FCMPLE32 fcmple32 %d62, %d16, %r20
.word 0x9f80310b ! 10: SIR sir 0x110b
.word 0x8d802000 ! 11: WRFPRS_I wr %r0, 0x0000, %fprs
mov 0x10, %r1 ! (VA for ASI 0x48)
.word 0xe8d04900 ! 12: LDSHA_R ldsha [%r1, %r0] 0x48, %r20
.word 0xe81fe1e0 ! 13: LDD_I ldd [%r31 + 0x01e0], %r20
.word 0x2ac88001 ! 1: BRNZ brnz,a,pt %r2,<label_0x88001>
.word 0x8d902c3b ! 14: WRPR_PSTATE_I wrpr %r0, 0x0c3b, %pstate
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610010, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 15: RDPC rd %pc, %r20
setx common_target, %r12, %r27
.word 0x81dfc013 ! 1: FLUSH_R flush %r31, %r19, %r0
.word 0xc19fc2c0 ! 16: LDDFA_R ldda [%r31, %r0], %f0
best_set_reg(0xe1200000, %r20, %r27)
.word 0xb7c6c000 ! 17: JMPL_R jmpl %r27 + %r0, %r27
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r7, [%r0+0x3d8] %asi
.word 0x9d934003 ! 18: WRPR_WSTATE_R wrpr %r13, %r3, %wstate
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r20, [%r0+0x3d0] %asi
.word 0x9d90c014 ! 19: WRPR_WSTATE_R wrpr %r3, %r20, %wstate
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 20: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_16) + 32, 16, 16)) -> intp(7,0,26,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_16)&0xffffffff) + 0, 16, 16)) -> intp(6,0,27,,,,,1)
.word 0x39400001 ! 21: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x81dd0011 ! 22: FLUSH_R flush %r20, %r17, %r0
.word 0x24ca0001 ! 1: BRLEZ brlez,a,pt %r8,<label_0xa0001>
.word 0x8d903395 ! 23: WRPR_PSTATE_I wrpr %r0, 0x1395, %pstate
.word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
ta T_CHANGE_NONHPRIV ! macro
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r3, [%r0+0x3d0] %asi
.word 0x9d92c012 ! 25: WRPR_WSTATE_R wrpr %r11, %r18, %wstate
.word 0x81510000 ! 26: RDPR_TICK rdpr %tick, %r0
.word 0x879ce6c3 ! 27: WRHPR_HINTP_I wrhpr %r19, 0x06c3, %hintp
setx fp_data_quads, %r19, %r20
.word 0x89b00484 ! 28: FCMPLE32 fcmple32 %d0, %d4, %r4
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r16, [%r0+0x3e0] %asi
.word 0x9d94c010 ! 29: WRPR_WSTATE_R wrpr %r19, %r16, %wstate
.word 0x81982ff5 ! 30: WRHPR_HPSTATE_I wrhpr %r0, 0x0ff5, %hpstate
setx 0x0000000400380000, %r11, %r12
.word 0x8b90000c ! 31: WRPR_TBA_R wrpr %r0, %r12, %tba
mov 0x110, %r1 ! (VA for ASI 0x4a)
.word 0xe8c04940 ! 32: LDSWA_R ldswa [%r1, %r0] 0x4a, %r20
.word 0x39400001 ! 33: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e008 ! 34: CASA_R casa [%r31] %asi, %r8, %r20
.word 0xe89fe000 ! 35: LDDA_I ldda [%r31, + 0x0000] %asi, %r20
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e014 ! 36: CASA_R casa [%r31] %asi, %r20, %r20
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_28-donret_40_28), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00704000 | (20 << 24)), %r13
wrhpr %g0, 0x1d85, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (40)
.word 0x21400001 ! 37: FBPN fbn,a,pn %fcc0, <label_0x1>
setx common_target, %r12, %r27
.word 0xa9a7c971 ! 1: FMULq dis not found
.word 0xe19fe1c0 ! 38: LDDFA_I ldda [%r31, 0x01c0], %f16
.word 0x91914013 ! 39: WRPR_PIL_R wrpr %r5, %r19, %pil
.word 0xd877e128 ! 40: STX_I stx %r12, [%r31 + 0x0128]
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610000, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x93414000 ! 41: RDPC rd %pc, %r9
.word 0xe7e7e010 ! 42: CASA_R casa [%r31] %asi, %r16, %r19
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe7e7e00b ! 43: CASA_R casa [%r31] %asi, %r11, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_34-donret_40_34+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00e28900 | (28 << 24)), %r13
wrhpr %g0, 0x1458, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (40)
.word 0xe66fe125 ! 44: LDSTUB_I ldstub %r19, [%r31 + 0x0125]
.word 0x2cc90001 ! 1: BRGZ brgz,a,pt %r4,<label_0x90001>
.word 0xe65fc000 ! 45: LDX_R ldx [%r31 + %r0], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_35)+24, 16, 16)) -> intp(mask2tid(0x40),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_35)&0xffffffff) + 40, 16, 16)) -> intp(mask2tid(0x40),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984ed92 ! 46: WR_SET_SOFTINT_I wr %r19, 0x0d92, %set_softint
.word 0xe71fc00b ! 47: LDDF_R ldd [%r31, %r11], %f19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_37-donret_40_37+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r12, %r10, %r12 ! low VA tpc
set (0x00385300 | (4 << 24)), %r13
wrhpr %g0, 0x1dd5, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (40)
.word 0x8d9036df ! 48: WRPR_PSTATE_I wrpr %r0, 0x16df, %pstate
.word 0x89800011 ! 49: WRTICK_R wr %r0, %r17, %tick
.word 0xe1bfe100 ! 50: STDFA_I stda %f16, [0x0100, %r31]
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 51: FBPULE fbule,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
done_change_to_randtl_40_41:
.word 0x8f902000 ! 52: WRPR_TL_I wrpr %r0, 0x0000, %tl
.word 0xc1bfdb60 ! 53: STDFA_R stda %f0, [%r0, %r31]
.word 0x89800011 ! 54: WRTICK_R wr %r0, %r17, %tick
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_43-donret_40_43+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x0063af00 | (0x89 << 24)), %r13
wrhpr %g0, 0xe17, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (40)
.word 0x2e800001 ! 1: BVS bvs,a <label_0x1>
.word 0x8d902c4d ! 55: WRPR_PSTATE_I wrpr %r0, 0x0c4d, %pstate
.word 0xe64fc000 ! 56: LDSB_R ldsb [%r31 + %r0], %r19
.word 0xe71fe1b8 ! 57: LDDF_I ldd [%r31, 0x01b8], %f19
.word 0x87802055 ! 58: WRASI_I wr %r0, 0x0055, %asi
.word 0x89800011 ! 59: WRTICK_R wr %r0, %r17, %tick
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100e0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x99414000 ! 60: RDPC rd %pc, %r12
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r2, [%r0+0x3e8] %asi
.word 0x9d910004 ! 61: WRPR_WSTATE_R wrpr %r4, %r4, %wstate
.word 0x93d020b2 ! 62: Tcc_I tne icc_or_xcc, %r0 + 178
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 63: FBPULE fbule,a,pn %fcc0, <label_0x1>
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_40_48
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_40_48
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_40_48
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x0000004034c0be75,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xe19fdf20 ! 64: LDDFA_R ldda [%r31, %r0], %f16
.word 0x819826c5 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x06c5, %hpstate
.word 0x8d903571 ! 66: WRPR_PSTATE_I wrpr %r0, 0x1571, %pstate
.word 0x39400001 ! 67: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0xa370344d ! 68: POPC_I popc 0x144d, %r17
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_53-donret_40_53+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00757b00 | (0x58 << 24)), %r13
wrhpr %g0, 0x1ecd, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (40)
.word 0x3b400001 ! 69: FBPLE fble,a,pn %fcc0, <label_0x1>
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0xa1b1c7d3 ! 70: PDIST pdistn %d38, %d50, %d16
.word 0x99a00173 ! 71: FABSq dis not found
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_40_55
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_40_55
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_40_55
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000040d4fe75e8,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xe1bfe1a0 ! 72: STDFA_I stda %f16, [0x01a0, %r31]
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_56-donret_40_56), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00706d00 | (54 << 24)), %r13
wrhpr %g0, 0x1f04, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (40)
.word 0xe4ffe17c ! 73: SWAPA_I swapa %r18, [%r31 + 0x017c] %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c00d ! 1: STQF_R - %f18, [%r13, %r31]
.word 0xe51fc013 ! 74: LDDF_R ldd [%r31, %r19], %f18
.word 0x9194400c ! 75: WRPR_PIL_R wrpr %r17, %r12, %pil
.word 0xaf800011 ! 76: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 77: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x8780208a ! 78: WRASI_I wr %r0, 0x008a, %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c00a ! 1: STQF_R - %f18, [%r10, %r31]
.word 0xe51fc012 ! 79: LDDF_R ldd [%r31, %r18], %f18
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r9, [%r0+0x3d8] %asi
.word 0x9d94c010 ! 80: WRPR_WSTATE_R wrpr %r19, %r16, %wstate
.word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31
.word 0xe45fc000 ! 81: LDX_R ldx [%r31 + %r0], %r18
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0xa3b0c7c5 ! 82: PDIST pdistn %d34, %d36, %d48
.word 0xc36fe0a4 ! 83: PREFETCH_I prefetch [%r31 + 0x00a4], #one_read
.word 0x91a0016a ! 84: FABSq dis not found
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610070, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x9b414000 ! 85: RDPC rd %pc, %r13
.word 0xa7450000 ! 86: RD_SET_SOFTINT rd %set_softint, %r19
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0x93b7c7cd ! 1: PDIST pdistn %d62, %d44, %d40
.word 0x9f80251a ! 87: SIR sir 0x051a
setx 0xffffffb8ffffffad, %g1, %g7
.word 0xa3800007 ! 88: WR_PERF_COUNTER_R wr %r0, %r7, %-
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_68)+56, 16, 16)) -> intp(mask2tid(0x40),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_68)&0xffffffff) + 56, 16, 16)) -> intp(mask2tid(0x40),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9837089 ! 89: WR_SET_SOFTINT_I wr %r13, 0x1089, %set_softint
.word 0x39400001 ! 90: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx fp_data_quads, %r19, %r20
.word 0x91b00484 ! 91: FCMPLE32 fcmple32 %d0, %d4, %r8
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r2, [%r0+0x3d8] %asi
.word 0x9d94c009 ! 92: WRPR_WSTATE_R wrpr %r19, %r9, %wstate
.word 0x8d903962 ! 93: WRPR_PSTATE_I wrpr %r0, 0x1962, %pstate
.word 0x8d802000 ! 94: WRFPRS_I wr %r0, 0x0000, %fprs
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xd1e7e008 ! 95: CASA_R casa [%r31] %asi, %r8, %r8
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_40_74
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_40_74
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_40_74
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x000000401cf5e816,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xc3ec0031 ! 96: PREFETCHA_R prefetcha [%r16, %r17] 0x01, #one_read
.word 0xc3ec8032 ! 97: PREFETCHA_R prefetcha [%r18, %r18] 0x01, #one_read
mov 0x20, %r1 ! (VA for ASI 0x5a)
.word 0xd8904b40 ! 98: LDUHA_R lduha [%r1, %r0] 0x5a, %r12
.word 0x81460000 ! 99: RD_STICK_REG stbar
best_set_reg(0xe0200000, %r20, %r27)
.word 0xb7c6c000 ! 100: JMPL_R jmpl %r27 + %r0, %r27
setx 0xffffffb7ffffffa4, %g1, %g7
.word 0xa3800007 ! 101: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8584e677 ! 102: WRCCR_I wr %r19, 0x0677, %ccr
.word 0xd8cfe160 ! 103: LDSBA_I ldsba [%r31, + 0x0160] %asi, %r12
done_change_to_randtl_40_80:
.word 0x8f902000 ! 104: WRPR_TL_I wrpr %r0, 0x0000, %tl
setx 0xffffffb1ffffffaa, %g1, %g7
.word 0xa3800007 ! 105: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, <label_0x1>
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 106: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xd8cfe1d8 ! 107: LDSBA_I ldsba [%r31, + 0x01d8] %asi, %r12
.word 0xc32fc00d ! 1: STXFSR_R st-sfr %f1, [%r13, %r31]
.word 0x9f803e9d ! 108: SIR sir 0x1e9d
.word 0xd8dfe010 ! 109: LDXA_I ldxa [%r31, + 0x0010] %asi, %r12
.word 0x87802020 ! 110: WRASI_I wr %r0, 0x0020, %asi
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r1, [%r0+0x3d0] %asi
.word 0x9d914013 ! 111: WRPR_WSTATE_R wrpr %r5, %r19, %wstate
.word 0x81460000 ! 112: RD_STICK_REG stbar
.word 0x93703d23 ! 113: POPC_I popc 0x1d23, %r9
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610040, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x93414000 ! 114: RDPC rd %pc, %r9
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_86) + 24, 16, 16)) -> intp(6,0,5,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_86)&0xffffffff) + 32, 16, 16)) -> intp(3,0,2,,,,,1)
.word 0x39400001 ! 115: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx 0xffffffbeffffffa7, %g1, %g7
.word 0xa3800007 ! 116: WR_PERF_COUNTER_R wr %r0, %r7, %-
mov 0x8, %r1 ! (VA for ASI 0x49)
.word 0xd8c04920 ! 117: LDSWA_R ldswa [%r1, %r0] 0x49, %r12
.word 0x99450000 ! 118: RD_SET_SOFTINT rd %set_softint, %r12
setx fp_data_quads, %r19, %r20
.word 0x89a009a4 ! 119: FDIVs fdivs %f0, %f4, %f4
.word 0xe63fc009 ! 1: STD_R std %r19, [%r31 + %r9]
.word 0x9f802174 ! 120: SIR sir 0x0174
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_90-donret_40_90+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x006e3200 | (0x8a << 24)), %r13
wrhpr %g0, 0xdd, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (40)
.word 0xe66fe002 ! 121: LDSTUB_I ldstub %r19, [%r31 + 0x0002]
.word 0xe63fe070 ! 1: STD_I std %r19, [%r31 + 0x0070]
.word 0x9f8020e8 ! 122: SIR sir 0x00e8
setx 0x0000000200280000, %r11, %r12
.word 0x8b98000c ! 123: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100c0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa1414000 ! 124: RDPC rd %pc, %r16
.word 0x39400001 ! 125: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8d802000 ! 126: WRFPRS_I wr %r0, 0x0000, %fprs
.word 0x95b2c7c3 ! 127: PDIST pdistn %d42, %d34, %d10
.word 0x9b7022b7 ! 128: POPC_I popc 0x02b7, %r13
.word 0x87aaca47 ! 129: FCMPd fcmpd %fcc<n>, %f42, %f38
.word 0xe8800b80 ! 130: LDUWA_R lduwa [%r0, %r0] 0x5c, %r20
setx 0x9680a754307362fb, %r1, %r28
.word 0x25400001 ! 131: FBPLG fblg,a,pn %fcc0, <label_0x1>
.word 0x81982d8d ! 132: WRHPR_HPSTATE_I wrhpr %r0, 0x0d8d, %hpstate
mov 0x0, %r1 ! (VA for ASI 0x72)
.word 0xe8d84e40 ! 133: LDXA_R ldxa [%r1, %r0] 0x72, %r20
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_100)+16, 16, 16)) -> intp(mask2tid(0x40),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_100)&0xffffffff) + 8, 16, 16)) -> intp(mask2tid(0x40),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984ae1a ! 134: WR_SET_SOFTINT_I wr %r18, 0x0e1a, %set_softint
setx 0xd1f7122337e86681, %r1, %r28
.word 0x25400001 ! 135: FBPLG fblg,a,pn %fcc0, <label_0x1>
setx 0xd4fdfa6546cf442b, %r1, %r28
.word 0x25400001 ! 136: FBPLG fblg,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_103-donret_40_103), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00b60900 | (0x4f << 24)), %r13
wrhpr %g0, 0x4d5, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (40)
.word 0xe86fe023 ! 137: LDSTUB_I ldstub %r20, [%r31 + 0x0023]
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_40_104
brnz %r16, ibp_wait40_104
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_40_104
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_40_104
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000040f9e816cd,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xc19fda00 ! 138: LDDFA_R ldda [%r31, %r0], %f0
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e00c ! 139: CASA_R casa [%r31] %asi, %r12, %r20
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 140: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
.word 0xe91fe1b0 ! 141: LDDF_I ldd [%r31, 0x01b0], %f20
.word 0x93d020b3 ! 142: Tcc_I tne icc_or_xcc, %r0 + 179
.word 0x8198340f ! 143: WRHPR_HPSTATE_I wrhpr %r0, 0x140f, %hpstate
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xa9a0c9c6 ! 144: FDIVd fdivd %f34, %f6, %f20
.word 0x2e800001 ! 1: BVS bvs,a <label_0x1>
.word 0x8d903e97 ! 145: WRPR_PSTATE_I wrpr %r0, 0x1e97, %pstate
set user_data_start, %r31
.word 0x8584bf41 ! 146: WRCCR_I wr %r18, 0x1f41, %ccr
.word 0x9b410000 ! 147: RDTICK rd %tick, %r13
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_113-donret_40_113+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x000eb400 | (0x88 << 24)), %r13
wrhpr %g0, 0xc59, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (40)
.word 0xe6ffe090 ! 148: SWAPA_I swapa %r19, [%r31 + 0x0090] %asi
setx 0x0000000400380000, %r11, %r12
.word 0x8b90000c ! 149: WRPR_TBA_R wrpr %r0, %r12, %tba
setx 0x0000000200280000, %r11, %r12
.word 0x8b98000c ! 150: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
setx fp_data_quads, %r19, %r20
.word 0x87a80a44 ! 151: FCMPd fcmpd %fcc<n>, %f0, %f4
taddcctv %r7, 0x10b4, %r20
.word 0xe607e070 ! 152: LDUW_I lduw [%r31 + 0x0070], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_118)+48, 16, 16)) -> intp(mask2tid(0x40),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_118)&0xffffffff) + 56, 16, 16)) -> intp(mask2tid(0x40),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa982e738 ! 153: WR_SET_SOFTINT_I wr %r11, 0x0738, %set_softint
.word 0x89800011 ! 154: WRTICK_R wr %r0, %r17, %tick
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r19, [%r0+0x3c0] %asi
.word 0x9d940010 ! 155: WRPR_WSTATE_R wrpr %r16, %r16, %wstate
.word 0xe737c000 ! 156: STQF_R - %f19, [%r0, %r31]
.word 0x87802055 ! 157: WRASI_I wr %r0, 0x0055, %asi
.word 0x946d254f ! 158: UDIVX_I udivx %r20, 0x054f, %r10
.word 0xb3800011 ! 159: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_40_122-donret_40_122), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x0006d700 | (0x58 << 24)), %r13
wrhpr %g0, 0x555, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (40)
.word 0x9ba249c5 ! 160: FDIVd fdivd %f40, %f36, %f44
setx 0xffffffb6ffffffa1, %g1, %g7
.word 0xa3800007 ! 161: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8b90000c ! 162: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r16, [%r0+0x3d8] %asi
.word 0x9d924011 ! 163: WRPR_WSTATE_R wrpr %r9, %r17, %wstate
.word 0xa190200b ! 164: WRPR_GL_I wrpr %r0, 0x000b, %-
mov 0x38, %r1 ! (VA for ASI 0x5b)
.word 0xda904b60 ! 165: LDUHA_R lduha [%r1, %r0] 0x5b, %r13
.word 0x8d802004 ! 166: WRFPRS_I wr %r0, 0x0004, %fprs
setx 0x0000000400380000, %r11, %r12
.word 0x8b90000c ! 167: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x91d0001e ! 168: Tcc_R ta icc_or_xcc, %r0 + %r30
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xdbe7e010 ! 169: CASA_R casa [%r31] %asi, %r16, %r13
.word 0xdb3fc012 ! 1: STDF_R std %f13, [%r18, %r31]
.word 0x9f80337a ! 170: SIR sir 0x137a
.word 0x8d902452 ! 171: WRPR_PSTATE_I wrpr %r0, 0x0452, %pstate
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_40_130
brnz %r16, ibp_wait40_130
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_40_130
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_40_130
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000040eed6cd80,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xc1bfd920 ! 172: STDFA_R stda %f0, [%r0, %r31]
.word 0x9469fe9e ! 173: UDIVX_I udivx %r7, 0xfffffe9e, %r10
.word 0x9b6b4002 ! 174: SDIVX_R sdivx %r13, %r2, %r13
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe0dfc032 ! 175: LDXA_R ldxa [%r31, %r18] 0x01, %r16
.word 0xa7807057 ! 176: WR_GRAPHICS_STATUS_REG_I wr %r1, 0x1057, %-
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610000, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 177: RDPC rd %pc, %r20
setx fp_data_quads, %r19, %r20
.word 0x91a009a4 ! 178: FDIVs fdivs %f0, %f4, %f8
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 179: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0x87802083 ! 180: WRASI_I wr %r0, 0x0083, %asi
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_135)+24, 16, 16)) -> intp(mask2tid(0x40),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_135)&0xffffffff) + 32, 16, 16)) -> intp(mask2tid(0x40),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa98332cf ! 181: WR_SET_SOFTINT_I wr %r12, 0x12cf, %set_softint
mov 0x8, %r1 ! (VA for ASI 0x4a)
.word 0xdad84940 ! 182: LDXA_R ldxa [%r1, %r0] 0x4a, %r13
setx 0xa372a6aac8246a6b, %r1, %r28
.word 0x25400001 ! 183: FBPLG fblg,a,pn %fcc0, <label_0x1>
tsubcctv %r18, 0x1f10, %r12
.word 0xda07e134 ! 184: LDUW_I lduw [%r31 + 0x0134], %r13
.word 0x37400001 ! 1: FBPGE fbge,a,pn %fcc0, <label_0x1>
.word 0x81983595 ! 185: WRHPR_HPSTATE_I wrhpr %r0, 0x1595, %hpstate
.word 0xda77c000 ! 186: STX_R stx %r13, [%r31 + %r0]
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xdb37e160 ! 1: STQF_I - %f13, [0x0160, %r31]
.word 0x8d903e9f ! 187: WRPR_PSTATE_I wrpr %r0, 0x1e9f, %pstate
.word 0x83d0001e ! 188: Tcc_R te icc_or_xcc, %r0 + %r30
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_40_141
brnz %r16, ibp_wait40_141
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_40_141
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_40_141
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x000000509ecd80ea,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0x9b702bfa ! 189: POPC_I popc 0x0bfa, %r13
tsubcctv %r12, 0x1648, %r20
.word 0xd807e15d ! 190: LDUW_I lduw [%r31 + 0x015d], %r12
.word 0x87802055 ! 191: WRASI_I wr %r0, 0x0055, %asi
setx 0xb6d3db7d753c3a21, %r1, %r28
.word 0x25400001 ! 192: FBPLG fblg,a,pn %fcc0, <label_0x1>
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_144) + 48, 16, 16)) -> intp(2,0,2,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_144)&0xffffffff) + 40, 16, 16)) -> intp(6,0,12,,,,,1)
.word 0x39400001 ! 193: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8780204f ! 194: WRASI_I wr %r0, 0x004f, %asi
.word 0x89800011 ! 195: WRTICK_R wr %r0, %r17, %tick
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe1bfd920 ! 196: STDFA_R stda %f16, [%r0, %r31]
setx 0x0000000400380000, %r11, %r12
.word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0xa8c1b543 ! 198: ADDCcc_I addccc %r6, 0xfffff543, %r20
setx 0xffffffbcffffffa7, %g1, %g7
.word 0xa3800007 ! 199: WR_PERF_COUNTER_R wr %r0, %r7, %-
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_40_149
brnz %r16, ibp_wait40_149
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_40_149
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_40_149
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000040ebc0ea16,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xc1bfd960 ! 200: STDFA_R stda %f0, [%r0, %r31]
setx join_lbl_0_0, %g1, %g2
.word 0xe19fda00 ! 1: LDDFA_R ldda [%r31, %r0], %f16
.word 0xb3800011 ! 2: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r19, [%r0+0x3d0] %asi
.word 0x9d904010 ! 3: WRPR_WSTATE_R wrpr %r1, %r16, %wstate
.word 0xe19fe180 ! 4: LDDFA_I ldda [%r31, 0x0180], %f16
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610040, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x91414000 ! 5: RDPC rd %pc, %r8
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_5-donret_20_5), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x0097c000 | (28 << 24)), %r13
wrhpr %g0, 0x1d16, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (20)
.word 0x81982f01 ! 6: WRHPR_HPSTATE_I wrhpr %r0, 0x0f01, %hpstate
.word 0xe937e1f2 ! 7: STQF_I - %f20, [0x01f2, %r31]
best_set_reg(0xe1a00000, %r20, %r27)
.word 0xb7c6c000 ! 8: JMPL_R jmpl %r27 + %r0, %r27
.word 0x39400001 ! 9: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0xa9a7c9cd ! 1: FDIVd fdivd %f62, %f44, %f20
.word 0x9f8035b4 ! 10: SIR sir 0x15b4
.word 0x8d802004 ! 11: WRFPRS_I wr %r0, 0x0004, %fprs
mov 0x8, %r1 ! (VA for ASI 0x48)
.word 0xe8c04900 ! 12: LDSWA_R ldswa [%r1, %r0] 0x48, %r20
.word 0xe81fe0d8 ! 13: LDD_I ldd [%r31 + 0x00d8], %r20
.word 0x2ecb0001 ! 1: BRGEZ brgez,a,pt %r12,<label_0xb0001>
.word 0x8d903887 ! 14: WRPR_PSTATE_I wrpr %r0, 0x1887, %pstate
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610030, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 15: RDPC rd %pc, %r20
setx common_target, %r12, %r27
.word 0x9ba109c5 ! 1: FDIVd fdivd %f4, %f36, %f44
.word 0xc1bfd960 ! 16: STDFA_R stda %f0, [%r0, %r31]
best_set_reg(0xe1a00000, %r20, %r27)
.word 0xb7c6c000 ! 17: JMPL_R jmpl %r27 + %r0, %r27
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r8, [%r0+0x3c8] %asi
.word 0x9d924007 ! 18: WRPR_WSTATE_R wrpr %r9, %r7, %wstate
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r4, [%r0+0x3e0] %asi
.word 0x9d92800d ! 19: WRPR_WSTATE_R wrpr %r10, %r13, %wstate
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 20: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_16) + 24, 16, 16)) -> intp(0,0,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_16)&0xffffffff) + 56, 16, 16)) -> intp(5,0,30,,,,,1)
.word 0x39400001 ! 21: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x81db4013 ! 22: FLUSH_R flush %r13, %r19, %r0
.word 0x2c800001 ! 1: BNEG bneg,a <label_0x1>
.word 0x8d902a64 ! 23: WRPR_PSTATE_I wrpr %r0, 0x0a64, %pstate
.word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
ta T_CHANGE_NONHPRIV ! macro
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r19, [%r0+0x3c0] %asi
.word 0x9d948011 ! 25: WRPR_WSTATE_R wrpr %r18, %r17, %wstate
.word 0x81510000 ! 26: RDPR_TICK rdpr %tick, %r0
.word 0x87992af9 ! 27: WRHPR_HINTP_I wrhpr %r4, 0x0af9, %hintp
setx fp_data_quads, %r19, %r20
.word 0x8da009a4 ! 28: FDIVs fdivs %f0, %f4, %f6
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r18, [%r0+0x3e0] %asi
.word 0x9d934005 ! 29: WRPR_WSTATE_R wrpr %r13, %r5, %wstate
.word 0x81982a45 ! 30: WRHPR_HPSTATE_I wrhpr %r0, 0x0a45, %hpstate
setx 0x00000004003a0000, %r11, %r12
.word 0x8b90000c ! 31: WRPR_TBA_R wrpr %r0, %r12, %tba
mov 0x8, %r1 ! (VA for ASI 0x4a)
.word 0xe8d84940 ! 32: LDXA_R ldxa [%r1, %r0] 0x4a, %r20
.word 0x39400001 ! 33: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e013 ! 34: CASA_R casa [%r31] %asi, %r19, %r20
.word 0xe89fe040 ! 35: LDDA_I ldda [%r31, + 0x0040] %asi, %r20
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e014 ! 36: CASA_R casa [%r31] %asi, %r20, %r20
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_28-donret_20_28), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00255d00 | (28 << 24)), %r13
wrhpr %g0, 0x1eb5, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (20)
.word 0x33400001 ! 37: FBPE fbe,a,pn %fcc0, <label_0x1>
setx common_target, %r12, %r27
.word 0x91a00546 ! 1: FSQRTd fsqrt
.word 0xe1bfe0e0 ! 38: STDFA_I stda %f16, [0x00e0, %r31]
.word 0x91904011 ! 39: WRPR_PIL_R wrpr %r1, %r17, %pil
.word 0xd877e138 ! 40: STX_I stx %r12, [%r31 + 0x0138]
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100f0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x93414000 ! 41: RDPC rd %pc, %r9
.word 0xe69fe1e0 ! 42: LDDA_I ldda [%r31, + 0x01e0] %asi, %r19
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe7e7e009 ! 43: CASA_R casa [%r31] %asi, %r9, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_34-donret_20_34+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00ab3100 | (0x88 << 24)), %r13
wrhpr %g0, 0x154c, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (20)
.word 0xe66fe1fb ! 44: LDSTUB_I ldstub %r19, [%r31 + 0x01fb]
.word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0xe65fc000 ! 45: LDX_R ldx [%r31 + %r0], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_35)+16, 16, 16)) -> intp(mask2tid(0x20),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_35)&0xffffffff) + 32, 16, 16)) -> intp(mask2tid(0x20),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9847dff ! 46: WR_SET_SOFTINT_I wr %r17, 0x1dff, %set_softint
.word 0xc32fc011 ! 47: STXFSR_R st-sfr %f1, [%r17, %r31]
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_37-donret_20_37+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r12, %r10, %r12 ! low VA tpc
set (0x0034f500 | (0x4f << 24)), %r13
wrhpr %g0, 0xd1d, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (20)
.word 0x8d903752 ! 48: WRPR_PSTATE_I wrpr %r0, 0x1752, %pstate
.word 0x89800011 ! 49: WRTICK_R wr %r0, %r17, %tick
.word 0xe1bfe0a0 ! 50: STDFA_I stda %f16, [0x00a0, %r31]
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 51: FBPULE fbule,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
done_change_to_randtl_20_41:
.word 0x8f902000 ! 52: WRPR_TL_I wrpr %r0, 0x0000, %tl
.word 0xe1bfdc00 ! 53: STDFA_R stda %f16, [%r0, %r31]
.word 0x89800011 ! 54: WRTICK_R wr %r0, %r17, %tick
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_43-donret_20_43+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00db6700 | (28 << 24)), %r13
wrhpr %g0, 0xa07, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (20)
.word 0x34800001 ! 1: BG bg,a <label_0x1>
.word 0x81982c46 ! 55: WRHPR_HPSTATE_I wrhpr %r0, 0x0c46, %hpstate
.word 0xe64fc000 ! 56: LDSB_R ldsb [%r31 + %r0], %r19
.word 0xe71fe128 ! 57: LDDF_I ldd [%r31, 0x0128], %f19
.word 0x87802016 ! 58: WRASI_I wr %r0, 0x0016, %asi
.word 0x89800011 ! 59: WRTICK_R wr %r0, %r17, %tick
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610080, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x93414000 ! 60: RDPC rd %pc, %r9
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r18, [%r0+0x3c0] %asi
.word 0x9d940012 ! 61: WRPR_WSTATE_R wrpr %r16, %r18, %wstate
.word 0x91d020b5 ! 62: Tcc_I ta icc_or_xcc, %r0 + 181
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 63: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xe1bfdf20 ! 64: STDFA_R stda %f16, [%r0, %r31]
.word 0x819823cf ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x03cf, %hpstate
.word 0x8d903cc0 ! 66: WRPR_PSTATE_I wrpr %r0, 0x1cc0, %pstate
.word 0x39400001 ! 67: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0xa3b447d4 ! 68: PDIST pdistn %d48, %d20, %d48
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_53-donret_20_53+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00d5cc00 | (0x55 << 24)), %r13
wrhpr %g0, 0xf0d, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (20)
.word 0x24cc8001 ! 69: BRLEZ brlez,a,pt %r18,<label_0xc8001>
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0xa7b447c3 ! 70: PDIST pdistn %d48, %d34, %d50
.word 0xa1a00167 ! 71: FABSq dis not found
.word 0xc19fe1a0 ! 72: LDDFA_I ldda [%r31, 0x01a0], %f0
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_56-donret_20_56), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x0095cd00 | (28 << 24)), %r13
wrhpr %g0, 0x199f, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (20)
.word 0xe4ffe0ac ! 73: SWAPA_I swapa %r18, [%r31 + 0x00ac] %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c011 ! 1: STQF_R - %f18, [%r17, %r31]
.word 0xe4dfc031 ! 74: LDXA_R ldxa [%r31, %r17] 0x01, %r18
.word 0x91928010 ! 75: WRPR_PIL_R wrpr %r10, %r16, %pil
.word 0xaf800011 ! 76: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 77: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802058 ! 78: WRASI_I wr %r0, 0x0058, %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c00c ! 1: STQF_R - %f18, [%r12, %r31]
.word 0xe53fc010 ! 79: STDF_R std %f18, [%r16, %r31]
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r5, [%r0+0x3c8] %asi
.word 0x9d94c005 ! 80: WRPR_WSTATE_R wrpr %r19, %r5, %wstate
.word 0xe45fc000 ! 81: LDX_R ldx [%r31 + %r0], %r18
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0xa7b407ca ! 82: PDIST pdistn %d16, %d10, %d50
.word 0xd3e7c020 ! 83: CASA_I casa [%r31] 0x 1, %r0, %r9
.word 0xa7a00168 ! 84: FABSq dis not found
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100e0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 85: RDPC rd %pc, %r20
.word 0x97450000 ! 86: RD_SET_SOFTINT rd %set_softint, %r11
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0x93b7c7c8 ! 1: PDIST pdistn %d62, %d8, %d40
.word 0x97a509ab ! 87: FDIVs fdivs %f20, %f11, %f11
setx 0xffffffbdffffffaf, %g1, %g7
.word 0xa3800007 ! 88: WR_PERF_COUNTER_R wr %r0, %r7, %-
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_68)+40, 16, 16)) -> intp(mask2tid(0x20),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_68)&0xffffffff) + 16, 16, 16)) -> intp(mask2tid(0x20),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9852c3c ! 89: WR_SET_SOFTINT_I wr %r20, 0x0c3c, %set_softint
.word 0x39400001 ! 90: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx fp_data_quads, %r19, %r20
.word 0xc3e823fe ! 91: PREFETCHA_I prefetcha [%r0, + 0x03fe] %asi, #one_read
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r20, [%r0+0x3d8] %asi
.word 0x9d91c010 ! 92: WRPR_WSTATE_R wrpr %r7, %r16, %wstate
.word 0x8d903191 ! 93: WRPR_PSTATE_I wrpr %r0, 0x1191, %pstate
.word 0x8d802004 ! 94: WRFPRS_I wr %r0, 0x0004, %fprs
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xd1e7e00a ! 95: CASA_R casa [%r31] %asi, %r10, %r8
.word 0x9b703925 ! 96: POPC_I popc 0x1925, %r13
.word 0xc3ec0031 ! 97: PREFETCHA_R prefetcha [%r16, %r17] 0x01, #one_read
mov 0x10, %r1 ! (VA for ASI 0x5a)
.word 0xd8c04b40 ! 98: LDSWA_R ldswa [%r1, %r0] 0x5a, %r12
.word 0x81460000 ! 99: RD_STICK_REG stbar
best_set_reg(0xe0a00000, %r20, %r27)
.word 0xb7c6c000 ! 100: JMPL_R jmpl %r27 + %r0, %r27
setx 0xffffffbcffffffa7, %g1, %g7
.word 0xa3800007 ! 101: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x85853bfa ! 102: WRCCR_I wr %r20, 0x1bfa, %ccr
.word 0xd8cfe018 ! 103: LDSBA_I ldsba [%r31, + 0x0018] %asi, %r12
done_change_to_randtl_20_80:
.word 0x8f902000 ! 104: WRPR_TL_I wrpr %r0, 0x0000, %tl
setx 0xffffffbeffffffa5, %g1, %g7
.word 0xa3800007 ! 105: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x3c800001 ! 1: BPOS bpos,a <label_0x1>
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 106: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xd8cfe090 ! 107: LDSBA_I ldsba [%r31, + 0x0090] %asi, %r12
.word 0xc36fe140 ! 1: PREFETCH_I prefetch [%r31 + 0x0140], #one_read
.word 0x9f802ffb ! 108: SIR sir 0x0ffb
.word 0xd8dfe1f8 ! 109: LDXA_I ldxa [%r31, + 0x01f8] %asi, %r12
.word 0x87802014 ! 110: WRASI_I wr %r0, 0x0014, %asi
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r6, [%r0+0x3d8] %asi
.word 0x9d91c011 ! 111: WRPR_WSTATE_R wrpr %r7, %r17, %wstate
.word 0x81460000 ! 112: RD_STICK_REG stbar
.word 0x87ab4a44 ! 113: FCMPd fcmpd %fcc<n>, %f44, %f4
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100d0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa5414000 ! 114: RDPC rd %pc, %r18
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_86) + 40, 16, 16)) -> intp(5,0,0,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_86)&0xffffffff) + 32, 16, 16)) -> intp(3,0,20,,,,,1)
.word 0x39400001 ! 115: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx 0xffffffb9ffffffa3, %g1, %g7
.word 0xa3800007 ! 116: WR_PERF_COUNTER_R wr %r0, %r7, %-
mov 0x10, %r1 ! (VA for ASI 0x49)
.word 0xd8d84920 ! 117: LDXA_R ldxa [%r1, %r0] 0x49, %r12
.word 0x95450000 ! 118: RD_SET_SOFTINT rd %set_softint, %r10
setx fp_data_quads, %r19, %r20
.word 0x89a009a4 ! 119: FDIVs fdivs %f0, %f4, %f4
.word 0xc30fc00d ! 1: LDXFSR_R ld-fsr [%r31, %r13], %f1
.word 0x9f8034ef ! 120: SIR sir 0x14ef
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_90-donret_20_90+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00279900 | (0x55 << 24)), %r13
wrhpr %g0, 0x148e, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (20)
.word 0xe66fe0d8 ! 121: LDSTUB_I ldstub %r19, [%r31 + 0x00d8]
.word 0xe69fc02b ! 1: LDDA_R ldda [%r31, %r11] 0x01, %r19
.word 0x9f802611 ! 122: SIR sir 0x0611
setx 0x00000002002a0000, %r11, %r12
.word 0x8b98000c ! 123: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100b0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa1414000 ! 124: RDPC rd %pc, %r16
.word 0x39400001 ! 125: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8d802000 ! 126: WRFPRS_I wr %r0, 0x0000, %fprs
.word 0xc3e8c026 ! 127: PREFETCHA_R prefetcha [%r3, %r6] 0x01, #one_read
.word 0x99702c9e ! 128: POPC_I popc 0x0c9e, %r12
.word 0x9f80321a ! 129: SIR sir 0x121a
.word 0xe88008a0 ! 130: LDUWA_R lduwa [%r0, %r0] 0x45, %r20
setx 0xcde8ed01559011c6, %r1, %r28
.word 0x25400001 ! 131: FBPLG fblg,a,pn %fcc0, <label_0x1>
.word 0x81983e5f ! 132: WRHPR_HPSTATE_I wrhpr %r0, 0x1e5f, %hpstate
mov 0x0, %r1 ! (VA for ASI 0x72)
.word 0xe8904e40 ! 133: LDUHA_R lduha [%r1, %r0] 0x72, %r20
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_100)+24, 16, 16)) -> intp(mask2tid(0x20),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_100)&0xffffffff) + 0, 16, 16)) -> intp(mask2tid(0x20),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984eeb6 ! 134: WR_SET_SOFTINT_I wr %r19, 0x0eb6, %set_softint
setx 0x36c66d0e49c23e67, %r1, %r28
.word 0x25400001 ! 135: FBPLG fblg,a,pn %fcc0, <label_0x1>
setx 0x608b555f8b1eacd8, %r1, %r28
.word 0x25400001 ! 136: FBPLG fblg,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_103-donret_20_103), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x0097ce00 | (16 << 24)), %r13
wrhpr %g0, 0x1dd6, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (20)
.word 0xe86fe048 ! 137: LDSTUB_I ldstub %r20, [%r31 + 0x0048]
.word 0xc19fd920 ! 138: LDDFA_R ldda [%r31, %r0], %f0
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e00c ! 139: CASA_R casa [%r31] %asi, %r12, %r20
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 140: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0xe93fc00d ! 141: STDF_R std %f20, [%r13, %r31]
.word 0x91d020b4 ! 142: Tcc_I ta icc_or_xcc, %r0 + 180
.word 0x81983f87 ! 143: WRHPR_HPSTATE_I wrhpr %r0, 0x1f87, %hpstate
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0x95703287 ! 144: POPC_I popc 0x1287, %r10
.word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, <label_0x1>
.word 0x8d902f35 ! 145: WRPR_PSTATE_I wrpr %r0, 0x0f35, %pstate
set user_data_start, %r31
.word 0x8582a52e ! 146: WRCCR_I wr %r10, 0x052e, %ccr
.word 0x9b410000 ! 147: RDTICK rd %tick, %r13
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_113-donret_20_113+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0xe000 | (0x80 << 24)), %r13
wrhpr %g0, 0x13d5, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (20)
.word 0xe6ffe018 ! 148: SWAPA_I swapa %r19, [%r31 + 0x0018] %asi
setx 0x00000004003a0000, %r11, %r12
.word 0x8b90000c ! 149: WRPR_TBA_R wrpr %r0, %r12, %tba
setx 0x00000002002a0000, %r11, %r12
.word 0x8b98000c ! 150: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
setx fp_data_quads, %r19, %r20
.word 0x87a80a44 ! 151: FCMPd fcmpd %fcc<n>, %f0, %f4
taddcctv %r11, 0x1090, %r17
.word 0xe607e114 ! 152: LDUW_I lduw [%r31 + 0x0114], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_118)+8, 16, 16)) -> intp(mask2tid(0x20),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_118)&0xffffffff) + 16, 16, 16)) -> intp(mask2tid(0x20),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984a7a4 ! 153: WR_SET_SOFTINT_I wr %r18, 0x07a4, %set_softint
.word 0x89800011 ! 154: WRTICK_R wr %r0, %r17, %tick
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r17, [%r0+0x3d8] %asi
.word 0x9d94c004 ! 155: WRPR_WSTATE_R wrpr %r19, %r4, %wstate
.word 0xe737c000 ! 156: STQF_R - %f19, [%r0, %r31]
.word 0x87802039 ! 157: WRASI_I wr %r0, 0x0039, %asi
.word 0xa669667f ! 158: UDIVX_I udivx %r5, 0x067f, %r19
.word 0xaf800011 ! 159: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_20_122-donret_20_122), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00816b00 | (0x83 << 24)), %r13
wrhpr %g0, 0x1b1f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (20)
.word 0x99a449d4 ! 160: FDIVd fdivd %f48, %f20, %f12
setx 0xffffffb5ffffffae, %g1, %g7
.word 0xa3800007 ! 161: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8b90000c ! 162: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r19, [%r0+0x3c0] %asi
.word 0x9d91800a ! 163: WRPR_WSTATE_R wrpr %r6, %r10, %wstate
.word 0xa1902002 ! 164: WRPR_GL_I wrpr %r0, 0x0002, %-
mov 0x0, %r1 ! (VA for ASI 0x5b)
.word 0xdad84b60 ! 165: LDXA_R ldxa [%r1, %r0] 0x5b, %r13
.word 0x8d802000 ! 166: WRFPRS_I wr %r0, 0x0000, %fprs
setx 0x00000004003a0000, %r11, %r12
.word 0x8b90000c ! 167: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x91d0001e ! 168: Tcc_R ta icc_or_xcc, %r0 + %r30
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xdbe7e011 ! 169: CASA_R casa [%r31] %asi, %r17, %r13
.word 0xc32fc00c ! 1: STXFSR_R st-sfr %f1, [%r12, %r31]
.word 0x9f80307b ! 170: SIR sir 0x107b
.word 0x8d903432 ! 171: WRPR_PSTATE_I wrpr %r0, 0x1432, %pstate
.word 0xc1bfe060 ! 172: STDFA_I stda %f0, [0x0060, %r31]
.word 0xa46c60d1 ! 173: UDIVX_I udivx %r17, 0x00d1, %r18
.word 0xa9688004 ! 174: SDIVX_R sdivx %r2, %r4, %r20
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe0bfc032 ! 175: STDA_R stda %r16, [%r31 + %r18] 0x01
.word 0xa7817a24 ! 176: WR_GRAPHICS_STATUS_REG_I wr %r5, 0x1a24, %-
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610060, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa5414000 ! 177: RDPC rd %pc, %r18
setx fp_data_quads, %r19, %r20
.word 0x89b00484 ! 178: FCMPLE32 fcmple32 %d0, %d4, %r4
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 179: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0x87802083 ! 180: WRASI_I wr %r0, 0x0083, %asi
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_135)+32, 16, 16)) -> intp(mask2tid(0x20),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_135)&0xffffffff) + 24, 16, 16)) -> intp(mask2tid(0x20),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa98427de ! 181: WR_SET_SOFTINT_I wr %r16, 0x07de, %set_softint
mov 0x110, %r1 ! (VA for ASI 0x4a)
.word 0xda884940 ! 182: LDUBA_R lduba [%r1, %r0] 0x4a, %r13
setx 0x8a9074173e2a7d3d, %r1, %r28
.word 0x25400001 ! 183: FBPLG fblg,a,pn %fcc0, <label_0x1>
tsubcctv %r2, 0x1441, %r16
.word 0xda07e187 ! 184: LDUW_I lduw [%r31 + 0x0187], %r13
.word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, <label_0x1>
.word 0x81983e4d ! 185: WRHPR_HPSTATE_I wrhpr %r0, 0x1e4d, %hpstate
.word 0xda77c000 ! 186: STX_R stx %r13, [%r31 + %r0]
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xdb37e110 ! 1: STQF_I - %f13, [0x0110, %r31]
.word 0x81983dcd ! 187: WRHPR_HPSTATE_I wrhpr %r0, 0x1dcd, %hpstate
.word 0x83d0001e ! 188: Tcc_R te icc_or_xcc, %r0 + %r30
.word 0xc3ec402d ! 189: PREFETCHA_R prefetcha [%r17, %r13] 0x01, #one_read
tsubcctv %r17, 0x1019, %r3
.word 0xd807e090 ! 190: LDUW_I lduw [%r31 + 0x0090], %r12
.word 0x8780204f ! 191: WRASI_I wr %r0, 0x004f, %asi
setx 0xe2913bfd7f96d03d, %r1, %r28
.word 0x25400001 ! 192: FBPLG fblg,a,pn %fcc0, <label_0x1>
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_144) + 0, 16, 16)) -> intp(2,0,22,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_144)&0xffffffff) + 32, 16, 16)) -> intp(5,0,8,,,,,1)
.word 0x39400001 ! 193: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x87802080 ! 194: WRASI_I wr %r0, 0x0080, %asi
.word 0x89800011 ! 195: WRTICK_R wr %r0, %r17, %tick
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe19fe120 ! 196: LDDFA_I ldda [%r31, 0x0120], %f16
setx 0x00000004003a0000, %r11, %r12
.word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x98c2a90d ! 198: ADDCcc_I addccc %r10, 0x090d, %r12
setx 0xffffffbfffffffa6, %g1, %g7
.word 0xa3800007 ! 199: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0xe19fe020 ! 200: LDDFA_I ldda [%r31, 0x0020], %f16
setx join_lbl_0_0, %g1, %g2
.word 0xc19fdf20 ! 1: LDDFA_R ldda [%r31, %r0], %f0
.word 0xb3800011 ! 2: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r17, [%r0+0x3c0] %asi
.word 0x9d92c012 ! 3: WRPR_WSTATE_R wrpr %r11, %r18, %wstate
.word 0xe19fe160 ! 4: LDDFA_I ldda [%r31, 0x0160], %f16
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100a0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x91414000 ! 5: RDPC rd %pc, %r8
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_5-donret_10_5), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x008cb400 | (0x82 << 24)), %r13
wrhpr %g0, 0x6df, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (10)
.word 0x8198241f ! 6: WRHPR_HPSTATE_I wrhpr %r0, 0x041f, %hpstate
.word 0xe937e082 ! 7: STQF_I - %f20, [0x0082, %r31]
best_set_reg(0xe0200000, %r20, %r27)
.word 0xb7c6c000 ! 8: JMPL_R jmpl %r27 + %r0, %r27
.word 0x39400001 ! 9: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0xa9b7c492 ! 1: FCMPLE32 fcmple32 %d62, %d18, %r20
.word 0x9f8033af ! 10: SIR sir 0x13af
.word 0x8d802004 ! 11: WRFPRS_I wr %r0, 0x0004, %fprs
mov 0x10, %r1 ! (VA for ASI 0x48)
.word 0xe8884900 ! 12: LDUBA_R lduba [%r1, %r0] 0x48, %r20
.word 0xe81fe068 ! 13: LDD_I ldd [%r31 + 0x0068], %r20
.word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, <label_0x1>
.word 0x8d903943 ! 14: WRPR_PSTATE_I wrpr %r0, 0x1943, %pstate
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100d0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x97414000 ! 15: RDPC rd %pc, %r11
setx common_target, %r12, %r27
.word 0x81dfc00a ! 1: FLUSH_R flush %r31, %r10, %r0
.word 0xe19fc3e0 ! 16: LDDFA_R ldda [%r31, %r0], %f16
best_set_reg(0xe0200000, %r20, %r27)
.word 0xb7c6c000 ! 17: JMPL_R jmpl %r27 + %r0, %r27
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r3, [%r0+0x3c0] %asi
.word 0x9d948001 ! 18: WRPR_WSTATE_R wrpr %r18, %r1, %wstate
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r10, [%r0+0x3e0] %asi
.word 0x9d94800b ! 19: WRPR_WSTATE_R wrpr %r18, %r11, %wstate
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 20: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_16) + 40, 16, 16)) -> intp(5,0,14,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_16)&0xffffffff) + 8, 16, 16)) -> intp(1,0,14,,,,,1)
.word 0x39400001 ! 21: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x81dd0008 ! 22: FLUSH_R flush %r20, %r8, %r0
.word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8d902d21 ! 23: WRPR_PSTATE_I wrpr %r0, 0x0d21, %pstate
.word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
ta T_CHANGE_NONHPRIV ! macro
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r13, [%r0+0x3c0] %asi
.word 0x9d92c008 ! 25: WRPR_WSTATE_R wrpr %r11, %r8, %wstate
.word 0x81510000 ! 26: RDPR_TICK rdpr %tick, %r0
.word 0x879cfcf8 ! 27: WRHPR_HINTP_I wrhpr %r19, 0x1cf8, %hintp
setx fp_data_quads, %r19, %r20
.word 0xc3e83e22 ! 28: PREFETCHA_I prefetcha [%r0, + 0xfffffe22] %asi, #one_read
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r20, [%r0+0x3e8] %asi
.word 0x9d930005 ! 29: WRPR_WSTATE_R wrpr %r12, %r5, %wstate
.word 0x81983964 ! 30: WRHPR_HPSTATE_I wrhpr %r0, 0x1964, %hpstate
setx 0x0000000000380000, %r11, %r12
.word 0x8b90000c ! 31: WRPR_TBA_R wrpr %r0, %r12, %tba
mov 0x8, %r1 ! (VA for ASI 0x4a)
.word 0xe8904940 ! 32: LDUHA_R lduha [%r1, %r0] 0x4a, %r20
.word 0x39400001 ! 33: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e011 ! 34: CASA_R casa [%r31] %asi, %r17, %r20
.word 0xe89fe068 ! 35: LDDA_I ldda [%r31, + 0x0068] %asi, %r20
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e012 ! 36: CASA_R casa [%r31] %asi, %r18, %r20
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_28-donret_10_28), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00ee8b00 | (22 << 24)), %r13
wrhpr %g0, 0x5c3, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (10)
.word 0x29400001 ! 37: FBPL fbl,a,pn %fcc0, <label_0x1>
setx common_target, %r12, %r27
.word 0xa9a7c972 ! 1: FMULq dis not found
.word 0xe19fe000 ! 38: LDDFA_I ldda [%r31, 0x0000], %f16
.word 0x91944010 ! 39: WRPR_PIL_R wrpr %r17, %r16, %pil
.word 0xd877e0e0 ! 40: STX_I stx %r12, [%r31 + 0x00e0]
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100e0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x91414000 ! 41: RDPC rd %pc, %r8
.word 0xe697c02d ! 42: LDUHA_R lduha [%r31, %r13] 0x01, %r19
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe7e7e010 ! 43: CASA_R casa [%r31] %asi, %r16, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_34-donret_10_34+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x0077cc00 | (54 << 24)), %r13
wrhpr %g0, 0x1c0b, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (10)
.word 0xe66fe1e5 ! 44: LDSTUB_I ldstub %r19, [%r31 + 0x01e5]
.word 0x22cb0001 ! 1: BRZ brz,a,pt %r12,<label_0xb0001>
.word 0xe65fc000 ! 45: LDX_R ldx [%r31 + %r0], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_35)+40, 16, 16)) -> intp(mask2tid(0x10),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_35)&0xffffffff) + 0, 16, 16)) -> intp(mask2tid(0x10),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa981335d ! 46: WR_SET_SOFTINT_I wr %r4, 0x135d, %set_softint
.word 0xe697c032 ! 47: LDUHA_R lduha [%r31, %r18] 0x01, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_37-donret_10_37+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r12, %r10, %r12 ! low VA tpc
set (0x0031fe00 | (0x4f << 24)), %r13
wrhpr %g0, 0xdb, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (10)
.word 0x8d902b4f ! 48: WRPR_PSTATE_I wrpr %r0, 0x0b4f, %pstate
.word 0x89800011 ! 49: WRTICK_R wr %r0, %r17, %tick
.word 0xc19fda00 ! 50: LDDFA_R ldda [%r31, %r0], %f0
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 51: FBPULE fbule,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
done_change_to_randtl_10_41:
.word 0x8f902002 ! 52: WRPR_TL_I wrpr %r0, 0x0002, %tl
.word 0xe1bfd920 ! 53: STDFA_R stda %f16, [%r0, %r31]
.word 0x89800011 ! 54: WRTICK_R wr %r0, %r17, %tick
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_43-donret_10_43+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x0014ca00 | (16 << 24)), %r13
wrhpr %g0, 0xa45, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (10)
.word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, <label_0x1>
.word 0x819831d5 ! 55: WRHPR_HPSTATE_I wrhpr %r0, 0x11d5, %hpstate
.word 0xe64fc000 ! 56: LDSB_R ldsb [%r31 + %r0], %r19
.word 0xe71fe1b0 ! 57: LDDF_I ldd [%r31, 0x01b0], %f19
.word 0x8780201c ! 58: WRASI_I wr %r0, 0x001c, %asi
.word 0x89800011 ! 59: WRTICK_R wr %r0, %r17, %tick
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610010, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x97414000 ! 60: RDPC rd %pc, %r11
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r6, [%r0+0x3c0] %asi
.word 0x9d92c011 ! 61: WRPR_WSTATE_R wrpr %r11, %r17, %wstate
.word 0x91d020b5 ! 62: Tcc_I ta icc_or_xcc, %r0 + 181
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 63: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xc1bfda00 ! 64: STDFA_R stda %f0, [%r0, %r31]
.word 0x8198229d ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x029d, %hpstate
.word 0x8d903d8b ! 66: WRPR_PSTATE_I wrpr %r0, 0x1d8b, %pstate
.word 0x39400001 ! 67: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x91b14488 ! 68: FCMPLE32 fcmple32 %d36, %d8, %r8
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_53-donret_10_53+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x004b4700 | (4 << 24)), %r13
wrhpr %g0, 0xa07, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (10)
.word 0x35400001 ! 69: FBPUE fbue,a,pn %fcc0, <label_0x1>
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0x97b1c7c5 ! 70: PDIST pdistn %d38, %d36, %d42
.word 0xa9a00174 ! 71: FABSq dis not found
.word 0xc1bfd920 ! 72: STDFA_R stda %f0, [%r0, %r31]
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_56-donret_10_56), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x001b4b00 | (0x89 << 24)), %r13
wrhpr %g0, 0x504, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (10)
.word 0xe4ffe186 ! 73: SWAPA_I swapa %r18, [%r31 + 0x0186] %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c010 ! 1: STQF_R - %f18, [%r16, %r31]
.word 0xe53fc008 ! 74: STDF_R std %f18, [%r8, %r31]
.word 0x9191000b ! 75: WRPR_PIL_R wrpr %r4, %r11, %pil
.word 0xaf800011 ! 76: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 77: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802089 ! 78: WRASI_I wr %r0, 0x0089, %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c013 ! 1: STQF_R - %f18, [%r19, %r31]
.word 0xe4dfc033 ! 79: LDXA_R ldxa [%r31, %r19] 0x01, %r18
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r17, [%r0+0x3d8] %asi
.word 0x9d950003 ! 80: WRPR_WSTATE_R wrpr %r20, %r3, %wstate
.word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31
.word 0xe45fc000 ! 81: LDX_R ldx [%r31 + %r0], %r18
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0xa9b4c7cb ! 82: PDIST pdistn %d50, %d42, %d20
.word 0xd3e7c020 ! 83: CASA_I casa [%r31] 0x 1, %r0, %r9
.word 0xa7a00174 ! 84: FABSq dis not found
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610090, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x93414000 ! 85: RDPC rd %pc, %r9
.word 0x91450000 ! 86: RD_SET_SOFTINT rd %set_softint, %r8
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0x93b7c7d4 ! 1: PDIST pdistn %d62, %d20, %d40
.word 0xa7b1c7d0 ! 87: PDIST pdistn %d38, %d16, %d50
setx 0xffffffb8ffffffa7, %g1, %g7
.word 0xa3800007 ! 88: WR_PERF_COUNTER_R wr %r0, %r7, %-
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_68)+8, 16, 16)) -> intp(mask2tid(0x10),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_68)&0xffffffff) + 16, 16, 16)) -> intp(mask2tid(0x10),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa981fa3c ! 89: WR_SET_SOFTINT_I wr %r7, 0x1a3c, %set_softint
.word 0x39400001 ! 90: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx fp_data_quads, %r19, %r20
.word 0xc3e823fe ! 91: PREFETCHA_I prefetcha [%r0, + 0x03fe] %asi, #one_read
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r5, [%r0+0x3d0] %asi
.word 0x9d928001 ! 92: WRPR_WSTATE_R wrpr %r10, %r1, %wstate
.word 0x8d9030b4 ! 93: WRPR_PSTATE_I wrpr %r0, 0x10b4, %pstate
.word 0x8d802000 ! 94: WRFPRS_I wr %r0, 0x0000, %fprs
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xd1e7e008 ! 95: CASA_R casa [%r31] %asi, %r8, %r8
.word 0x99a409b0 ! 96: FDIVs fdivs %f16, %f16, %f12
.word 0xc3e9002c ! 97: PREFETCHA_R prefetcha [%r4, %r12] 0x01, #one_read
mov 0x28, %r1 ! (VA for ASI 0x5a)
.word 0xd8c04b40 ! 98: LDSWA_R ldswa [%r1, %r0] 0x5a, %r12
.word 0x81460000 ! 99: RD_STICK_REG stbar
best_set_reg(0xe1200000, %r20, %r27)
.word 0xb7c6c000 ! 100: JMPL_R jmpl %r27 + %r0, %r27
setx 0xffffffb2ffffffaf, %g1, %g7
.word 0xa3800007 ! 101: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8581370c ! 102: WRCCR_I wr %r4, 0x170c, %ccr
.word 0xd8cfe078 ! 103: LDSBA_I ldsba [%r31, + 0x0078] %asi, %r12
done_change_to_randtl_10_80:
.word 0x8f902000 ! 104: WRPR_TL_I wrpr %r0, 0x0000, %tl
setx 0xffffffbaffffffac, %g1, %g7
.word 0xa3800007 ! 105: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x22cc8001 ! 1: BRZ brz,a,pt %r18,<label_0xc8001>
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 106: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xd8cfe0d8 ! 107: LDSBA_I ldsba [%r31, + 0x00d8] %asi, %r12
.word 0xc36fe1e0 ! 1: PREFETCH_I prefetch [%r31 + 0x01e0], #one_read
.word 0x9f803224 ! 108: SIR sir 0x1224
.word 0xd8dfe118 ! 109: LDXA_I ldxa [%r31, + 0x0118] %asi, %r12
.word 0x87802004 ! 110: WRASI_I wr %r0, 0x0004, %asi
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r5, [%r0+0x3e8] %asi
.word 0x9d910011 ! 111: WRPR_WSTATE_R wrpr %r4, %r17, %wstate
.word 0x81460000 ! 112: RD_STICK_REG stbar
.word 0x87a94a51 ! 113: FCMPd fcmpd %fcc<n>, %f36, %f48
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100c0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa5414000 ! 114: RDPC rd %pc, %r18
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_86) + 8, 16, 16)) -> intp(7,0,5,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_86)&0xffffffff) + 24, 16, 16)) -> intp(2,0,9,,,,,1)
.word 0x39400001 ! 115: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx 0xffffffbbffffffac, %g1, %g7
.word 0xa3800007 ! 116: WR_PERF_COUNTER_R wr %r0, %r7, %-
mov 0x8, %r1 ! (VA for ASI 0x49)
.word 0xd8d04920 ! 117: LDSHA_R ldsha [%r1, %r0] 0x49, %r12
.word 0x91450000 ! 118: RD_SET_SOFTINT rd %set_softint, %r8
setx fp_data_quads, %r19, %r20
.word 0x8da009c4 ! 119: FDIVd fdivd %f0, %f4, %f6
.word 0xc32fc010 ! 1: STXFSR_R st-sfr %f1, [%r16, %r31]
.word 0x9f803e0a ! 120: SIR sir 0x1e0a
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_90-donret_10_90+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00e0df00 | (0x8b << 24)), %r13
wrhpr %g0, 0x1382, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (10)
.word 0xe66fe1a1 ! 121: LDSTUB_I ldstub %r19, [%r31 + 0x01a1]
.word 0xe6dfc032 ! 1: LDXA_R ldxa [%r31, %r18] 0x01, %r19
.word 0x9f8025e5 ! 122: SIR sir 0x05e5
setx 0x0000000000280000, %r11, %r12
.word 0x8b98000c ! 123: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610050, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x97414000 ! 124: RDPC rd %pc, %r11
.word 0x39400001 ! 125: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8d802000 ! 126: WRFPRS_I wr %r0, 0x0000, %fprs
.word 0xa9b207c1 ! 127: PDIST pdistn %d8, %d32, %d20
.word 0x93a149a2 ! 128: FDIVs fdivs %f5, %f2, %f9
.word 0x87a88a49 ! 129: FCMPd fcmpd %fcc<n>, %f2, %f40
.word 0xe8800ae0 ! 130: LDUWA_R lduwa [%r0, %r0] 0x57, %r20
setx 0xe41e1882a0a44653, %r1, %r28
.word 0x25400001 ! 131: FBPLG fblg,a,pn %fcc0, <label_0x1>
.word 0x81983585 ! 132: WRHPR_HPSTATE_I wrhpr %r0, 0x1585, %hpstate
mov 0x0, %r1 ! (VA for ASI 0x72)
.word 0xe8884e40 ! 133: LDUBA_R lduba [%r1, %r0] 0x72, %r20
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_100)+56, 16, 16)) -> intp(mask2tid(0x10),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_100)&0xffffffff) + 16, 16, 16)) -> intp(mask2tid(0x10),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9822959 ! 134: WR_SET_SOFTINT_I wr %r8, 0x0959, %set_softint
setx 0xdcd59f1fadf6295c, %r1, %r28
.word 0x25400001 ! 135: FBPLG fblg,a,pn %fcc0, <label_0x1>
setx 0x9c22d1429bed53ac, %r1, %r28
.word 0x25400001 ! 136: FBPLG fblg,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_103-donret_10_103), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00649900 | (0x8a << 24)), %r13
wrhpr %g0, 0x15dd, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (10)
.word 0xe86fe1b9 ! 137: LDSTUB_I ldstub %r20, [%r31 + 0x01b9]
.word 0xe19fe100 ! 138: LDDFA_I ldda [%r31, 0x0100], %f16
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e011 ! 139: CASA_R casa [%r31] %asi, %r17, %r20
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 140: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
.word 0xe8dfc028 ! 141: LDXA_R ldxa [%r31, %r8] 0x01, %r20
.word 0x91d020b5 ! 142: Tcc_I ta icc_or_xcc, %r0 + 181
.word 0x819822cf ! 143: WRHPR_HPSTATE_I wrhpr %r0, 0x02cf, %hpstate
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0x91a489b2 ! 144: FDIVs fdivs %f18, %f18, %f8
.word 0x29400001 ! 1: FBPL fbl,a,pn %fcc0, <label_0x1>
.word 0x8d903197 ! 145: WRPR_PSTATE_I wrpr %r0, 0x1197, %pstate
set user_data_start, %r31
.word 0x8581e603 ! 146: WRCCR_I wr %r7, 0x0603, %ccr
.word 0x99410000 ! 147: RDTICK rd %tick, %r12
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_113-donret_10_113+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00958000 | (57 << 24)), %r13
wrhpr %g0, 0x1a7c, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (10)
.word 0xe6ffe162 ! 148: SWAPA_I swapa %r19, [%r31 + 0x0162] %asi
setx 0x0000000000380000, %r11, %r12
.word 0x8b90000c ! 149: WRPR_TBA_R wrpr %r0, %r12, %tba
setx 0x0000000000280000, %r11, %r12
.word 0x8b98000c ! 150: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
setx fp_data_quads, %r19, %r20
.word 0x87a80a44 ! 151: FCMPd fcmpd %fcc<n>, %f0, %f4
taddcctv %r12, 0x1e60, %r19
.word 0xe607e1d8 ! 152: LDUW_I lduw [%r31 + 0x01d8], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_118)+56, 16, 16)) -> intp(mask2tid(0x10),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_118)&0xffffffff) + 32, 16, 16)) -> intp(mask2tid(0x10),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9826130 ! 153: WR_SET_SOFTINT_I wr %r9, 0x0130, %set_softint
.word 0x89800011 ! 154: WRTICK_R wr %r0, %r17, %tick
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r1, [%r0+0x3c8] %asi
.word 0x9d904014 ! 155: WRPR_WSTATE_R wrpr %r1, %r20, %wstate
.word 0xe737c000 ! 156: STQF_R - %f19, [%r0, %r31]
.word 0x87802004 ! 157: WRASI_I wr %r0, 0x0004, %asi
.word 0x9a6d3120 ! 158: UDIVX_I udivx %r20, 0xfffff120, %r13
.word 0xb3800011 ! 159: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_10_122-donret_10_122), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x0019f400 | (20 << 24)), %r13
wrhpr %g0, 0x1e0f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (10)
.word 0xa1a409d3 ! 160: FDIVd fdivd %f16, %f50, %f16
setx 0xffffffbfffffffa0, %g1, %g7
.word 0xa3800007 ! 161: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8b90000c ! 162: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r18, [%r0+0x3c8] %asi
.word 0x9d928011 ! 163: WRPR_WSTATE_R wrpr %r10, %r17, %wstate
.word 0xa1902002 ! 164: WRPR_GL_I wrpr %r0, 0x0002, %-
mov 0x0, %r1 ! (VA for ASI 0x5b)
.word 0xda904b60 ! 165: LDUHA_R lduha [%r1, %r0] 0x5b, %r13
.word 0x8d802000 ! 166: WRFPRS_I wr %r0, 0x0000, %fprs
setx 0x0000000000380000, %r11, %r12
.word 0x8b90000c ! 167: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x83d0001e ! 168: Tcc_R te icc_or_xcc, %r0 + %r30
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xdbe7e00a ! 169: CASA_R casa [%r31] %asi, %r10, %r13
.word 0xdb1fe1b0 ! 1: LDDF_I ldd [%r31, 0x01b0], %f13
.word 0x9f803221 ! 170: SIR sir 0x1221
.word 0x8d903819 ! 171: WRPR_PSTATE_I wrpr %r0, 0x1819, %pstate
.word 0xe1bfdb60 ! 172: STDFA_R stda %f16, [%r0, %r31]
.word 0xa26cb9f2 ! 173: UDIVX_I udivx %r18, 0xfffff9f2, %r17
.word 0x97684005 ! 174: SDIVX_R sdivx %r1, %r5, %r11
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe1e7e013 ! 175: CASA_R casa [%r31] %asi, %r19, %r16
.word 0xa784ed23 ! 176: WR_GRAPHICS_STATUS_REG_I wr %r19, 0x0d23, %-
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100b0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa1414000 ! 177: RDPC rd %pc, %r16
setx fp_data_quads, %r19, %r20
.word 0xc3e83d17 ! 178: PREFETCHA_I prefetcha [%r0, + 0xfffffd17] %asi, #one_read
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 179: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0x87802039 ! 180: WRASI_I wr %r0, 0x0039, %asi
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_135)+8, 16, 16)) -> intp(mask2tid(0x10),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_135)&0xffffffff) + 32, 16, 16)) -> intp(mask2tid(0x10),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9846f8a ! 181: WR_SET_SOFTINT_I wr %r17, 0x0f8a, %set_softint
mov 0x110, %r1 ! (VA for ASI 0x4a)
.word 0xdac84940 ! 182: LDSBA_R ldsba [%r1, %r0] 0x4a, %r13
setx 0xa45e1a1ec7fe11e3, %r1, %r28
.word 0x25400001 ! 183: FBPLG fblg,a,pn %fcc0, <label_0x1>
tsubcctv %r18, 0x1205, %r5
.word 0xda07e115 ! 184: LDUW_I lduw [%r31 + 0x0115], %r13
.word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8198340d ! 185: WRHPR_HPSTATE_I wrhpr %r0, 0x140d, %hpstate
.word 0xda77c000 ! 186: STX_R stx %r13, [%r31 + %r0]
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xdb37e1f0 ! 1: STQF_I - %f13, [0x01f0, %r31]
.word 0x8d903f4f ! 187: WRPR_PSTATE_I wrpr %r0, 0x1f4f, %pstate
.word 0x91d0001e ! 188: Tcc_R ta icc_or_xcc, %r0 + %r30
.word 0x87ac8a4a ! 189: FCMPd fcmpd %fcc<n>, %f18, %f10
tsubcctv %r2, 0x19b4, %r20
.word 0xd807e09d ! 190: LDUW_I lduw [%r31 + 0x009d], %r12
.word 0x8780208a ! 191: WRASI_I wr %r0, 0x008a, %asi
setx 0xe30d08e64350c328, %r1, %r28
.word 0x25400001 ! 192: FBPLG fblg,a,pn %fcc0, <label_0x1>
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_144) + 40, 16, 16)) -> intp(7,0,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_144)&0xffffffff) + 40, 16, 16)) -> intp(2,0,5,,,,,1)
.word 0x39400001 ! 193: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x87802088 ! 194: WRASI_I wr %r0, 0x0088, %asi
.word 0x89800011 ! 195: WRTICK_R wr %r0, %r17, %tick
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe1bfe180 ! 196: STDFA_I stda %f16, [0x0180, %r31]
setx 0x0000000000380000, %r11, %r12
.word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0xa6c124c5 ! 198: ADDCcc_I addccc %r4, 0x04c5, %r19
setx 0xffffffb6ffffffa8, %g1, %g7
.word 0xa3800007 ! 199: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0xe19fdc00 ! 200: LDDFA_R ldda [%r31, %r0], %f16
setx join_lbl_0_0, %g1, %g2
setx vahole_target2, %r18, %r27
.word 0xe1bfda00 ! 1: STDFA_R stda %f16, [%r0, %r31]
.word 0xaf800011 ! 2: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r17, [%r0+0x3c8] %asi
.word 0x9d918011 ! 3: WRPR_WSTATE_R wrpr %r6, %r17, %wstate
.word 0xe19fe0a0 ! 4: LDDFA_I ldda [%r31, 0x00a0], %f16
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610000, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa5414000 ! 5: RDPC rd %pc, %r18
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_5-donret_8_5), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x0094f200 | (0x8a << 24)), %r13
wrhpr %g0, 0x709, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (8)
.word 0x819825dd ! 6: WRHPR_HPSTATE_I wrhpr %r0, 0x05dd, %hpstate
.word 0xe937e0f8 ! 7: STQF_I - %f20, [0x00f8, %r31]
best_set_reg(0xe0a00000, %r20, %r27)
.word 0xb7c6c000 ! 8: JMPL_R jmpl %r27 + %r0, %r27
.word 0x39400001 ! 9: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x9f803883 ! 10: SIR sir 0x1883
.word 0x8d802004 ! 11: WRFPRS_I wr %r0, 0x0004, %fprs
mov 0x10, %r1 ! (VA for ASI 0x48)
.word 0xe8d04900 ! 12: LDSHA_R ldsha [%r1, %r0] 0x48, %r20
.word 0xe81fe078 ! 13: LDD_I ldd [%r31 + 0x0078], %r20
.word 0x3c800001 ! 1: BPOS bpos,a <label_0x1>
.word 0x8d90273b ! 14: WRPR_PSTATE_I wrpr %r0, 0x073b, %pstate
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100e0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x97414000 ! 15: RDPC rd %pc, %r11
setx common_target, %r12, %r27
.word 0x9ba509c1 ! 1: FDIVd fdivd %f20, %f32, %f44
.word 0xc19fe060 ! 16: LDDFA_I ldda [%r31, 0x0060], %f0
best_set_reg(0xe0a00000, %r20, %r27)
.word 0xb7c6c000 ! 17: JMPL_R jmpl %r27 + %r0, %r27
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r2, [%r0+0x3d0] %asi
.word 0x9d94000c ! 18: WRPR_WSTATE_R wrpr %r16, %r12, %wstate
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r9, [%r0+0x3c8] %asi
.word 0x9d934013 ! 19: WRPR_WSTATE_R wrpr %r13, %r19, %wstate
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 20: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_16) + 8, 16, 16)) -> intp(0,0,27,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_16)&0xffffffff) + 40, 16, 16)) -> intp(5,0,9,,,,,1)
.word 0x39400001 ! 21: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x81dc000b ! 22: FLUSH_R flush %r16, %r11, %r0
.word 0x24800001 ! 1: BLE ble,a <label_0x1>
.word 0x8d902f93 ! 23: WRPR_PSTATE_I wrpr %r0, 0x0f93, %pstate
.word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
ta T_CHANGE_NONHPRIV ! macro
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r2, [%r0+0x3d0] %asi
.word 0x9d92c00c ! 25: WRPR_WSTATE_R wrpr %r11, %r12, %wstate
.word 0x81510000 ! 26: RDPR_TICK rdpr %tick, %r0
.word 0x879aed89 ! 27: WRHPR_HINTP_I wrhpr %r11, 0x0d89, %hintp
setx fp_data_quads, %r19, %r20
.word 0x8db00484 ! 28: FCMPLE32 fcmple32 %d0, %d4, %r6
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r12, [%r0+0x3c0] %asi
.word 0x9d904009 ! 29: WRPR_WSTATE_R wrpr %r1, %r9, %wstate
.word 0x81982f54 ! 30: WRHPR_HPSTATE_I wrhpr %r0, 0x0f54, %hpstate
setx 0x00000000003a0000, %r11, %r12
.word 0x8b90000c ! 31: WRPR_TBA_R wrpr %r0, %r12, %tba
mov 0x110, %r1 ! (VA for ASI 0x4a)
.word 0xe8c84940 ! 32: LDSBA_R ldsba [%r1, %r0] 0x4a, %r20
.word 0x39400001 ! 33: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e014 ! 34: CASA_R casa [%r31] %asi, %r20, %r20
.word 0xe89fe100 ! 35: LDDA_I ldda [%r31, + 0x0100] %asi, %r20
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e008 ! 36: CASA_R casa [%r31] %asi, %r8, %r20
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_28-donret_8_28), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x002b1b00 | (57 << 24)), %r13
wrhpr %g0, 0x10d5, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (8)
.word 0x3d400001 ! 37: FBPULE fbule,a,pn %fcc0, <label_0x1>
setx common_target, %r12, %r27
.word 0xa1a00552 ! 1: FSQRTd fsqrt
.word 0xe1bfe160 ! 38: STDFA_I stda %f16, [0x0160, %r31]
.word 0x9192c010 ! 39: WRPR_PIL_R wrpr %r11, %r16, %pil
.word 0xd877e13a ! 40: STX_I stx %r12, [%r31 + 0x013a]
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100b0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x97414000 ! 41: RDPC rd %pc, %r11
.word 0xe6dfc033 ! 42: LDXA_R ldxa [%r31, %r19] 0x01, %r19
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe7e7e014 ! 43: CASA_R casa [%r31] %asi, %r20, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_34-donret_8_34+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x0088e400 | (0x58 << 24)), %r13
wrhpr %g0, 0xf3f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (8)
.word 0xe66fe1a8 ! 44: LDSTUB_I ldstub %r19, [%r31 + 0x01a8]
.word 0x2d400001 ! 1: FBPG fbg,a,pn %fcc0, <label_0x1>
.word 0xe65fc000 ! 45: LDX_R ldx [%r31 + %r0], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_35)+56, 16, 16)) -> intp(mask2tid(0x8),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_35)&0xffffffff) + 16, 16, 16)) -> intp(mask2tid(0x8),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9842b60 ! 46: WR_SET_SOFTINT_I wr %r16, 0x0b60, %set_softint
.word 0xe69fe120 ! 47: LDDA_I ldda [%r31, + 0x0120] %asi, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_37-donret_8_37+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r12, %r10, %r12 ! low VA tpc
set (0x00c37600 | (20 << 24)), %r13
wrhpr %g0, 0x8dd, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (8)
.word 0x8d903a8e ! 48: WRPR_PSTATE_I wrpr %r0, 0x1a8e, %pstate
.word 0x89800011 ! 49: WRTICK_R wr %r0, %r17, %tick
.word 0xc1bfe1c0 ! 50: STDFA_I stda %f0, [0x01c0, %r31]
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 51: FBPULE fbule,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
done_change_to_randtl_8_41:
.word 0x8f902000 ! 52: WRPR_TL_I wrpr %r0, 0x0000, %tl
.word 0xc1bfc3e0 ! 53: STDFA_R stda %f0, [%r0, %r31]
.word 0x89800011 ! 54: WRTICK_R wr %r0, %r17, %tick
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_43-donret_8_43+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00eaa800 | (0x58 << 24)), %r13
wrhpr %g0, 0x35f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (8)
.word 0x26c90001 ! 1: BRLZ brlz,a,pt %r4,<label_0x90001>
.word 0x81982421 ! 55: WRHPR_HPSTATE_I wrhpr %r0, 0x0421, %hpstate
.word 0xe64fc000 ! 56: LDSB_R ldsb [%r31 + %r0], %r19
.word 0xe71fe080 ! 57: LDDF_I ldd [%r31, 0x0080], %f19
.word 0x87802083 ! 58: WRASI_I wr %r0, 0x0083, %asi
.word 0x89800011 ! 59: WRTICK_R wr %r0, %r17, %tick
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610050, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x91414000 ! 60: RDPC rd %pc, %r8
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r17, [%r0+0x3d8] %asi
.word 0x9d940007 ! 61: WRPR_WSTATE_R wrpr %r16, %r7, %wstate
.word 0x83d02035 ! 62: Tcc_I te icc_or_xcc, %r0 + 53
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 63: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xc19fde00 ! 64: LDDFA_R ldda [%r31, %r0], %f0
.word 0x8198278d ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x078d, %hpstate
.word 0x8d902fd5 ! 66: WRPR_PSTATE_I wrpr %r0, 0x0fd5, %pstate
.word 0x39400001 ! 67: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x87a8ca51 ! 68: FCMPd fcmpd %fcc<n>, %f34, %f48
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_53-donret_8_53+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00b7a500 | (54 << 24)), %r13
wrhpr %g0, 0x747, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (8)
.word 0x2b400001 ! 69: FBPUG fbug,a,pn %fcc0, <label_0x1>
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0xa9b407c8 ! 70: PDIST pdistn %d16, %d8, %d20
.word 0xa1a00161 ! 71: FABSq dis not found
.word 0xe19fda00 ! 72: LDDFA_R ldda [%r31, %r0], %f16
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_56-donret_8_56), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00cd6f00 | (0x88 << 24)), %r13
wrhpr %g0, 0x1cc7, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (8)
.word 0xe4ffe060 ! 73: SWAPA_I swapa %r18, [%r31 + 0x0060] %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c010 ! 1: STQF_R - %f18, [%r16, %r31]
.word 0xe4bfc032 ! 74: STDA_R stda %r18, [%r31 + %r18] 0x01
.word 0x91924005 ! 75: WRPR_PIL_R wrpr %r9, %r5, %pil
.word 0xaf800011 ! 76: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 77: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802014 ! 78: WRASI_I wr %r0, 0x0014, %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c014 ! 1: STQF_R - %f18, [%r20, %r31]
.word 0xe4dfc029 ! 79: LDXA_R ldxa [%r31, %r9] 0x01, %r18
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r16, [%r0+0x3e0] %asi
.word 0x9d94c011 ! 80: WRPR_WSTATE_R wrpr %r19, %r17, %wstate
stxa %r14, [%r0] ASI_LSU_CONTROL
.word 0xe45fc000 ! 81: LDX_R ldx [%r31 + %r0], %r18
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0x93b347ca ! 82: PDIST pdistn %d44, %d10, %d40
fbuge,a,pn %fcc0, skip_8_63
stxa %r13, [%r0] ASI_LSU_CONTROL
.word 0xc36ceddb ! 1: PREFETCH_I prefetch [%r19 + 0x0ddb], #one_read
stxa %r11, [%r0] ASI_LSU_CONTROL
.word 0xd3e7c020 ! 83: CASA_I casa [%r31] 0x 1, %r0, %r9
.word 0x93a00166 ! 84: FABSq dis not found
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610010, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x95414000 ! 85: RDPC rd %pc, %r10
.word 0xa7450000 ! 86: RD_SET_SOFTINT rd %set_softint, %r19
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0x93b7c7cc ! 1: PDIST pdistn %d62, %d12, %d40
.word 0xa1703688 ! 87: POPC_I popc 0x1688, %r16
setx 0xffffffb4ffffffa1, %g1, %g7
.word 0xa3800007 ! 88: WR_PERF_COUNTER_R wr %r0, %r7, %-
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_68)+24, 16, 16)) -> intp(mask2tid(0x8),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_68)&0xffffffff) + 56, 16, 16)) -> intp(mask2tid(0x8),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9807534 ! 89: WR_SET_SOFTINT_I wr %r1, 0x1534, %set_softint
.word 0x39400001 ! 90: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx fp_data_quads, %r19, %r20
.word 0x89b00484 ! 91: FCMPLE32 fcmple32 %d0, %d4, %r4
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r6, [%r0+0x3d8] %asi
.word 0x9d92c013 ! 92: WRPR_WSTATE_R wrpr %r11, %r19, %wstate
.word 0x8d903991 ! 93: WRPR_PSTATE_I wrpr %r0, 0x1991, %pstate
.word 0x8d802004 ! 94: WRFPRS_I wr %r0, 0x0004, %fprs
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xd1e7e009 ! 95: CASA_R casa [%r31] %asi, %r9, %r8
.word 0xa5a349c2 ! 96: FDIVd fdivd %f44, %f2, %f18
.word 0xa3a249d2 ! 97: FDIVd fdivd %f40, %f18, %f48
mov 0x20, %r1 ! (VA for ASI 0x5a)
.word 0xd8c84b40 ! 98: LDSBA_R ldsba [%r1, %r0] 0x5a, %r12
.word 0x81460000 ! 99: RD_STICK_REG stbar
best_set_reg(0xe1a00000, %r20, %r27)
.word 0xb7c6c000 ! 100: JMPL_R jmpl %r27 + %r0, %r27
setx 0xffffffbfffffffa8, %g1, %g7
.word 0xa3800007 ! 101: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8584776b ! 102: WRCCR_I wr %r17, 0x176b, %ccr
.word 0xd8cfe128 ! 103: LDSBA_I ldsba [%r31, + 0x0128] %asi, %r12
done_change_to_randtl_8_80:
.word 0x8f902000 ! 104: WRPR_TL_I wrpr %r0, 0x0000, %tl
setx 0xffffffbaffffffa4, %g1, %g7
.word 0xa3800007 ! 105: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x35400001 ! 1: FBPUE fbue,a,pn %fcc0, <label_0x1>
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 106: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xd8cfe0a0 ! 107: LDSBA_I ldsba [%r31, + 0x00a0] %asi, %r12
.word 0x9f803dca ! 108: SIR sir 0x1dca
.word 0xd8dfe190 ! 109: LDXA_I ldxa [%r31, + 0x0190] %asi, %r12
.word 0x87802016 ! 110: WRASI_I wr %r0, 0x0016, %asi
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r20, [%r0+0x3d0] %asi
.word 0x9d948013 ! 111: WRPR_WSTATE_R wrpr %r18, %r19, %wstate
.word 0x81460000 ! 112: RD_STICK_REG stbar
setx vahole_target1, %r18, %r27
.word 0xa1b507d2 ! 113: PDIST pdistn %d20, %d18, %d16
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100c0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 114: RDPC rd %pc, %r20
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_86) + 16, 16, 16)) -> intp(2,0,15,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_86)&0xffffffff) + 48, 16, 16)) -> intp(5,0,19,,,,,1)
.word 0x39400001 ! 115: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx 0xffffffbcffffffad, %g1, %g7
.word 0xa3800007 ! 116: WR_PERF_COUNTER_R wr %r0, %r7, %-
mov 0x10, %r1 ! (VA for ASI 0x49)
.word 0xd8884920 ! 117: LDUBA_R lduba [%r1, %r0] 0x49, %r12
.word 0xa7450000 ! 118: RD_SET_SOFTINT rd %set_softint, %r19
setx fp_data_quads, %r19, %r20
.word 0x89a009a4 ! 119: FDIVs fdivs %f0, %f4, %f4
.word 0x9f8026dc ! 120: SIR sir 0x06dc
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_90-donret_8_90+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x0093a300 | (20 << 24)), %r13
wrhpr %g0, 0x1647, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (8)
.word 0xe66fe026 ! 121: LDSTUB_I ldstub %r19, [%r31 + 0x0026]
.word 0x9f8036d6 ! 122: SIR sir 0x16d6
setx 0x00000000002a0000, %r11, %r12
.word 0x8b98000c ! 123: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100f0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa3414000 ! 124: RDPC rd %pc, %r17
.word 0x39400001 ! 125: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8d802004 ! 126: WRFPRS_I wr %r0, 0x0004, %fprs
.word 0xc3e90032 ! 127: PREFETCHA_R prefetcha [%r4, %r18] 0x01, #one_read
.word 0xa9b0c7cb ! 128: PDIST pdistn %d34, %d42, %d20
fblg,a,pn %fcc0, skip_8_96
brlez,a,pt %r4, skip_8_96
.word 0x87ac8a53 ! 129: FCMPd fcmpd %fcc<n>, %f18, %f50
.word 0xe88008a0 ! 130: LDUWA_R lduwa [%r0, %r0] 0x45, %r20
setx 0x253b0c7acd5feda8, %r1, %r28
.word 0x25400001 ! 131: FBPLG fblg,a,pn %fcc0, <label_0x1>
.word 0x81983787 ! 132: WRHPR_HPSTATE_I wrhpr %r0, 0x1787, %hpstate
mov 0x0, %r1 ! (VA for ASI 0x72)
.word 0xe8c84e40 ! 133: LDSBA_R ldsba [%r1, %r0] 0x72, %r20
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_100)+8, 16, 16)) -> intp(mask2tid(0x8),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_100)&0xffffffff) + 32, 16, 16)) -> intp(mask2tid(0x8),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9826a11 ! 134: WR_SET_SOFTINT_I wr %r9, 0x0a11, %set_softint
setx 0x8a8b0839830a1c10, %r1, %r28
.word 0x25400001 ! 135: FBPLG fblg,a,pn %fcc0, <label_0x1>
setx 0x7ba4886c73c8be71, %r1, %r28
.word 0x25400001 ! 136: FBPLG fblg,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_103-donret_8_103), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00aa7100 | (54 << 24)), %r13
wrhpr %g0, 0x1c11, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (8)
.word 0xe86fe0eb ! 137: LDSTUB_I ldstub %r20, [%r31 + 0x00eb]
.word 0xc1bfe080 ! 138: STDFA_I stda %f0, [0x0080, %r31]
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e00c ! 139: CASA_R casa [%r31] %asi, %r12, %r20
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 140: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0xe83fe0c0 ! 141: STD_I std %r20, [%r31 + 0x00c0]
.word 0x93d020b4 ! 142: Tcc_I tne icc_or_xcc, %r0 + 180
.word 0x81983e67 ! 143: WRHPR_HPSTATE_I wrhpr %r0, 0x1e67, %hpstate
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0x97702c2d ! 144: POPC_I popc 0x0c2d, %r11
.word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8d903b83 ! 145: WRPR_PSTATE_I wrpr %r0, 0x1b83, %pstate
set user_data_start, %r31
.word 0x8582f8ee ! 146: WRCCR_I wr %r11, 0x18ee, %ccr
.word 0xa1410000 ! 147: RDTICK rd %tick, %r16
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_113-donret_8_113+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00cdb300 | (0x80 << 24)), %r13
wrhpr %g0, 0x1b52, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (8)
.word 0xe6ffe029 ! 148: SWAPA_I swapa %r19, [%r31 + 0x0029] %asi
setx 0x00000000003a0000, %r11, %r12
.word 0x8b90000c ! 149: WRPR_TBA_R wrpr %r0, %r12, %tba
setx 0x00000000002a0000, %r11, %r12
.word 0x8b98000c ! 150: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
setx fp_data_quads, %r19, %r20
.word 0x8da009c4 ! 151: FDIVd fdivd %f0, %f4, %f6
taddcctv %r19, 0x15f3, %r17
.word 0xe607e136 ! 152: LDUW_I lduw [%r31 + 0x0136], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_118)+48, 16, 16)) -> intp(mask2tid(0x8),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_118)&0xffffffff) + 48, 16, 16)) -> intp(mask2tid(0x8),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa98220db ! 153: WR_SET_SOFTINT_I wr %r8, 0x00db, %set_softint
.word 0x89800011 ! 154: WRTICK_R wr %r0, %r17, %tick
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r1, [%r0+0x3d8] %asi
.word 0x9d944012 ! 155: WRPR_WSTATE_R wrpr %r17, %r18, %wstate
.word 0xe737c000 ! 156: STQF_R - %f19, [%r0, %r31]
.word 0x8780204f ! 157: WRASI_I wr %r0, 0x004f, %asi
.word 0xa06ab5b8 ! 158: UDIVX_I udivx %r10, 0xfffff5b8, %r16
.word 0xb3800011 ! 159: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_8_122-donret_8_122), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00224600 | (0x82 << 24)), %r13
wrhpr %g0, 0x1ddf, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (8)
.word 0xa5a409d4 ! 160: FDIVd fdivd %f16, %f20, %f18
setx 0xffffffbeffffffa8, %g1, %g7
.word 0xa3800007 ! 161: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8b90000c ! 162: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r12, [%r0+0x3d8] %asi
.word 0x9d910013 ! 163: WRPR_WSTATE_R wrpr %r4, %r19, %wstate
.word 0xa190200b ! 164: WRPR_GL_I wrpr %r0, 0x000b, %-
mov 0x8, %r1 ! (VA for ASI 0x5b)
.word 0xdad04b60 ! 165: LDSHA_R ldsha [%r1, %r0] 0x5b, %r13
.word 0x8d802004 ! 166: WRFPRS_I wr %r0, 0x0004, %fprs
setx 0x00000000003a0000, %r11, %r12
.word 0x8b90000c ! 167: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x91d0001e ! 168: Tcc_R ta icc_or_xcc, %r0 + %r30
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xdbe7e014 ! 169: CASA_R casa [%r31] %asi, %r20, %r13
.word 0x9f8022e9 ! 170: SIR sir 0x02e9
.word 0x8d9022c5 ! 171: WRPR_PSTATE_I wrpr %r0, 0x02c5, %pstate
.word 0xe1bfe100 ! 172: STDFA_I stda %f16, [0x0100, %r31]
.word 0x926c74d4 ! 173: UDIVX_I udivx %r17, 0xfffff4d4, %r9
.word 0x956cc006 ! 174: SDIVX_R sdivx %r19, %r6, %r10
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe11fc014 ! 175: LDDF_R ldd [%r31, %r20], %f16
.word 0xa782e921 ! 176: WR_GRAPHICS_STATUS_REG_I wr %r11, 0x0921, %-
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610060, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa5414000 ! 177: RDPC rd %pc, %r18
setx fp_data_quads, %r19, %r20
.word 0xc3e83d17 ! 178: PREFETCHA_I prefetcha [%r0, + 0xfffffd17] %asi, #one_read
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 179: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0x87802020 ! 180: WRASI_I wr %r0, 0x0020, %asi
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_135)+40, 16, 16)) -> intp(mask2tid(0x8),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_135)&0xffffffff) + 32, 16, 16)) -> intp(mask2tid(0x8),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984fb8e ! 181: WR_SET_SOFTINT_I wr %r19, 0x1b8e, %set_softint
mov 0x110, %r1 ! (VA for ASI 0x4a)
.word 0xdac04940 ! 182: LDSWA_R ldswa [%r1, %r0] 0x4a, %r13
setx 0x80bbca91f87df313, %r1, %r28
.word 0x25400001 ! 183: FBPLG fblg,a,pn %fcc0, <label_0x1>
tsubcctv %r19, 0x1c97, %r16
.word 0xda07e15d ! 184: LDUW_I lduw [%r31 + 0x015d], %r13
.word 0x22cc0001 ! 1: BRZ brz,a,pt %r16,<label_0xc0001>
.word 0x819828df ! 185: WRHPR_HPSTATE_I wrhpr %r0, 0x08df, %hpstate
.word 0xda77c000 ! 186: STX_R stx %r13, [%r31 + %r0]
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xdb37e0a0 ! 1: STQF_I - %f13, [0x00a0, %r31]
.word 0x81983a9d ! 187: WRHPR_HPSTATE_I wrhpr %r0, 0x1a9d, %hpstate
.word 0x93d0001e ! 188: Tcc_R tne icc_or_xcc, %r0 + %r30
.word 0xa97024ad ! 189: POPC_I popc 0x04ad, %r20
tsubcctv %r0, 0x1393, %r4
.word 0xd807e0e4 ! 190: LDUW_I lduw [%r31 + 0x00e4], %r12
.word 0x8780204f ! 191: WRASI_I wr %r0, 0x004f, %asi
setx 0x82de610cf4b33840, %r1, %r28
.word 0x25400001 ! 192: FBPLG fblg,a,pn %fcc0, <label_0x1>
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_144) + 16, 16, 16)) -> intp(1,0,17,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_144)&0xffffffff) + 48, 16, 16)) -> intp(3,0,16,,,,,1)
.word 0x39400001 ! 193: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8780204f ! 194: WRASI_I wr %r0, 0x004f, %asi
.word 0x89800011 ! 195: WRTICK_R wr %r0, %r17, %tick
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xc1bfe0e0 ! 196: STDFA_I stda %f0, [0x00e0, %r31]
setx 0x00000000003a0000, %r11, %r12
.word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0xa4c42176 ! 198: ADDCcc_I addccc %r16, 0x0176, %r18
setx 0xffffffb6ffffffad, %g1, %g7
.word 0xa3800007 ! 199: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0xe1bfe180 ! 200: STDFA_I stda %f16, [0x0180, %r31]
setx join_lbl_0_0, %g1, %g2
setx 0xabb38513bafe24bf, %r1, %r17
setx 0xc43a940b74a22bf6, %r1, %r28
!# allocate control word queue (e.g., setup head/tail/first/last registers)
sllx %o2, 5, %o2 !(CID*256)
!# write base addr to first, head, and tail ptr
stxa %l6, [%g0 + ASI_SPU_CWQ_FIRST] %asi !# first store to first
stxa %l6, [%g0 + ASI_SPU_CWQ_HEAD] %asi !# then to head
stxa %l6, [%g0 + ASI_SPU_CWQ_TAIL] %asi !# then to tail
setx CWQ_LAST, %g1, %l5 !# then end of CWQ region to LAST
stxa %l5, [%g0 + ASI_SPU_CWQ_LAST] %asi
!# set CWQ control word ([39:37] is strand ID ..)
best_set_reg(0x20610000, %l1, %l2) !# Control Word
!# write CWQ entry (%l6 points to CWQ)
stx %l2, [%l6 + 0x8] !# source address
stx %g0, [%l6 + 0x10] !# Authentication Key Address (40-bit)
stx %g0, [%l6 + 0x18] !# Authentication IV Address (40-bit)
stx %g0, [%l6 + 0x20] !# Authentication FSAS Address (40-bit)
stx %g0, [%l6 + 0x28] !# Encryption Key Address (40-bit)
stx %g0, [%l6 + 0x30] !# Encryption Initialization Vector Address (40-bit)
stx %o3, [%l6 + 0x38] !# Destination Address (40-bit)
ldxa [%g0 + ASI_SPU_CWQ_TAIL] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_TAIL] %asi
!# Kick off the CWQ operation by writing to the CWQ_CSR
!# Set the enabled bit and reset the other bits
stxa %g1, [%g0 + ASI_SPU_CWQ_CSR] %asi
set sync_thr_counter6, %r23
st %r0, [%r23] !unlock sync_thr_counter6
st %r0, [%r23] !unlock sync_thr_counter5
st %r0, [%r23] !unlock sync_thr_counter4
.word 0xc1bfe060 ! 1: STDFA_I stda %f0, [0x0060, %r31]
.word 0xaf800011 ! 2: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r19, [%r0+0x3c8] %asi
.word 0x9d950002 ! 3: WRPR_WSTATE_R wrpr %r20, %r2, %wstate
.word 0xc19fe120 ! 4: LDDFA_I ldda [%r31, 0x0120], %f0
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610000, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa1414000 ! 5: RDPC rd %pc, %r16
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_5-donret_4_5), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x008ca500 | (57 << 24)), %r13
wrhpr %g0, 0x1f5f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (4)
.word 0x8d903d8d ! 6: WRPR_PSTATE_I wrpr %r0, 0x1d8d, %pstate
.word 0xe937e01e ! 7: STQF_I - %f20, [0x001e, %r31]
best_set_reg(0xe1200000, %r20, %r27)
.word 0xb7c6c000 ! 8: JMPL_R jmpl %r27 + %r0, %r27
.word 0x39400001 ! 9: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0xa9b7c7d4 ! 1: PDIST pdistn %d62, %d20, %d20
.word 0x9f80394a ! 10: SIR sir 0x194a
.word 0x8d802000 ! 11: WRFPRS_I wr %r0, 0x0000, %fprs
mov 0x8, %r1 ! (VA for ASI 0x48)
.word 0xe8c84900 ! 12: LDSBA_R ldsba [%r1, %r0] 0x48, %r20
.word 0xe81fe168 ! 13: LDD_I ldd [%r31 + 0x0168], %r20
.word 0x28800001 ! 1: BLEU bleu,a <label_0x1>
.word 0x8d903807 ! 14: WRPR_PSTATE_I wrpr %r0, 0x1807, %pstate
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610060, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x99414000 ! 15: RDPC rd %pc, %r12
setx common_target, %r12, %r27
.word 0x81dfc009 ! 1: FLUSH_R flush %r31, %r9, %r0
.word 0xe1bfe020 ! 16: STDFA_I stda %f16, [0x0020, %r31]
best_set_reg(0xe1200000, %r20, %r27)
.word 0xb7c6c000 ! 17: JMPL_R jmpl %r27 + %r0, %r27
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r18, [%r0+0x3e8] %asi
.word 0x9d948011 ! 18: WRPR_WSTATE_R wrpr %r18, %r17, %wstate
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r8, [%r0+0x3e8] %asi
.word 0x9d930003 ! 19: WRPR_WSTATE_R wrpr %r12, %r3, %wstate
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 20: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_16) + 16, 16, 16)) -> intp(6,0,30,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_16)&0xffffffff) + 8, 16, 16)) -> intp(1,0,24,,,,,1)
.word 0x39400001 ! 21: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x81d8400b ! 22: FLUSH_R flush %r1, %r11, %r0
.word 0x24ca8001 ! 1: BRLEZ brlez,a,pt %r10,<label_0xa8001>
.word 0x8d902921 ! 23: WRPR_PSTATE_I wrpr %r0, 0x0921, %pstate
.word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
ta T_CHANGE_NONHPRIV ! macro
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r19, [%r0+0x3d0] %asi
.word 0x9d940011 ! 25: WRPR_WSTATE_R wrpr %r16, %r17, %wstate
.word 0x81510000 ! 26: RDPR_TICK rdpr %tick, %r0
.word 0x879a27bf ! 27: WRHPR_HINTP_I wrhpr %r8, 0x07bf, %hintp
setx fp_data_quads, %r19, %r20
.word 0x8db00484 ! 28: FCMPLE32 fcmple32 %d0, %d4, %r6
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r17, [%r0+0x3c8] %asi
.word 0x9d910008 ! 29: WRPR_WSTATE_R wrpr %r4, %r8, %wstate
.word 0x81982687 ! 30: WRHPR_HPSTATE_I wrhpr %r0, 0x0687, %hpstate
setx 0x0000000400380000, %r11, %r12
.word 0x8b90000c ! 31: WRPR_TBA_R wrpr %r0, %r12, %tba
mov 0x110, %r1 ! (VA for ASI 0x4a)
.word 0xe8c84940 ! 32: LDSBA_R ldsba [%r1, %r0] 0x4a, %r20
.word 0x39400001 ! 33: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e014 ! 34: CASA_R casa [%r31] %asi, %r20, %r20
.word 0xe89fe1a8 ! 35: LDDA_I ldda [%r31, + 0x01a8] %asi, %r20
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e013 ! 36: CASA_R casa [%r31] %asi, %r19, %r20
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_28-donret_4_28), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00500f00 | (16 << 24)), %r13
wrhpr %g0, 0xcd6, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (4)
.word 0x27400001 ! 37: FBPUL fbul,a,pn %fcc0, <label_0x1>
setx common_target, %r12, %r27
.word 0xa9a7c969 ! 1: FMULq dis not found
.word 0xc19fe180 ! 38: LDDFA_I ldda [%r31, 0x0180], %f0
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
sllx %r9, %r8, %r9 ! My core mask
xor %r9, 0x4, %r9 ! My core mask
cas [%r23],%g0,%r10 !lock
brz,a %r10, continue_cmp_4_30
ldxa [0x50]%asi, %r13 !Running_rw
brnz,a %r10, cmp_wait4_30
ldxa [0x58]%asi, %r14 !Running_status
xnor %r14, %r13, %r14 !Bits equal
brz,a %r8, cmp_multi_core_4_30
best_set_reg(0x3fdceff047d129fa, %r16, %r17)
and %r14, %r17, %r14 !Apply set/clear mask to bits equal
and %r14, %r9, %r14 !Apply core-mask
st %g0, [%r23] !clear lock
.word 0x91948007 ! 39: WRPR_PIL_R wrpr %r18, %r7, %pil
.word 0xd877e198 ! 40: STX_I stx %r12, [%r31 + 0x0198]
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610050, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x99414000 ! 41: RDPC rd %pc, %r12
.word 0xe69fe1f0 ! 42: LDDA_I ldda [%r31, + 0x01f0] %asi, %r19
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe7e7e00b ! 43: CASA_R casa [%r31] %asi, %r11, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_34-donret_4_34+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00d61500 | (0x82 << 24)), %r13
wrhpr %g0, 0x149f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (4)
.word 0xe66fe0b9 ! 44: LDSTUB_I ldstub %r19, [%r31 + 0x00b9]
.word 0x38800001 ! 1: BGU bgu,a <label_0x1>
.word 0xe65fc000 ! 45: LDX_R ldx [%r31 + %r0], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_35)+48, 16, 16)) -> intp(mask2tid(0x4),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_35)&0xffffffff) + 8, 16, 16)) -> intp(mask2tid(0x4),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa98326e9 ! 46: WR_SET_SOFTINT_I wr %r12, 0x06e9, %set_softint
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_4_36
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_4_36
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_4_36
ldxa [0x50]%asi, %r14 !Running_rw
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0xe697c02d ! 47: LDUHA_R lduha [%r31, %r13] 0x01, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_37-donret_4_37+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r12, %r10, %r12 ! low VA tpc
set (0x0004f900 | (0x89 << 24)), %r13
wrhpr %g0, 0x1007, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (4)
.word 0x8d902445 ! 48: WRPR_PSTATE_I wrpr %r0, 0x0445, %pstate
best_set_reg(0x9fed72b4cd9d631c, %r16, %r17)
.word 0x89800011 ! 49: WRTICK_R wr %r0, %r17, %tick
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_4_39
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_4_39
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_4_39
ldxa [0x50]%asi, %r14 !Running_rw
setx common_target, %r20, %r19
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0xc1bfe100 ! 50: STDFA_I stda %f0, [0x0100, %r31]
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 51: FBPULE fbule,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
done_change_to_randtl_4_41:
.word 0x8f902000 ! 52: WRPR_TL_I wrpr %r0, 0x0000, %tl
.word 0xe1bfdf20 ! 53: STDFA_R stda %f16, [%r0, %r31]
best_set_reg(0xd4ebe61593823e85, %r16, %r17)
.word 0x89800011 ! 54: WRTICK_R wr %r0, %r17, %tick
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_43-donret_4_43+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00692e00 | (32 << 24)), %r13
wrhpr %g0, 0x1f5d, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (4)
.word 0x3a800001 ! 1: BCC bcc,a <label_0x1>
.word 0x819836d5 ! 55: WRHPR_HPSTATE_I wrhpr %r0, 0x16d5, %hpstate
.word 0xe64fc000 ! 56: LDSB_R ldsb [%r31 + %r0], %r19
.word 0xe71fe0c0 ! 57: LDDF_I ldd [%r31, 0x00c0], %f19
.word 0x87802039 ! 58: WRASI_I wr %r0, 0x0039, %asi
best_set_reg(0xa885e9545cf09b02, %r16, %r17)
.word 0x89800011 ! 59: WRTICK_R wr %r0, %r17, %tick
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100e0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa5414000 ! 60: RDPC rd %pc, %r18
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r12, [%r0+0x3d0] %asi
.word 0x9d944005 ! 61: WRPR_WSTATE_R wrpr %r17, %r5, %wstate
.word 0x93d02035 ! 62: Tcc_I tne icc_or_xcc, %r0 + 53
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 63: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xc1bfdf20 ! 64: STDFA_R stda %f0, [%r0, %r31]
.word 0x819824c7 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x04c7, %hpstate
.word 0x8d903f47 ! 66: WRPR_PSTATE_I wrpr %r0, 0x1f47, %pstate
.word 0x39400001 ! 67: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_4_52
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_4_52
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_4_52
ldxa [0x50]%asi, %r14 !Running_rw
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0x9ba409d4 ! 68: FDIVd fdivd %f16, %f20, %f44
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_53-donret_4_53+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00a51300 | (0x89 << 24)), %r13
wrhpr %g0, 0xf0d, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (4)
.word 0x3d400001 ! 69: FBPULE fbule,a,pn %fcc0, <label_0x1>
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0x93b487c5 ! 70: PDIST pdistn %d18, %d36, %d40
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
sllx %r9, %r8, %r9 ! My core mask
xor %r9, 0x4, %r9 ! My core mask
cas [%r23],%g0,%r10 !lock
brz,a %r10, continue_cmp_4_54
ldxa [0x50]%asi, %r13 !Running_rw
brnz,a %r10, cmp_wait4_54
ldxa [0x58]%asi, %r14 !Running_status
xnor %r14, %r13, %r14 !Bits equal
brz,a %r8, cmp_multi_core_4_54
best_set_reg(0x6c959f8949390f22, %r16, %r17)
and %r14, %r17, %r14 !Apply set/clear mask to bits equal
and %r14, %r9, %r14 !Apply core-mask
st %g0, [%r23] !clear lock
.word 0xa3a0016a ! 71: FABSq dis not found
.word 0xc19fc2c0 ! 72: LDDFA_R ldda [%r31, %r0], %f0
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_56-donret_4_56), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x000b2800 | (0x8a << 24)), %r13
wrhpr %g0, 0x89d, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (4)
.word 0xe4ffe1d6 ! 73: SWAPA_I swapa %r18, [%r31 + 0x01d6] %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c009 ! 1: STQF_R - %f18, [%r9, %r31]
.word 0xe51fe1a0 ! 74: LDDF_I ldd [%r31, 0x01a0], %f18
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
sllx %r9, %r8, %r9 ! My core mask
xor %r9, 0x4, %r9 ! My core mask
cas [%r23],%g0,%r10 !lock
brz,a %r10, continue_cmp_4_58
ldxa [0x50]%asi, %r13 !Running_rw
brnz,a %r10, cmp_wait4_58
ldxa [0x58]%asi, %r14 !Running_status
xnor %r14, %r13, %r14 !Bits equal
brz,a %r8, cmp_multi_core_4_58
best_set_reg(0xa3b47c302883b518, %r16, %r17)
and %r14, %r17, %r14 !Apply set/clear mask to bits equal
and %r14, %r9, %r14 !Apply core-mask
st %g0, [%r23] !clear lock
.word 0x91940006 ! 75: WRPR_PIL_R wrpr %r16, %r6, %pil
.word 0xb3800011 ! 76: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 77: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x8780208b ! 78: WRASI_I wr %r0, 0x008b, %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c009 ! 1: STQF_R - %f18, [%r9, %r31]
.word 0xe51fe1c0 ! 79: LDDF_I ldd [%r31, 0x01c0], %f18
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r4, [%r0+0x3e0] %asi
.word 0x9d91c011 ! 80: WRPR_WSTATE_R wrpr %r7, %r17, %wstate
.word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31
.word 0xe45fc000 ! 81: LDX_R ldx [%r31 + %r0], %r18
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0xa3b147d0 ! 82: PDIST pdistn %d36, %d16, %d48
.word 0xd3e7c020 ! 83: CASA_I casa [%r31] 0x 1, %r0, %r9
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
sllx %r9, %r8, %r9 ! My core mask
xor %r9, 0x4, %r9 ! My core mask
cas [%r23],%g0,%r10 !lock
brz,a %r10, continue_cmp_4_64
ldxa [0x50]%asi, %r13 !Running_rw
brnz,a %r10, cmp_wait4_64
ldxa [0x58]%asi, %r14 !Running_status
xnor %r14, %r13, %r14 !Bits equal
brz,a %r8, cmp_multi_core_4_64
best_set_reg(0x0c57dc5baceaba1e, %r16, %r17)
and %r14, %r17, %r14 !Apply set/clear mask to bits equal
and %r14, %r9, %r14 !Apply core-mask
st %g0, [%r23] !clear lock
.word 0x91a0016a ! 84: FABSq dis not found
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100a0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 85: RDPC rd %pc, %r20
.word 0x99450000 ! 86: RD_SET_SOFTINT rd %set_softint, %r12
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0x93b7c7c8 ! 1: PDIST pdistn %d62, %d8, %d40
.word 0xa1702a80 ! 87: POPC_I popc 0x0a80, %r16
setx 0xffffffb0ffffffaa, %g1, %g7
.word 0xa3800007 ! 88: WR_PERF_COUNTER_R wr %r0, %r7, %-
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_68)+16, 16, 16)) -> intp(mask2tid(0x4),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_68)&0xffffffff) + 56, 16, 16)) -> intp(mask2tid(0x4),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa98271f4 ! 89: WR_SET_SOFTINT_I wr %r9, 0x11f4, %set_softint
.word 0x39400001 ! 90: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx fp_data_quads, %r19, %r20
.word 0xc3e823fe ! 91: PREFETCHA_I prefetcha [%r0, + 0x03fe] %asi, #one_read
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r16, [%r0+0x3d0] %asi
.word 0x9d948010 ! 92: WRPR_WSTATE_R wrpr %r18, %r16, %wstate
.word 0x8d903da3 ! 93: WRPR_PSTATE_I wrpr %r0, 0x1da3, %pstate
.word 0x8d802000 ! 94: WRFPRS_I wr %r0, 0x0000, %fprs
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xd1e7e011 ! 95: CASA_R casa [%r31] %asi, %r17, %r8
.word 0xa97022a3 ! 96: POPC_I popc 0x02a3, %r20
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_4_75
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_4_75
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_4_75
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000000e1200000, %r20, %r19)
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0xa9702e6c ! 97: POPC_I popc 0x0e6c, %r20
mov 0x8, %r1 ! (VA for ASI 0x5a)
.word 0xd8c04b40 ! 98: LDSWA_R ldswa [%r1, %r0] 0x5a, %r12
.word 0x81460000 ! 99: RD_STICK_REG stbar
best_set_reg(0xe0200000, %r20, %r27)
.word 0xb7c6c000 ! 100: JMPL_R jmpl %r27 + %r0, %r27
setx 0xffffffb2ffffffaa, %g1, %g7
.word 0xa3800007 ! 101: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x85823969 ! 102: WRCCR_I wr %r8, 0x1969, %ccr
.word 0xd8cfe058 ! 103: LDSBA_I ldsba [%r31, + 0x0058] %asi, %r12
done_change_to_randtl_4_80:
.word 0x8f902000 ! 104: WRPR_TL_I wrpr %r0, 0x0000, %tl
setx 0xffffffb5ffffffa1, %g1, %g7
.word 0xa3800007 ! 105: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x2eca0001 ! 1: BRGEZ brgez,a,pt %r8,<label_0xa0001>
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 106: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xd8cfe1d8 ! 107: LDSBA_I ldsba [%r31, + 0x01d8] %asi, %r12
.word 0xd9e7c031 ! 1: CASA_I casa [%r31] 0x 1, %r17, %r12
.word 0x9f803ce4 ! 108: SIR sir 0x1ce4
.word 0xd8dfe060 ! 109: LDXA_I ldxa [%r31, + 0x0060] %asi, %r12
.word 0x87802088 ! 110: WRASI_I wr %r0, 0x0088, %asi
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r19, [%r0+0x3c8] %asi
.word 0x9d950001 ! 111: WRPR_WSTATE_R wrpr %r20, %r1, %wstate
.word 0x81460000 ! 112: RD_STICK_REG stbar
.word 0xa3a489d3 ! 113: FDIVd fdivd %f18, %f50, %f48
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610040, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x91414000 ! 114: RDPC rd %pc, %r8
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_86) + 0, 16, 16)) -> intp(2,0,11,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_86)&0xffffffff) + 24, 16, 16)) -> intp(5,0,3,,,,,1)
.word 0x39400001 ! 115: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx 0xffffffb2ffffffa4, %g1, %g7
.word 0xa3800007 ! 116: WR_PERF_COUNTER_R wr %r0, %r7, %-
mov 0x10, %r1 ! (VA for ASI 0x49)
.word 0xd8904920 ! 117: LDUHA_R lduha [%r1, %r0] 0x49, %r12
.word 0x99450000 ! 118: RD_SET_SOFTINT rd %set_softint, %r12
setx fp_data_quads, %r19, %r20
.word 0x91a009a4 ! 119: FDIVs fdivs %f0, %f4, %f8
.word 0xe63fc008 ! 1: STD_R std %r19, [%r31 + %r8]
.word 0x9f803bc3 ! 120: SIR sir 0x1bc3
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_90-donret_4_90+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00cb4b00 | (0x8a << 24)), %r13
wrhpr %g0, 0x1f5f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (4)
.word 0xe66fe044 ! 121: LDSTUB_I ldstub %r19, [%r31 + 0x0044]
.word 0xe6bfc031 ! 1: STDA_R stda %r19, [%r31 + %r17] 0x01
.word 0x9f803c2a ! 122: SIR sir 0x1c2a
setx 0x0000000200280000, %r11, %r12
.word 0x8b98000c ! 123: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100f0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa3414000 ! 124: RDPC rd %pc, %r17
.word 0x39400001 ! 125: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8d802004 ! 126: WRFPRS_I wr %r0, 0x0004, %fprs
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_4_94
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_4_94
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_4_94
ldxa [0x50]%asi, %r14 !Running_rw
setx common_target, %r20, %r19
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0x93a089d4 ! 127: FDIVd fdivd %f2, %f20, %f40
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_4_95
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_4_95
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_4_95
ldxa [0x50]%asi, %r14 !Running_rw
setx common_target, %r20, %r19
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0xa1b187d2 ! 128: PDIST pdistn %d6, %d18, %d16
.word 0x39400001 ! 129: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0xe8800aa0 ! 130: LDUWA_R lduwa [%r0, %r0] 0x55, %r20
setx 0xcef9267a533d8af2, %r1, %r28
.word 0x25400001 ! 131: FBPLG fblg,a,pn %fcc0, <label_0x1>
.word 0x81983057 ! 132: WRHPR_HPSTATE_I wrhpr %r0, 0x1057, %hpstate
mov 0x0, %r1 ! (VA for ASI 0x72)
.word 0xe8c04e40 ! 133: LDSWA_R ldswa [%r1, %r0] 0x72, %r20
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_100)+16, 16, 16)) -> intp(mask2tid(0x4),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_100)&0xffffffff) + 0, 16, 16)) -> intp(mask2tid(0x4),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa98074a9 ! 134: WR_SET_SOFTINT_I wr %r1, 0x14a9, %set_softint
setx 0x0ba80e8e0983000a, %r1, %r28
.word 0x25400001 ! 135: FBPLG fblg,a,pn %fcc0, <label_0x1>
setx 0x271fb286bc7b7d8c, %r1, %r28
.word 0x25400001 ! 136: FBPLG fblg,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_103-donret_4_103), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x007dd700 | (0x80 << 24)), %r13
wrhpr %g0, 0xb64, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (4)
.word 0xe86fe190 ! 137: LDSTUB_I ldstub %r20, [%r31 + 0x0190]
.word 0xc1bfe180 ! 138: STDFA_I stda %f0, [0x0180, %r31]
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e011 ! 139: CASA_R casa [%r31] %asi, %r17, %r20
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 140: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_iaw_4_107
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_4_107
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_iaw_4_107
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000000e0200000, %r20, %r19)
stxa %r16, [0x60] %asi ! Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi ! restore %asi
.word 0xe93fc010 ! 141: STDF_R std %f20, [%r16, %r31]
.word 0x91d020b4 ! 142: Tcc_I ta icc_or_xcc, %r0 + 180
.word 0x8198210d ! 143: WRHPR_HPSTATE_I wrhpr %r0, 0x010d, %hpstate
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0x99a4c9d1 ! 144: FDIVd fdivd %f50, %f48, %f12
.word 0x32800001 ! 1: BNE bne,a <label_0x1>
.word 0x8d902109 ! 145: WRPR_PSTATE_I wrpr %r0, 0x0109, %pstate
set user_data_start, %r31
.word 0x85827ceb ! 146: WRCCR_I wr %r9, 0x1ceb, %ccr
.word 0xa5410000 ! 147: RDTICK rd %tick, %r18
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_113-donret_4_113+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00217100 | (0x83 << 24)), %r13
wrhpr %g0, 0x69c, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (4)
.word 0xe6ffe095 ! 148: SWAPA_I swapa %r19, [%r31 + 0x0095] %asi
setx 0x0000000400380000, %r11, %r12
.word 0x8b90000c ! 149: WRPR_TBA_R wrpr %r0, %r12, %tba
setx 0x0000000200280000, %r11, %r12
.word 0x8b98000c ! 150: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
setx fp_data_quads, %r19, %r20
.word 0x91a009c4 ! 151: FDIVd fdivd %f0, %f4, %f8
taddcctv %r12, 0x1875, %r18
.word 0xe607e02d ! 152: LDUW_I lduw [%r31 + 0x002d], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_118)+0, 16, 16)) -> intp(mask2tid(0x4),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_118)&0xffffffff) + 32, 16, 16)) -> intp(mask2tid(0x4),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9842223 ! 153: WR_SET_SOFTINT_I wr %r16, 0x0223, %set_softint
best_set_reg(0x858df4752dbd296e, %r16, %r17)
.word 0x89800011 ! 154: WRTICK_R wr %r0, %r17, %tick
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r19, [%r0+0x3c0] %asi
.word 0x9d92c010 ! 155: WRPR_WSTATE_R wrpr %r11, %r16, %wstate
.word 0xe737c000 ! 156: STQF_R - %f19, [%r0, %r31]
.word 0x8780204f ! 157: WRASI_I wr %r0, 0x004f, %asi
.word 0xa06cb4d2 ! 158: UDIVX_I udivx %r18, 0xfffff4d2, %r16
.word 0xb3800011 ! 159: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_4_122-donret_4_122), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x001c4c00 | (0x82 << 24)), %r13
wrhpr %g0, 0x1c05, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (4)
.word 0x9ba4c9c7 ! 160: FDIVd fdivd %f50, %f38, %f44
setx 0xffffffbdffffffae, %g1, %g7
.word 0xa3800007 ! 161: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8b90000c ! 162: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r8, [%r0+0x3e8] %asi
.word 0x9d94c013 ! 163: WRPR_WSTATE_R wrpr %r19, %r19, %wstate
.word 0xa190200e ! 164: WRPR_GL_I wrpr %r0, 0x000e, %-
mov 0x30, %r1 ! (VA for ASI 0x5b)
.word 0xdac04b60 ! 165: LDSWA_R ldswa [%r1, %r0] 0x5b, %r13
.word 0x8d802000 ! 166: WRFPRS_I wr %r0, 0x0000, %fprs
setx 0x0000000400380000, %r11, %r12
.word 0x8b90000c ! 167: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x83d0001e ! 168: Tcc_R te icc_or_xcc, %r0 + %r30
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xdbe7e00c ! 169: CASA_R casa [%r31] %asi, %r12, %r13
.word 0xda97c032 ! 1: LDUHA_R lduha [%r31, %r18] 0x01, %r13
.word 0x9f802a99 ! 170: SIR sir 0x0a99
.word 0x8d902eff ! 171: WRPR_PSTATE_I wrpr %r0, 0x0eff, %pstate
.word 0xe19fc3e0 ! 172: LDDFA_R ldda [%r31, %r0], %f16
.word 0x966a209c ! 173: UDIVX_I udivx %r8, 0x009c, %r11
.word 0xa36b0011 ! 174: SDIVX_R sdivx %r12, %r17, %r17
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xc32fc00c ! 175: STXFSR_R st-sfr %f1, [%r12, %r31]
.word 0xa784a181 ! 176: WR_GRAPHICS_STATUS_REG_I wr %r18, 0x0181, %-
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100a0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa3414000 ! 177: RDPC rd %pc, %r17
setx fp_data_quads, %r19, %r20
.word 0xc3e83d17 ! 178: PREFETCHA_I prefetcha [%r0, + 0xfffffd17] %asi, #one_read
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 179: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0x87802010 ! 180: WRASI_I wr %r0, 0x0010, %asi
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_135)+40, 16, 16)) -> intp(mask2tid(0x4),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_135)&0xffffffff) + 48, 16, 16)) -> intp(mask2tid(0x4),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa98321f4 ! 181: WR_SET_SOFTINT_I wr %r12, 0x01f4, %set_softint
mov 0x8, %r1 ! (VA for ASI 0x4a)
.word 0xdad84940 ! 182: LDXA_R ldxa [%r1, %r0] 0x4a, %r13
setx 0xf93f90a02f8226ef, %r1, %r28
.word 0x25400001 ! 183: FBPLG fblg,a,pn %fcc0, <label_0x1>
tsubcctv %r12, 0x1628, %r4
.word 0xda07e17c ! 184: LDUW_I lduw [%r31 + 0x017c], %r13
.word 0x38800001 ! 1: BGU bgu,a <label_0x1>
.word 0x8198220f ! 185: WRHPR_HPSTATE_I wrhpr %r0, 0x020f, %hpstate
.word 0xda77c000 ! 186: STX_R stx %r13, [%r31 + %r0]
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xdb37e100 ! 1: STQF_I - %f13, [0x0100, %r31]
.word 0x81983fcd ! 187: WRHPR_HPSTATE_I wrhpr %r0, 0x1fcd, %hpstate
.word 0x93d0001e ! 188: Tcc_R tne icc_or_xcc, %r0 + %r30
.word 0x87ac8a48 ! 189: FCMPd fcmpd %fcc<n>, %f18, %f8
tsubcctv %r19, 0x1890, %r4
.word 0xd807e10d ! 190: LDUW_I lduw [%r31 + 0x010d], %r12
.word 0x87802036 ! 191: WRASI_I wr %r0, 0x0036, %asi
setx 0x1e8b1ab5ee3cb020, %r1, %r28
.word 0x25400001 ! 192: FBPLG fblg,a,pn %fcc0, <label_0x1>
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_144) + 0, 16, 16)) -> intp(6,0,20,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_144)&0xffffffff) + 8, 16, 16)) -> intp(2,0,21,,,,,1)
.word 0x39400001 ! 193: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x87802082 ! 194: WRASI_I wr %r0, 0x0082, %asi
best_set_reg(0xc0801f37deafa8c2, %r16, %r17)
.word 0x89800011 ! 195: WRTICK_R wr %r0, %r17, %tick
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe1bfd920 ! 196: STDFA_R stda %f16, [%r0, %r31]
setx 0x0000000400380000, %r11, %r12
.word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0xa4c23124 ! 198: ADDCcc_I addccc %r8, 0xfffff124, %r18
setx 0xffffffb6ffffffa8, %g1, %g7
.word 0xa3800007 ! 199: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0xc19fe060 ! 200: LDDFA_I ldda [%r31, 0x0060], %f0
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
sllx %r9, %r8, %r9 ! My core mask
mov 0xff, %r9 ! My core mask
cas [%r23],%g0,%r10 !lock
brz,a %r10, continue_cmpenall_4_150
brnz %r10, cmpenall_wait4_150
ba,a cmpenall_startwait4_150
ldxa [0x58]%asi, %r14 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_cmpstat_4_150
ldxa [0x58]%asi, %r14 !Running_status
ldxa [0x10]%asi, %r14 !Get enabled threads
and %r14, %r9, %r14 !My core mask
stxa %r14, [0x60]%asi !W1S
ldxa [0x58]%asi, %r16 !Running_status
and %r16, %r9, %r16 !My core mask
bne,a %xcc, wait_for_cmpstat2_4_150
ldxa [0x58]%asi, %r16 !Running_status
st %g0, [%r23] !clear lock
wr %g0, ASI_SCRATCHPAD, %asi
set sync_thr_counter4, %r23
add %o2,%r9,%r23 !Core's sync counter
st %r10, [%r23] !lock sync_thr_counter4
st %r10, [%r23] !lock sync_thr_counter5
st %r10, [%r23] !lock sync_thr_counter6
setx join_lbl_0_0, %g1, %g2
setx vahole_target2, %r18, %r27
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_2_1
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_2_1
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_2_1
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000040c4c00be7,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xc19fe000 ! 1: LDDFA_I ldda [%r31, 0x0000], %f0
.word 0xaf800011 ! 2: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r10, [%r0+0x3d0] %asi
.word 0x9d940003 ! 3: WRPR_WSTATE_R wrpr %r16, %r3, %wstate
.word 0xe19fe120 ! 4: LDDFA_I ldda [%r31, 0x0120], %f16
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610060, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa1414000 ! 5: RDPC rd %pc, %r16
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_5-donret_2_5), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00ffc900 | (0x89 << 24)), %r13
wrhpr %g0, 0xd5f, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (2)
.word 0x81982852 ! 6: WRHPR_HPSTATE_I wrhpr %r0, 0x0852, %hpstate
.word 0xe937e118 ! 7: STQF_I - %f20, [0x0118, %r31]
best_set_reg(0xe1a00000, %r20, %r27)
.word 0xb7c6c000 ! 8: JMPL_R jmpl %r27 + %r0, %r27
.word 0x39400001 ! 9: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0xa97021b0 ! 1: POPC_I popc 0x01b0, %r20
.word 0x9f802601 ! 10: SIR sir 0x0601
.word 0x8d802004 ! 11: WRFPRS_I wr %r0, 0x0004, %fprs
mov 0x10, %r1 ! (VA for ASI 0x48)
.word 0xe8d84900 ! 12: LDXA_R ldxa [%r1, %r0] 0x48, %r20
.word 0xe81fe088 ! 13: LDD_I ldd [%r31 + 0x0088], %r20
.word 0x32800001 ! 1: BNE bne,a <label_0x1>
.word 0x8d902533 ! 14: WRPR_PSTATE_I wrpr %r0, 0x0533, %pstate
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610060, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x99414000 ! 15: RDPC rd %pc, %r12
setx common_target, %r12, %r27
.word 0xa9a209d2 ! 1: FDIVd fdivd %f8, %f18, %f20
.word 0xe1bfe140 ! 16: STDFA_I stda %f16, [0x0140, %r31]
best_set_reg(0xe1a00000, %r20, %r27)
.word 0xb7c6c000 ! 17: JMPL_R jmpl %r27 + %r0, %r27
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r17, [%r0+0x3d8] %asi
.word 0x9d944012 ! 18: WRPR_WSTATE_R wrpr %r17, %r18, %wstate
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r10, [%r0+0x3c8] %asi
.word 0x9d948011 ! 19: WRPR_WSTATE_R wrpr %r18, %r17, %wstate
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 20: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_16) + 40, 16, 16)) -> intp(1,0,2,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_16)&0xffffffff) + 48, 16, 16)) -> intp(4,0,0,,,,,1)
.word 0x39400001 ! 21: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x81dcc007 ! 22: FLUSH_R flush %r19, %r7, %r0
.word 0x2f400001 ! 1: FBPU fbu,a,pn %fcc0, <label_0x1>
.word 0x8d903001 ! 23: WRPR_PSTATE_I wrpr %r0, 0x1001, %pstate
.word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl
ta T_CHANGE_NONHPRIV ! macro
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r19, [%r0+0x3d8] %asi
.word 0x9d920014 ! 25: WRPR_WSTATE_R wrpr %r8, %r20, %wstate
.word 0x81510000 ! 26: RDPR_TICK rdpr %tick, %r0
.word 0x8799e0a9 ! 27: WRHPR_HINTP_I wrhpr %r7, 0x00a9, %hintp
setx fp_data_quads, %r19, %r20
.word 0x91b00484 ! 28: FCMPLE32 fcmple32 %d0, %d4, %r8
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r13, [%r0+0x3c8] %asi
.word 0x9d940013 ! 29: WRPR_WSTATE_R wrpr %r16, %r19, %wstate
.word 0x81983694 ! 30: WRHPR_HPSTATE_I wrhpr %r0, 0x1694, %hpstate
setx 0x00000004003a0000, %r11, %r12
.word 0x8b90000c ! 31: WRPR_TBA_R wrpr %r0, %r12, %tba
mov 0x110, %r1 ! (VA for ASI 0x4a)
.word 0xe8d84940 ! 32: LDXA_R ldxa [%r1, %r0] 0x4a, %r20
.word 0x39400001 ! 33: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e012 ! 34: CASA_R casa [%r31] %asi, %r18, %r20
.word 0xe89fe090 ! 35: LDDA_I ldda [%r31, + 0x0090] %asi, %r20
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e00b ! 36: CASA_R casa [%r31] %asi, %r11, %r20
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_28-donret_2_28), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00e06a00 | (16 << 24)), %r13
wrhpr %g0, 0x1515, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (2)
.word 0x3e800001 ! 37: BVC bvc,a <label_0x1>
setx common_target, %r12, %r27
.word 0x99a0054b ! 1: FSQRTd fsqrt
.word 0xe1bfe100 ! 38: STDFA_I stda %f16, [0x0100, %r31]
.word 0x91950013 ! 39: WRPR_PIL_R wrpr %r20, %r19, %pil
.word 0xd877e0ad ! 40: STX_I stx %r12, [%r31 + 0x00ad]
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610020, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 41: RDPC rd %pc, %r20
.word 0xe697c02d ! 42: LDUHA_R lduha [%r31, %r13] 0x01, %r19
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe7e7e011 ! 43: CASA_R casa [%r31] %asi, %r17, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_34-donret_2_34+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x000cb800 | (4 << 24)), %r13
wrhpr %g0, 0xf17, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (2)
.word 0xe66fe185 ! 44: LDSTUB_I ldstub %r19, [%r31 + 0x0185]
.word 0x2f400001 ! 1: FBPU fbu,a,pn %fcc0, <label_0x1>
.word 0xe65fc000 ! 45: LDX_R ldx [%r31 + %r0], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_35)+40, 16, 16)) -> intp(mask2tid(0x2),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_35)&0xffffffff) + 8, 16, 16)) -> intp(mask2tid(0x2),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9833238 ! 46: WR_SET_SOFTINT_I wr %r12, 0x1238, %set_softint
.word 0xe6dfc033 ! 47: LDXA_R ldxa [%r31, %r19] 0x01, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_37-donret_2_37+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r12, %r10, %r12 ! low VA tpc
set (0x00a25700 | (54 << 24)), %r13
wrhpr %g0, 0xcd1, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (2)
.word 0x819824dd ! 48: WRHPR_HPSTATE_I wrhpr %r0, 0x04dd, %hpstate
.word 0x89800011 ! 49: WRTICK_R wr %r0, %r17, %tick
.word 0xe1bfe0c0 ! 50: STDFA_I stda %f16, [0x00c0, %r31]
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 51: FBPULE fbule,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
done_change_to_randtl_2_41:
.word 0x8f902000 ! 52: WRPR_TL_I wrpr %r0, 0x0000, %tl
.word 0xc1bfc3e0 ! 53: STDFA_R stda %f0, [%r0, %r31]
.word 0x89800011 ! 54: WRTICK_R wr %r0, %r17, %tick
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_43-donret_2_43+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00e4ec00 | (0x83 << 24)), %r13
wrhpr %g0, 0x58d, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (2)
.word 0x32800001 ! 1: BNE bne,a <label_0x1>
.word 0x819834dd ! 55: WRHPR_HPSTATE_I wrhpr %r0, 0x14dd, %hpstate
.word 0xe64fc000 ! 56: LDSB_R ldsb [%r31 + %r0], %r19
.word 0xe71fe190 ! 57: LDDF_I ldd [%r31, 0x0190], %f19
.word 0x87802010 ! 58: WRASI_I wr %r0, 0x0010, %asi
.word 0x89800011 ! 59: WRTICK_R wr %r0, %r17, %tick
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610000, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x91414000 ! 60: RDPC rd %pc, %r8
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r19, [%r0+0x3e0] %asi
.word 0x9d914001 ! 61: WRPR_WSTATE_R wrpr %r5, %r1, %wstate
.word 0x91d02035 ! 62: Tcc_I ta icc_or_xcc, %r0 + 53
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 63: FBPULE fbule,a,pn %fcc0, <label_0x1>
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_2_48
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_2_48
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_2_48
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000040a1cbe75e,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xe1bfd960 ! 64: STDFA_R stda %f16, [%r0, %r31]
.word 0x819828d5 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x08d5, %hpstate
.word 0x8d9027b5 ! 66: WRPR_PSTATE_I wrpr %r0, 0x07b5, %pstate
.word 0x39400001 ! 67: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x95a049cd ! 68: FDIVd fdivd %f32, %f44, %f10
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_53-donret_2_53+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x001b0900 | (57 << 24)), %r13
wrhpr %g0, 0x17a4, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (2)
.word 0x33400001 ! 69: FBPE fbe,a,pn %fcc0, <label_0x1>
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0xa3b0c7d1 ! 70: PDIST pdistn %d34, %d48, %d48
.word 0xa7a0016b ! 71: FABSq dis not found
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_2_55
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_2_55
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_2_55
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x000000402ee75e81,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xe1bfe120 ! 72: STDFA_I stda %f16, [0x0120, %r31]
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_56-donret_2_56), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x005b3000 | (0x8b << 24)), %r13
wrhpr %g0, 0x1ddd, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (2)
.word 0xe4ffe130 ! 73: SWAPA_I swapa %r18, [%r31 + 0x0130] %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c010 ! 1: STQF_R - %f18, [%r16, %r31]
.word 0xe4dfc030 ! 74: LDXA_R ldxa [%r31, %r16] 0x01, %r18
.word 0x91944002 ! 75: WRPR_PIL_R wrpr %r17, %r2, %pil
.word 0xaf800011 ! 76: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 77: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802058 ! 78: WRASI_I wr %r0, 0x0058, %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c008 ! 1: STQF_R - %f18, [%r8, %r31]
.word 0xe53fc011 ! 79: STDF_R std %f18, [%r17, %r31]
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r5, [%r0+0x3e0] %asi
.word 0x9d92c009 ! 80: WRPR_WSTATE_R wrpr %r11, %r9, %wstate
stxa %r7, [%r0] ASI_LSU_CONTROL
.word 0xe45fc000 ! 81: LDX_R ldx [%r31 + %r0], %r18
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0x9bb187d4 ! 82: PDIST pdistn %d6, %d20, %d44
stxa %r14, [%r0] ASI_LSU_CONTROL
.word 0xc36cf617 ! 1: PREFETCH_I prefetch [%r19 + 0xfffff617], #one_read
stxa %r14, [%r0] ASI_LSU_CONTROL
.word 0xd23fc000 ! 83: STD_R std %r9, [%r31 + %r0]
.word 0x9ba00170 ! 84: FABSq dis not found
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610040, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x99414000 ! 85: RDPC rd %pc, %r12
.word 0x95450000 ! 86: RD_SET_SOFTINT rd %set_softint, %r10
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0x93b7c7c8 ! 1: PDIST pdistn %d62, %d8, %d40
.word 0x9f8038b2 ! 87: SIR sir 0x18b2
setx 0xffffffbcffffffa5, %g1, %g7
.word 0xa3800007 ! 88: WR_PERF_COUNTER_R wr %r0, %r7, %-
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_68)+8, 16, 16)) -> intp(mask2tid(0x2),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_68)&0xffffffff) + 48, 16, 16)) -> intp(mask2tid(0x2),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984a03f ! 89: WR_SET_SOFTINT_I wr %r18, 0x003f, %set_softint
.word 0x39400001 ! 90: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx fp_data_quads, %r19, %r20
.word 0x87a80a44 ! 91: FCMPd fcmpd %fcc<n>, %f0, %f4
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r16, [%r0+0x3d8] %asi
.word 0x9d94400c ! 92: WRPR_WSTATE_R wrpr %r17, %r12, %wstate
.word 0x8d902aef ! 93: WRPR_PSTATE_I wrpr %r0, 0x0aef, %pstate
.word 0x8d802000 ! 94: WRFPRS_I wr %r0, 0x0000, %fprs
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xd1e7e00d ! 95: CASA_R casa [%r31] %asi, %r13, %r8
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_2_74
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_2_74
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_2_74
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000040b6de816c,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0x95b447d1 ! 96: PDIST pdistn %d48, %d48, %d10
.word 0xa9b0448d ! 97: FCMPLE32 fcmple32 %d32, %d44, %r20
mov 0x20, %r1 ! (VA for ASI 0x5a)
.word 0xd8884b40 ! 98: LDUBA_R lduba [%r1, %r0] 0x5a, %r12
.word 0x81460000 ! 99: RD_STICK_REG stbar
best_set_reg(0xe0a00000, %r20, %r27)
.word 0xb7c6c000 ! 100: JMPL_R jmpl %r27 + %r0, %r27
setx 0xffffffb6ffffffab, %g1, %g7
.word 0xa3800007 ! 101: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8584be6c ! 102: WRCCR_I wr %r18, 0x1e6c, %ccr
.word 0xd8cfe1f8 ! 103: LDSBA_I ldsba [%r31, + 0x01f8] %asi, %r12
done_change_to_randtl_2_80:
.word 0x8f902000 ! 104: WRPR_TL_I wrpr %r0, 0x0000, %tl
setx 0xffffffbcffffffa7, %g1, %g7
.word 0xa3800007 ! 105: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, <label_0x1>
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 106: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xd8cfe048 ! 107: LDSBA_I ldsba [%r31, + 0x0048] %asi, %r12
.word 0xc30fc011 ! 1: LDXFSR_R ld-fsr [%r31, %r17], %f1
.word 0x9f8033ba ! 108: SIR sir 0x13ba
.word 0xd8dfe1e8 ! 109: LDXA_I ldxa [%r31, + 0x01e8] %asi, %r12
.word 0x87802055 ! 110: WRASI_I wr %r0, 0x0055, %asi
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r18, [%r0+0x3e8] %asi
.word 0x9d910013 ! 111: WRPR_WSTATE_R wrpr %r4, %r19, %wstate
.word 0x81460000 ! 112: RD_STICK_REG stbar
setx vahole_target1, %r18, %r27
.word 0x9bb50488 ! 113: FCMPLE32 fcmple32 %d20, %d8, %r13
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100b0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa5414000 ! 114: RDPC rd %pc, %r18
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_86) + 0, 16, 16)) -> intp(2,0,25,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_86)&0xffffffff) + 0, 16, 16)) -> intp(3,0,25,,,,,1)
.word 0x39400001 ! 115: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx 0xffffffbaffffffad, %g1, %g7
.word 0xa3800007 ! 116: WR_PERF_COUNTER_R wr %r0, %r7, %-
mov 0x10, %r1 ! (VA for ASI 0x49)
.word 0xd8c84920 ! 117: LDSBA_R ldsba [%r1, %r0] 0x49, %r12
.word 0x99450000 ! 118: RD_SET_SOFTINT rd %set_softint, %r12
setx fp_data_quads, %r19, %r20
.word 0xc3e83d23 ! 119: PREFETCHA_I prefetcha [%r0, + 0xfffffd23] %asi, #one_read
.word 0xe63fc012 ! 1: STD_R std %r19, [%r31 + %r18]
.word 0x9f802c49 ! 120: SIR sir 0x0c49
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_90-donret_2_90+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00ec0000 | (0x4f << 24)), %r13
wrhpr %g0, 0x459, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (2)
.word 0xe66fe19d ! 121: LDSTUB_I ldstub %r19, [%r31 + 0x019d]
.word 0xe73fc00b ! 1: STDF_R std %f19, [%r11, %r31]
.word 0x9f80226b ! 122: SIR sir 0x026b
setx 0x00000002002a0000, %r11, %r12
.word 0x8b98000c ! 123: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100e0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 124: RDPC rd %pc, %r20
.word 0x39400001 ! 125: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8d802000 ! 126: WRFPRS_I wr %r0, 0x0000, %fprs
.word 0x91a4c9b0 ! 127: FDIVs fdivs %f19, %f16, %f8
.word 0x95a089c4 ! 128: FDIVd fdivd %f2, %f4, %f10
fbg,a,pn %fcc0, skip_2_96
.word 0xa9a349d2 ! 129: FDIVd fdivd %f44, %f18, %f20
.word 0xe8800b40 ! 130: LDUWA_R lduwa [%r0, %r0] 0x5a, %r20
setx 0xe5ce675ea8bf42c9, %r1, %r28
.word 0x25400001 ! 131: FBPLG fblg,a,pn %fcc0, <label_0x1>
.word 0x81982fdf ! 132: WRHPR_HPSTATE_I wrhpr %r0, 0x0fdf, %hpstate
mov 0x0, %r1 ! (VA for ASI 0x72)
.word 0xe8c04e40 ! 133: LDSWA_R ldswa [%r1, %r0] 0x72, %r20
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_100)+24, 16, 16)) -> intp(mask2tid(0x2),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_100)&0xffffffff) + 40, 16, 16)) -> intp(mask2tid(0x2),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9823edf ! 134: WR_SET_SOFTINT_I wr %r8, 0x1edf, %set_softint
setx 0xdb7d0fcc18ef3cd6, %r1, %r28
.word 0x25400001 ! 135: FBPLG fblg,a,pn %fcc0, <label_0x1>
setx 0xc1129efd709f7b9b, %r1, %r28
.word 0x25400001 ! 136: FBPLG fblg,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_103-donret_2_103), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00caf500 | (0x58 << 24)), %r13
wrhpr %g0, 0x118d, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (2)
.word 0xe86fe051 ! 137: LDSTUB_I ldstub %r20, [%r31 + 0x0051]
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_2_104
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_2_104
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_2_104
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000040a6c16cd8,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xe19fdb60 ! 138: LDDFA_R ldda [%r31, %r0], %f16
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e00a ! 139: CASA_R casa [%r31] %asi, %r10, %r20
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 140: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
.word 0xe9e7e00a ! 141: CASA_R casa [%r31] %asi, %r10, %r20
.word 0x93d020b2 ! 142: Tcc_I tne icc_or_xcc, %r0 + 178
.word 0x81983f1d ! 143: WRHPR_HPSTATE_I wrhpr %r0, 0x1f1d, %hpstate
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0x87a88a50 ! 144: FCMPd fcmpd %fcc<n>, %f2, %f16
.word 0x3a800001 ! 1: BCC bcc,a <label_0x1>
.word 0x8d903a97 ! 145: WRPR_PSTATE_I wrpr %r0, 0x1a97, %pstate
set user_data_start, %r31
.word 0x85823267 ! 146: WRCCR_I wr %r8, 0x1267, %ccr
.word 0xa3410000 ! 147: RDTICK rd %tick, %r17
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_113-donret_2_113+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00874400 | (0x58 << 24)), %r13
wrhpr %g0, 0xd94, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (2)
.word 0xe6ffe05c ! 148: SWAPA_I swapa %r19, [%r31 + 0x005c] %asi
setx 0x00000004003a0000, %r11, %r12
.word 0x8b90000c ! 149: WRPR_TBA_R wrpr %r0, %r12, %tba
setx 0x00000002002a0000, %r11, %r12
.word 0x8b98000c ! 150: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
setx fp_data_quads, %r19, %r20
.word 0x91a009c4 ! 151: FDIVd fdivd %f0, %f4, %f8
taddcctv %r18, 0x15da, %r18
.word 0xe607e0e7 ! 152: LDUW_I lduw [%r31 + 0x00e7], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_118)+24, 16, 16)) -> intp(mask2tid(0x2),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_118)&0xffffffff) + 40, 16, 16)) -> intp(mask2tid(0x2),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa9817e7d ! 153: WR_SET_SOFTINT_I wr %r5, 0x1e7d, %set_softint
.word 0x89800011 ! 154: WRTICK_R wr %r0, %r17, %tick
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r3, [%r0+0x3c0] %asi
.word 0x9d904006 ! 155: WRPR_WSTATE_R wrpr %r1, %r6, %wstate
.word 0xe737c000 ! 156: STQF_R - %f19, [%r0, %r31]
.word 0x87802016 ! 157: WRASI_I wr %r0, 0x0016, %asi
.word 0x9a68e29e ! 158: UDIVX_I udivx %r3, 0x029e, %r13
.word 0xb3800011 ! 159: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_2_122-donret_2_122), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x002b0000 | (0x88 << 24)), %r13
wrhpr %g0, 0x517, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (2)
.word 0x93a4c9d3 ! 160: FDIVd fdivd %f50, %f50, %f40
setx 0xffffffbbffffffae, %g1, %g7
.word 0xa3800007 ! 161: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8b90000c ! 162: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r11, [%r0+0x3e8] %asi
.word 0x9d914011 ! 163: WRPR_WSTATE_R wrpr %r5, %r17, %wstate
.word 0xa190200c ! 164: WRPR_GL_I wrpr %r0, 0x000c, %-
mov 0x8, %r1 ! (VA for ASI 0x5b)
.word 0xdac04b60 ! 165: LDSWA_R ldswa [%r1, %r0] 0x5b, %r13
.word 0x8d802000 ! 166: WRFPRS_I wr %r0, 0x0000, %fprs
setx 0x00000004003a0000, %r11, %r12
.word 0x8b90000c ! 167: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x91d0001e ! 168: Tcc_R ta icc_or_xcc, %r0 + %r30
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xdbe7e00d ! 169: CASA_R casa [%r31] %asi, %r13, %r13
.word 0xdadfc032 ! 1: LDXA_R ldxa [%r31, %r18] 0x01, %r13
.word 0x9f803c4d ! 170: SIR sir 0x1c4d
.word 0x8d902160 ! 171: WRPR_PSTATE_I wrpr %r0, 0x0160, %pstate
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_2_130
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_2_130
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_2_130
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x000000400fecd80e,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xc19fdc00 ! 172: LDDFA_R ldda [%r31, %r0], %f0
.word 0xa269feaf ! 173: UDIVX_I udivx %r7, 0xfffffeaf, %r17
.word 0x996c8012 ! 174: SDIVX_R sdivx %r18, %r18, %r12
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe03fe180 ! 175: STD_I std %r16, [%r31 + 0x0180]
.word 0xa784e36e ! 176: WR_GRAPHICS_STATUS_REG_I wr %r19, 0x036e, %-
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610080, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 177: RDPC rd %pc, %r20
setx fp_data_quads, %r19, %r20
.word 0x89a009a4 ! 178: FDIVs fdivs %f0, %f4, %f4
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 179: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0x87802058 ! 180: WRASI_I wr %r0, 0x0058, %asi
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_135)+32, 16, 16)) -> intp(mask2tid(0x2),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_135)&0xffffffff) + 32, 16, 16)) -> intp(mask2tid(0x2),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa98377c8 ! 181: WR_SET_SOFTINT_I wr %r13, 0x17c8, %set_softint
mov 0x8, %r1 ! (VA for ASI 0x4a)
.word 0xda904940 ! 182: LDUHA_R lduha [%r1, %r0] 0x4a, %r13
setx 0xcf0a20ff2c7bffc8, %r1, %r28
.word 0x25400001 ! 183: FBPLG fblg,a,pn %fcc0, <label_0x1>
tsubcctv %r16, 0x10d6, %r2
.word 0xda07e061 ! 184: LDUW_I lduw [%r31 + 0x0061], %r13
.word 0x26c90001 ! 1: BRLZ brlz,a,pt %r4,<label_0x90001>
.word 0x81982edb ! 185: WRHPR_HPSTATE_I wrhpr %r0, 0x0edb, %hpstate
.word 0xda77c000 ! 186: STX_R stx %r13, [%r31 + %r0]
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xdb37e0a0 ! 1: STQF_I - %f13, [0x00a0, %r31]
.word 0x8d903ddd ! 187: WRPR_PSTATE_I wrpr %r0, 0x1ddd, %pstate
.word 0x91d0001e ! 188: Tcc_R ta icc_or_xcc, %r0 + %r30
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_2_141
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_2_141
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_2_141
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x0000005089d80ea1,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0x97b4c7d2 ! 189: PDIST pdistn %d50, %d18, %d42
tsubcctv %r2, 0x181e, %r19
.word 0xd807e1f4 ! 190: LDUW_I lduw [%r31 + 0x01f4], %r12
.word 0x87802016 ! 191: WRASI_I wr %r0, 0x0016, %asi
setx 0xe0b2f8c496b07ae6, %r1, %r28
.word 0x25400001 ! 192: FBPLG fblg,a,pn %fcc0, <label_0x1>
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_144) + 24, 16, 16)) -> intp(6,0,23,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_144)&0xffffffff) + 8, 16, 16)) -> intp(7,0,13,,,,,1)
.word 0x39400001 ! 193: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x87802030 ! 194: WRASI_I wr %r0, 0x0030, %asi
.word 0x89800011 ! 195: WRTICK_R wr %r0, %r17, %tick
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe1bfe140 ! 196: STDFA_I stda %f16, [0x0140, %r31]
setx 0x00000004003a0000, %r11, %r12
.word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0xa0c46479 ! 198: ADDCcc_I addccc %r17, 0x0479, %r16
setx 0xffffffbfffffffa5, %g1, %g7
.word 0xa3800007 ! 199: WR_PERF_COUNTER_R wr %r0, %r7, %-
set sync_thr_counter4, %r23
and %r8, 0x38, %r8 ! Core ID
cas [%r23],%g0,%r16 !lock
brz,a %r16, continue_ibp_2_149
sllx %r16, %r8, %r16 !Mask for my core only
ldxa [0x58]%asi, %r17 !Running_status
ldxa [0x50]%asi, %r13 !Running_rw
bne,a %xcc, wait_for_stat_2_149
ldxa [0x58]%asi, %r17 !Running_status
stxa %r16, [0x68]%asi !Park (W1C)
ldxa [0x50]%asi, %r14 !Running_rw
ldxa [0x58]%asi, %r17 !Running_status
bne,a %xcc, wait_for_ibp_2_149
ldxa [0x50]%asi, %r14 !Running_rw
best_set_reg(0x00000040adcea16c,%r19, %r20)
stxa %r16, [0x60] %asi !Unpark (W1S)
st %g0, [%r23] !clear lock
wr %r0, %r12, %asi !restore %asi
.word 0xc19fc2c0 ! 200: LDDFA_R ldda [%r31, %r0], %f0
setx join_lbl_0_0, %g1, %g2
setx vahole_target2, %r18, %r27
.word 0xe19fe1c0 ! 1: LDDFA_I ldda [%r31, 0x01c0], %f16
.word 0xaf800011 ! 2: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r3, [%r0+0x3e0] %asi
.word 0x9d940014 ! 3: WRPR_WSTATE_R wrpr %r16, %r20, %wstate
.word 0xc19fe020 ! 4: LDDFA_I ldda [%r31, 0x0020], %f0
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610080, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 5: RDPC rd %pc, %r20
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_5-donret_1_5), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00f66f00 | (0x58 << 24)), %r13
wrhpr %g0, 0x1f17, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (1)
.word 0x8d90279d ! 6: WRPR_PSTATE_I wrpr %r0, 0x079d, %pstate
.word 0xe937e0dc ! 7: STQF_I - %f20, [0x00dc, %r31]
best_set_reg(0xe0200000, %r20, %r27)
.word 0xb7c6c000 ! 8: JMPL_R jmpl %r27 + %r0, %r27
.word 0x39400001 ! 9: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x9f802841 ! 10: SIR sir 0x0841
.word 0x8d802004 ! 11: WRFPRS_I wr %r0, 0x0004, %fprs
mov 0x8, %r1 ! (VA for ASI 0x48)
.word 0xe8c84900 ! 12: LDSBA_R ldsba [%r1, %r0] 0x48, %r20
.word 0xe81fe1c0 ! 13: LDD_I ldd [%r31 + 0x01c0], %r20
.word 0x24800001 ! 1: BLE ble,a <label_0x1>
.word 0x8d902b8f ! 14: WRPR_PSTATE_I wrpr %r0, 0x0b8f, %pstate
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100d0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa1414000 ! 15: RDPC rd %pc, %r16
setx common_target, %r12, %r27
.word 0x81dfc00c ! 1: FLUSH_R flush %r31, %r12, %r0
.word 0xe19fe0e0 ! 16: LDDFA_I ldda [%r31, 0x00e0], %f16
best_set_reg(0xe0200000, %r20, %r27)
.word 0xb7c6c000 ! 17: JMPL_R jmpl %r27 + %r0, %r27
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r11, [%r0+0x3d8] %asi
.word 0x9d910013 ! 18: WRPR_WSTATE_R wrpr %r4, %r19, %wstate
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r4, [%r0+0x3d8] %asi
.word 0x9d920010 ! 19: WRPR_WSTATE_R wrpr %r8, %r16, %wstate
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 20: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_16) + 32, 16, 16)) -> intp(2,0,15,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_16)&0xffffffff) + 16, 16, 16)) -> intp(3,0,0,,,,,1)
.word 0x39400001 ! 21: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x81d9c010 ! 22: FLUSH_R flush %r7, %r16, %r0
.word 0x36800001 ! 1: BGE bge,a <label_0x1>
.word 0x8d903b07 ! 23: WRPR_PSTATE_I wrpr %r0, 0x1b07, %pstate
.word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl
ta T_CHANGE_NONHPRIV ! macro
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r2, [%r0+0x3d0] %asi
.word 0x9d944003 ! 25: WRPR_WSTATE_R wrpr %r17, %r3, %wstate
.word 0x81510000 ! 26: RDPR_TICK rdpr %tick, %r0
.word 0x879cbe22 ! 27: WRHPR_HINTP_I wrhpr %r18, 0x1e22, %hintp
setx fp_data_quads, %r19, %r20
.word 0x87a80a44 ! 28: FCMPd fcmpd %fcc<n>, %f0, %f4
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r4, [%r0+0x3e8] %asi
.word 0x9d920014 ! 29: WRPR_WSTATE_R wrpr %r8, %r20, %wstate
.word 0x8198288d ! 30: WRHPR_HPSTATE_I wrhpr %r0, 0x088d, %hpstate
setx 0x0000000000380000, %r11, %r12
.word 0x8b90000c ! 31: WRPR_TBA_R wrpr %r0, %r12, %tba
mov 0x8, %r1 ! (VA for ASI 0x4a)
.word 0xe8884940 ! 32: LDUBA_R lduba [%r1, %r0] 0x4a, %r20
.word 0x39400001 ! 33: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e013 ! 34: CASA_R casa [%r31] %asi, %r19, %r20
.word 0xe89fe1f8 ! 35: LDDA_I ldda [%r31, + 0x01f8] %asi, %r20
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e011 ! 36: CASA_R casa [%r31] %asi, %r17, %r20
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_28-donret_1_28), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00b10a00 | (57 << 24)), %r13
wrhpr %g0, 0x16cf, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (1)
.word 0x2c800001 ! 37: BNEG bneg,a <label_0x1>
setx common_target, %r12, %r27
.word 0xa9a7c973 ! 1: FMULq dis not found
.word 0xc19fda00 ! 38: LDDFA_R ldda [%r31, %r0], %f0
.word 0x91930007 ! 39: WRPR_PIL_R wrpr %r12, %r7, %pil
.word 0xd877e1c3 ! 40: STX_I stx %r12, [%r31 + 0x01c3]
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610000, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa7414000 ! 41: RDPC rd %pc, %r19
.word 0xe71fe000 ! 42: LDDF_I ldd [%r31, 0x0000], %f19
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe7e7e009 ! 43: CASA_R casa [%r31] %asi, %r9, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_34-donret_1_34+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x005ee800 | (0x55 << 24)), %r13
wrhpr %g0, 0xc55, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (1)
.word 0xe66fe129 ! 44: LDSTUB_I ldstub %r19, [%r31 + 0x0129]
.word 0x26800001 ! 1: BL bl,a <label_0x1>
.word 0xe65fc000 ! 45: LDX_R ldx [%r31 + %r0], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_35)+32, 16, 16)) -> intp(mask2tid(0x1),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_35)&0xffffffff) + 0, 16, 16)) -> intp(mask2tid(0x1),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984738d ! 46: WR_SET_SOFTINT_I wr %r17, 0x138d, %set_softint
.word 0xe63fe080 ! 47: STD_I std %r19, [%r31 + 0x0080]
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_37-donret_1_37+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r12, %r10, %r12 ! low VA tpc
set (0x00320500 | (0x88 << 24)), %r13
wrhpr %g0, 0x19d, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (1)
.word 0x81983e1f ! 48: WRHPR_HPSTATE_I wrhpr %r0, 0x1e1f, %hpstate
.word 0x89800011 ! 49: WRTICK_R wr %r0, %r17, %tick
.word 0xc1bfe0a0 ! 50: STDFA_I stda %f0, [0x00a0, %r31]
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 51: FBPULE fbule,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
done_change_to_randtl_1_41:
.word 0x8f902002 ! 52: WRPR_TL_I wrpr %r0, 0x0002, %tl
.word 0xe1bfde00 ! 53: STDFA_R stda %f16, [%r0, %r31]
.word 0x89800011 ! 54: WRTICK_R wr %r0, %r17, %tick
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_43-donret_1_43+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x006b1500 | (28 << 24)), %r13
wrhpr %g0, 0x1f15, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (1)
.word 0x24800001 ! 1: BLE ble,a <label_0x1>
.word 0x8d9025dd ! 55: WRPR_PSTATE_I wrpr %r0, 0x05dd, %pstate
.word 0xe64fc000 ! 56: LDSB_R ldsb [%r31 + %r0], %r19
.word 0xe71fe050 ! 57: LDDF_I ldd [%r31, 0x0050], %f19
.word 0x87802082 ! 58: WRASI_I wr %r0, 0x0082, %asi
.word 0x89800011 ! 59: WRTICK_R wr %r0, %r17, %tick
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100c0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa9414000 ! 60: RDPC rd %pc, %r20
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r11, [%r0+0x3c8] %asi
.word 0x9d94800b ! 61: WRPR_WSTATE_R wrpr %r18, %r11, %wstate
.word 0x93d02035 ! 62: Tcc_I tne icc_or_xcc, %r0 + 53
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 63: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xe19fe040 ! 64: LDDFA_I ldda [%r31, 0x0040], %f16
.word 0x819837c2 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x17c2, %hpstate
.word 0x8d903aeb ! 66: WRPR_PSTATE_I wrpr %r0, 0x1aeb, %pstate
.word 0x39400001 ! 67: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x91a209c9 ! 68: FDIVd fdivd %f8, %f40, %f8
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_53-donret_1_53+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00c0b200 | (0x89 << 24)), %r13
wrhpr %g0, 0x1254, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (1)
.word 0x27400001 ! 69: FBPUL fbul,a,pn %fcc0, <label_0x1>
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0xa9b507c5 ! 70: PDIST pdistn %d20, %d36, %d20
.word 0xa5a00169 ! 71: FABSq dis not found
.word 0xe1bfe080 ! 72: STDFA_I stda %f16, [0x0080, %r31]
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_56-donret_1_56), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x00315800 | (0x82 << 24)), %r13
wrhpr %g0, 0xac9, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (1)
.word 0xe4ffe05a ! 73: SWAPA_I swapa %r18, [%r31 + 0x005a] %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c013 ! 1: STQF_R - %f18, [%r19, %r31]
.word 0xe51fc014 ! 74: LDDF_R ldd [%r31, %r20], %f18
.word 0x9190c011 ! 75: WRPR_PIL_R wrpr %r3, %r17, %pil
.word 0xaf800011 ! 76: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xb3800011 ! 77: WR_STICK_CMPR_REG_R wr %r0, %r17, %-
.word 0x87802004 ! 78: WRASI_I wr %r0, 0x0004, %asi
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xe537c008 ! 1: STQF_R - %f18, [%r8, %r31]
.word 0xe5e7e008 ! 79: CASA_R casa [%r31] %asi, %r8, %r18
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r20, [%r0+0x3c8] %asi
.word 0x9d950011 ! 80: WRPR_WSTATE_R wrpr %r20, %r17, %wstate
stxa %r11, [%r0] ASI_LSU_CONTROL
.word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31
.word 0xe45fc000 ! 81: LDX_R ldx [%r31 + %r0], %r18
stxa %l3, [%g0] ASI_SPARC_PWR_MGMT
.word 0x93b047cb ! 82: PDIST pdistn %d32, %d42, %d40
stxa %r18, [%r0] ASI_LSU_CONTROL
.word 0x99a4c9c7 ! 1: FDIVd fdivd %f50, %f38, %f12
stxa %r9, [%r0] ASI_LSU_CONTROL
.word 0xd3e7c020 ! 83: CASA_I casa [%r31] 0x 1, %r0, %r9
.word 0x91a0016b ! 84: FABSq dis not found
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610020, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x93414000 ! 85: RDPC rd %pc, %r9
.word 0x93450000 ! 86: RD_SET_SOFTINT rd %set_softint, %r9
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0x93b7c7cd ! 1: PDIST pdistn %d62, %d44, %d40
.word 0x91a409b4 ! 87: FDIVs fdivs %f16, %f20, %f8
setx 0xffffffb1ffffffac, %g1, %g7
.word 0xa3800007 ! 88: WR_PERF_COUNTER_R wr %r0, %r7, %-
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_68)+48, 16, 16)) -> intp(mask2tid(0x1),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_68)&0xffffffff) + 0, 16, 16)) -> intp(mask2tid(0x1),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa98523fe ! 89: WR_SET_SOFTINT_I wr %r20, 0x03fe, %set_softint
.word 0x39400001 ! 90: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx fp_data_quads, %r19, %r20
.word 0xc3e823fe ! 91: PREFETCHA_I prefetcha [%r0, + 0x03fe] %asi, #one_read
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r11, [%r0+0x3d0] %asi
.word 0x9d914007 ! 92: WRPR_WSTATE_R wrpr %r5, %r7, %wstate
.word 0x8d90330d ! 93: WRPR_PSTATE_I wrpr %r0, 0x130d, %pstate
.word 0x8d802000 ! 94: WRFPRS_I wr %r0, 0x0000, %fprs
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xd1e7e00c ! 95: CASA_R casa [%r31] %asi, %r12, %r8
.word 0x87acca53 ! 96: FCMPd fcmpd %fcc<n>, %f50, %f50
.word 0x99b447d1 ! 97: PDIST pdistn %d48, %d48, %d12
mov 0x30, %r1 ! (VA for ASI 0x5a)
.word 0xd8884b40 ! 98: LDUBA_R lduba [%r1, %r0] 0x5a, %r12
.word 0x81460000 ! 99: RD_STICK_REG stbar
best_set_reg(0xe1200000, %r20, %r27)
.word 0xb7c6c000 ! 100: JMPL_R jmpl %r27 + %r0, %r27
setx 0xffffffbbffffffa1, %g1, %g7
.word 0xa3800007 ! 101: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x85813d80 ! 102: WRCCR_I wr %r4, 0x1d80, %ccr
.word 0xd8cfe030 ! 103: LDSBA_I ldsba [%r31, + 0x0030] %asi, %r12
done_change_to_randtl_1_80:
.word 0x8f902000 ! 104: WRPR_TL_I wrpr %r0, 0x0000, %tl
setx 0xffffffb9ffffffae, %g1, %g7
.word 0xa3800007 ! 105: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x2acd0001 ! 1: BRNZ brnz,a,pt %r20,<label_0xd0001>
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 106: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0xd8cfe050 ! 107: LDSBA_I ldsba [%r31, + 0x0050] %asi, %r12
.word 0x9f803f16 ! 108: SIR sir 0x1f16
.word 0xd8dfe058 ! 109: LDXA_I ldxa [%r31, + 0x0058] %asi, %r12
.word 0x87802016 ! 110: WRASI_I wr %r0, 0x0016, %asi
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r6, [%r0+0x3e0] %asi
.word 0x9d944013 ! 111: WRPR_WSTATE_R wrpr %r17, %r19, %wstate
.word 0x81460000 ! 112: RD_STICK_REG stbar
setx vahole_target1, %r18, %r27
.word 0x87ac0a54 ! 113: FCMPd fcmpd %fcc<n>, %f16, %f20
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610020, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x99414000 ! 114: RDPC rd %pc, %r12
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_86) + 0, 16, 16)) -> intp(3,0,22,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_86)&0xffffffff) + 48, 16, 16)) -> intp(6,0,28,,,,,1)
.word 0x39400001 ! 115: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
setx 0xffffffb1ffffffa8, %g1, %g7
.word 0xa3800007 ! 116: WR_PERF_COUNTER_R wr %r0, %r7, %-
mov 0x10, %r1 ! (VA for ASI 0x49)
.word 0xd8c04920 ! 117: LDSWA_R ldswa [%r1, %r0] 0x49, %r12
.word 0xa7450000 ! 118: RD_SET_SOFTINT rd %set_softint, %r19
setx fp_data_quads, %r19, %r20
.word 0x8da009c4 ! 119: FDIVd fdivd %f0, %f4, %f6
.word 0x9f802dd2 ! 120: SIR sir 0x0dd2
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_90-donret_1_90+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
set (0x00a12700 | (0x82 << 24)), %r13
wrhpr %g0, 0x11fd, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (1)
.word 0xe66fe075 ! 121: LDSTUB_I ldstub %r19, [%r31 + 0x0075]
.word 0x9f8029e9 ! 122: SIR sir 0x09e9
setx 0x0000000000280000, %r11, %r12
.word 0x8b98000c ! 123: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x206100a0, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0xa5414000 ! 124: RDPC rd %pc, %r18
.word 0x39400001 ! 125: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8d802000 ! 126: WRFPRS_I wr %r0, 0x0000, %fprs
.word 0x87ab0a4c ! 127: FCMPd fcmpd %fcc<n>, %f12, %f12
.word 0x91a4c9ac ! 128: FDIVs fdivs %f19, %f12, %f8
fbge,a,pn %fcc0, skip_1_96
.word 0x87ac0a46 ! 129: FCMPd fcmpd %fcc<n>, %f16, %f6
.word 0xe8800ae0 ! 130: LDUWA_R lduwa [%r0, %r0] 0x57, %r20
setx 0xe97e2d6c20966a6b, %r1, %r28
.word 0x25400001 ! 131: FBPLG fblg,a,pn %fcc0, <label_0x1>
.word 0x81983689 ! 132: WRHPR_HPSTATE_I wrhpr %r0, 0x1689, %hpstate
mov 0x0, %r1 ! (VA for ASI 0x72)
.word 0xe8d84e40 ! 133: LDXA_R ldxa [%r1, %r0] 0x72, %r20
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_100)+40, 16, 16)) -> intp(mask2tid(0x1),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_100)&0xffffffff) + 48, 16, 16)) -> intp(mask2tid(0x1),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984b598 ! 134: WR_SET_SOFTINT_I wr %r18, 0x1598, %set_softint
setx 0x7082ff115dff282e, %r1, %r28
.word 0x25400001 ! 135: FBPLG fblg,a,pn %fcc0, <label_0x1>
setx 0x8165e96a11b2d99c, %r1, %r28
.word 0x25400001 ! 136: FBPLG fblg,a,pn %fcc0, <label_0x1>
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_103-donret_1_103), %r12
add %r12, 0x8, %r11 ! nonseq tnpc
set (0x0093c400 | (28 << 24)), %r13
wrhpr %g0, 0xc1d, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (1)
.word 0xe86fe18e ! 137: LDSTUB_I ldstub %r20, [%r31 + 0x018e]
.word 0xe1bfe120 ! 138: STDFA_I stda %f16, [0x0120, %r31]
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xe9e7e013 ! 139: CASA_R casa [%r31] %asi, %r19, %r20
wrhpr %r17, %g0, %hsys_tick_cmpr
.word 0xaf800011 ! 140: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
.word 0xe8bfc029 ! 141: STDA_R stda %r20, [%r31 + %r9] 0x01
.word 0x91d02032 ! 142: Tcc_I ta icc_or_xcc, %r0 + 50
.word 0x8198349e ! 143: WRHPR_HPSTATE_I wrhpr %r0, 0x149e, %hpstate
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0x87ac0a48 ! 144: FCMPd fcmpd %fcc<n>, %f16, %f8
.word 0x2e800001 ! 1: BVS bvs,a <label_0x1>
.word 0x8d903187 ! 145: WRPR_PSTATE_I wrpr %r0, 0x1187, %pstate
set user_data_start, %r31
.word 0x8580f5d0 ! 146: WRCCR_I wr %r3, 0x15d0, %ccr
.word 0xa7410000 ! 147: RDTICK rd %tick, %r19
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_113-donret_1_113+4), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x00569700 | (0x89 << 24)), %r13
wrhpr %g0, 0x194e, %htstate
ta T_CHANGE_NONHPRIV ! rand=1 (1)
.word 0xe6ffe1da ! 148: SWAPA_I swapa %r19, [%r31 + 0x01da] %asi
setx 0x0000000000380000, %r11, %r12
.word 0x8b90000c ! 149: WRPR_TBA_R wrpr %r0, %r12, %tba
setx 0x0000000000280000, %r11, %r12
.word 0x8b98000c ! 150: WRHPR_HTBA_R wrhpr %r0, %r12, %htba
setx fp_data_quads, %r19, %r20
.word 0xc3e835d0 ! 151: PREFETCHA_I prefetcha [%r0, + 0xfffff5d0] %asi, #one_read
taddcctv %r5, 0x1b0c, %r18
.word 0xe607e1dd ! 152: LDUW_I lduw [%r31 + 0x01dd], %r19
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_118)+0, 16, 16)) -> intp(mask2tid(0x1),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_118)&0xffffffff) + 24, 16, 16)) -> intp(mask2tid(0x1),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984bed8 ! 153: WR_SET_SOFTINT_I wr %r18, 0x1ed8, %set_softint
.word 0x89800011 ! 154: WRTICK_R wr %r0, %r17, %tick
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r20, [%r0+0x3d0] %asi
.word 0x9d948011 ! 155: WRPR_WSTATE_R wrpr %r18, %r17, %wstate
.word 0xe737c000 ! 156: STQF_R - %f19, [%r0, %r31]
.word 0x87802039 ! 157: WRASI_I wr %r0, 0x0039, %asi
.word 0xa868fbcd ! 158: UDIVX_I udivx %r3, 0xfffffbcd, %r20
.word 0xaf800011 ! 159: WR_TICK_CMPR_REG_R wr %r0, %r17, %-
ta T_CHANGE_HPRIV ! macro
add %r12, (donretarg_1_122-donret_1_122), %r12
add %r12, 0x4, %r11 ! seq tnpc
andn %r11, %r10, %r11 ! low VA tnpc
set (0x0090ce00 | (0x55 << 24)), %r13
wrhpr %g0, 0xd07, %htstate
ta T_CHANGE_NONPRIV ! rand=0 (1)
.word 0x9ba509d3 ! 160: FDIVd fdivd %f20, %f50, %f44
setx 0xffffffbeffffffa8, %g1, %g7
.word 0xa3800007 ! 161: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0x8b90000c ! 162: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi
stxa %r20, [%r0+0x3e8] %asi
.word 0x9d914003 ! 163: WRPR_WSTATE_R wrpr %r5, %r3, %wstate
.word 0xa190200c ! 164: WRPR_GL_I wrpr %r0, 0x000c, %-
mov 0x8, %r1 ! (VA for ASI 0x5b)
.word 0xdad04b60 ! 165: LDSHA_R ldsha [%r1, %r0] 0x5b, %r13
.word 0x8d802000 ! 166: WRFPRS_I wr %r0, 0x0000, %fprs
setx 0x0000000000380000, %r11, %r12
.word 0x8b90000c ! 167: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x91d0001e ! 168: Tcc_R ta icc_or_xcc, %r0 + %r30
set sync_thr_counter6, %r23
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0
stxa %g1, [%g0 + 0x80] %asi
.word 0xdbe7e00c ! 169: CASA_R casa [%r31] %asi, %r12, %r13
.word 0x9f803e99 ! 170: SIR sir 0x1e99
.word 0x8d903f75 ! 171: WRPR_PSTATE_I wrpr %r0, 0x1f75, %pstate
.word 0xe19fe1c0 ! 172: LDDFA_I ldda [%r31, 0x01c0], %f16
.word 0x9a68f694 ! 173: UDIVX_I udivx %r3, 0xfffff694, %r13
.word 0xa16cc010 ! 174: SDIVX_R sdivx %r19, %r16, %r16
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xe0dfc02d ! 175: LDXA_R ldxa [%r31, %r13] 0x01, %r16
.word 0xa7817d17 ! 176: WR_GRAPHICS_STATUS_REG_I wr %r5, 0x1d17, %-
set sync_thr_counter5, %r23
sllx %o1, 5, %o3 !(CID*256)
cas [%r23],%g0,%r10 !lock
ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1
and %l1, 0x3, %l1 ! Check if busy/enabled ..
stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi
best_set_reg(0x20610050, %l1, %l2) !# Control Word
ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2
stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi
.word 0x9b414000 ! 177: RDPC rd %pc, %r13
setx fp_data_quads, %r19, %r20
.word 0x89a009a4 ! 178: FDIVs fdivs %f0, %f4, %f4
stxa %r2, [%r0] ASI_LSU_CONTROL
.word 0x3d400001 ! 179: FBPULE fbule,a,pn %fcc0, <label_0x1>
.word 0x87802083 ! 180: WRASI_I wr %r0, 0x0083, %asi
#if (defined SPC || defined CMP)
!$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_135)+40, 16, 16)) -> intp(mask2tid(0x1),1,3,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_135)&0xffffffff) + 48, 16, 16)) -> intp(mask2tid(0x1),1,3,,,,,1)
!! Generate XIR via RESET_GEN register
andn %r18, 0x208, %r18 ! Reset pstate.am,cle
setx 0x8900000808, %r16, %r17
.word 0xa984aa1f ! 181: WR_SET_SOFTINT_I wr %r18, 0x0a1f, %set_softint
mov 0x110, %r1 ! (VA for ASI 0x4a)
.word 0xdad84940 ! 182: LDXA_R ldxa [%r1, %r0] 0x4a, %r13
setx 0x39494d2c3ead1ae4, %r1, %r28
.word 0x25400001 ! 183: FBPLG fblg,a,pn %fcc0, <label_0x1>
tsubcctv %r16, 0x1340, %r6
.word 0xda07e1b1 ! 184: LDUW_I lduw [%r31 + 0x01b1], %r13
.word 0x3e800001 ! 1: BVC bvc,a <label_0x1>
.word 0x819823cc ! 185: WRHPR_HPSTATE_I wrhpr %r0, 0x03cc, %hpstate
.word 0xda77c000 ! 186: STX_R stx %r13, [%r31 + %r0]
setx common_target, %r12, %r27
lduw [%r27], %r12 ! Load common dest into dcache ..
.word 0xdb37e150 ! 1: STQF_I - %f13, [0x0150, %r31]
.word 0x8d9034cd ! 187: WRPR_PSTATE_I wrpr %r0, 0x14cd, %pstate
.word 0x91d0001e ! 188: Tcc_R ta icc_or_xcc, %r0 + %r30
.word 0x99a409d4 ! 189: FDIVd fdivd %f16, %f20, %f12
tsubcctv %r16, 0x146a, %r19
.word 0xd807e1f5 ! 190: LDUW_I lduw [%r31 + 0x01f5], %r12
.word 0x87802080 ! 191: WRASI_I wr %r0, 0x0080, %asi
setx 0xfdaf5e0947547c8a, %r1, %r28
.word 0x25400001 ! 192: FBPLG fblg,a,pn %fcc0, <label_0x1>
#if (defined SPC || defined CMP1)
!$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_144) + 40, 16, 16)) -> intp(0,0,16,,,,,1)
!$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_144)&0xffffffff) + 40, 16, 16)) -> intp(6,0,0,,,,,1)
.word 0x39400001 ! 193: FBPUGE fbuge,a,pn %fcc0, <label_0x1>
.word 0x8780208a ! 194: WRASI_I wr %r0, 0x008a, %asi
.word 0x89800011 ! 195: WRTICK_R wr %r0, %r17, %tick
stxa %r19, [%g0] ASI_LSU_CONTROL
.word 0xc19fe120 ! 196: LDDFA_I ldda [%r31, 0x0120], %f0
setx 0x0000000000380000, %r11, %r12
.word 0x8b90000c ! 197: WRPR_TBA_R wrpr %r0, %r12, %tba
.word 0x96c36bbd ! 198: ADDCcc_I addccc %r13, 0x0bbd, %r11
setx 0xffffffbaffffffa7, %g1, %g7
.word 0xa3800007 ! 199: WR_PERF_COUNTER_R wr %r0, %r7, %-
.word 0xc19fda00 ! 200: LDDFA_R ldda [%r31, %r0], %f0
wr %g0, ASI_SCRATCHPAD, %asi
best_set_reg(HV_TRAP_BASE_PA, %r1, %r2)
! fp data rs1, rs2, fsr, gsr quads ..
.xword 0x0044000000000000
.xword 0x4028000000000000
.xword 0x0fc0400400000000
.xword 0x0000000000000000
.xword 0x0041000000000000
.xword 0x4022000000000000
.xword 0x0600800000000000
.xword 0x0000000000000000
.xword 0x0220000000000000
.xword 0x4140000000000000
.xword 0x4fc0400400000000
.xword 0x0000000000000000
.xword 0x4090000000000000
.xword 0x0090000000000000
.xword 0x0f80400800000000
.xword 0x0a00000000000000
.xword 0x331b631809ec33a8
.xword 0xf3b2213cb0dea26d
.xword 0x36f450e2591d7299
.xword 0x2461c18b19890e2b
.xword 0x79465b8ad87a619a
.xword 0x7d2be13d4a961d1d
.xword 0x8f447def691df235
.xword 0x27419199e2b6f3a0
.xword 0x1e954d9787aa3690
.xword 0xc06e83437b9c75ff
.xword 0xf54dbd517524b3f8
.xword 0x9976a12b0a6691c1
.xword 0x0cf27cf381bd7062
.xword 0xcf37afe424199982
.xword 0xcc71ba8aead0c6d8
.xword 0xb3834313074098ba
.xword 0xce30a45eb2f5e70c
.xword 0x36e4a485663c3433
.xword 0x1e01a778a9397844
.xword 0xcc7686cc0b312d96
.xword 0x7272df29e076ec44
.xword 0xac1bcf1cae8abc40
.xword 0x8c8ccbe6b4227266
.xword 0x147f9d40a8654ef4
.xword 0x3e17088c5c85df73
.xword 0xcc50c62d9f9f2c1d
.xword 0xfb11fa24d34d501f
.xword 0xd67e86332de99ea8
.xword 0x1e069cbe678517a5
.xword 0xd4d817d7b4bbec72
.xword 0x1f0ba71a1ce39c52
.xword 0x50b7bc6fec2e09e2
.xword 0x1138eee77886f5c0
.xword 0x5c6ace6603c0210d
.xword 0xba717ab622189493
.xword 0xfc271c39146465eb
.xword 0x16648f9bc6f66df1
.xword 0x73e0b8f71930e7c8
.xword 0xe8948d34065c1154
.xword 0x42f2386fbabd4b2e
.xword 0x3215df64a76459a7
.xword 0xc965a9be2d459570
.xword 0xf03b78f5bb9e2eba
.xword 0x93c1ca2c1104a983
.xword 0xb1047e9f842f4292
.xword 0xbf80d393179bb0ed
.xword 0xc2df8c5a1e405cfb
.xword 0x404ded6377fe882a
.xword 0x42905c7a7bc24bad
.xword 0xa5f2d961e77e8f67
.xword 0x8bc589ba0b310f92
.xword 0xd3f2d5528d1bbde6
.xword 0x132710e0ef3b8e0c
.xword 0x5fb683c1e0b4e535
.xword 0xbee45201bd053576
.xword 0x9ef5634f4ccfbdc7
.xword 0xaeeb12d6305573ff
.xword 0x0dad6655ed6690d3
.xword 0xa779358e5aea373e
.xword 0x7622eeeb5466363f
.xword 0x5984a579011a9709
.xword 0xff46adda829e7bf5
.xword 0x144723a68806b153
.xword 0xf7275545a1fb8a3f
.xword 0x8720301346593fcf
.xword 0x40b2b333f5b19794
.xword 0xb08474ceb6e96c27
.xword 0xcca9796998fd9534
.xword 0x3e81ca8d31eeb0bf
.xword 0xdab44fb08e69de80
.xword 0xb8cda60d2375fde7
.xword 0x287a43058488d311
.xword 0x25bd277df88ac8e1
.xword 0xd7ae5b5508607566
.xword 0xdaa249e57ff302fa
.xword 0x5d92132342b85224
.xword 0x21a0c0aba29f2cfd
.xword 0x42c23c5eaab46099
.xword 0x7a2c7dd9e9f78df8
.xword 0x12833f41b99b8cef
.xword 0xb2c9ef3813df8b78
.xword 0x4304159d1b96866f
.xword 0xa480cc5aabb46afa
.xword 0x81613a58b488cc4d
.xword 0x45ee5320950356d7
.xword 0x95a828b31a9ee744
.xword 0x24047167a131f194
.xword 0xad739170204c4fbe
.xword 0x076ab02fa251d90b
.xword 0xb3f988e15c01ecb2
.xword 0xeb3d06e41a17640a
.xword 0x184d38ffde261a06
.xword 0x89e79e8fc99027af
.xword 0xe2ccdae4cf7e7898
.xword 0xa0a9540e2bfd468a
.xword 0xc6288f4f07a209fc
.xword 0x418036e3a5751abb
.xword 0xd6d2f49cbbd46edd
.xword 0x9bf65f68cf93d714
.xword 0xeb0d99ef18f694b9
.xword 0xe027115a3552352f
.xword 0xd9178b5b18936710
.xword 0x2730820b2309652f
.xword 0xf86f16b629cba0f9
.xword 0x016ddb14078cea1e
.xword 0x6516d0946d17f4d2
.xword 0x9f5d8e64c3bc8137
.xword 0xa106931788d0c4f9
.xword 0x30978524e2ee056f
.xword 0x6500cfb5ecd46787
.xword 0x5841a8c268faa02d
.xword 0xac4fc6bed66f8c83
.xword 0xd6b191cea3bf061e
.xword 0x9ca24c8d82ee72ff
.xword 0x3d7c8081720b96df
.xword 0x916c57b9cb500227
.xword 0x39ec751485bcd373
.xword 0x8c4fd30b8d0f84c0
.xword 0xfa3e7c1019b4e2f2
.xword 0x417712ec3c894dab
.xword 0xd012a6e04e59c025
.xword 0x8fb62bd644795b2a
.xword 0x0b9c425d502ea295
.xword 0xf11c1cbcbed6507f
.xword 0xda998fb727d4dcda
.xword 0xf32cb5aeaa6c7351
.xword 0x6bfd02e927d4a43a
.xword 0xe6994d79b3b813a8
.xword 0xe63eaf6c33f90d3d
.xword 0x0d9a8b4351ac7b25
.xword 0x61fdaa84848b94d6
.xword 0xc95839ba8e6ea5cd
.xword 0xbae6f87394baf8e1
.xword 0x603c5770d88b0f29
.xword 0x07fe9c506b1f3917
.xword 0xbb6cbb81e02a5ced
.xword 0x1bc5db89cf3e7793
.xword 0x56d35d0a38b76ad0
.xword 0x92a3a30421cab83d
.xword 0x742364ff4bcdb537
.xword 0xfa93c9a3470fab88
.xword 0x3a2c0e1f20db0011
.xword 0xc89be59dced24322
.xword 0x1c1003fbb600bbd9
.xword 0x83b6559944b260ea
.xword 0x7cfd3f144d26d6ed
.xword 0x606473938e7f12db
.xword 0xc10e71b538735d9d
.xword 0x0501836e7819a930
.xword 0x47b7180867dd9d80
.xword 0xfc7d678ce55499ba
.xword 0xd326e7f31236df23
.xword 0xd9f8903a6b9ef250
.xword 0xe82c6a95782d597d
.xword 0xfbf0fbe4c742bffd
.xword 0x2ba10b767306d48b
.xword 0xd12f25a5192ef433
.xword 0xaedce25a1a5f2688
.xword 0xd4ac019e53cb71ea
.xword 0xa1d7dba8b75761cf
.xword 0x57d6778855b90101
.xword 0x78b61abdeff887a0
.xword 0x977191d33a2013d8
.xword 0x6767917ff44bc79f
.xword 0xc9d2ea46f145859f
.xword 0x65632085fbc357c2
.xword 0xbf87887dab4167b8
.xword 0x8033c5e296e50355
.xword 0x23e3935cceb94a9b
.xword 0xe9ae3044017ce315
.xword 0xe8a16aa774800861
.xword 0x49bb9ee55f82e2e4
.xword 0x2d633a2c8fd1a0f4
.xword 0x7373d1b65a2582f1
.xword 0xaf2acee16e9c47cc
.xword 0x9dde1e9c3a0ae090
.xword 0xf73778e2d192c744
.xword 0x54ada8850f266961
.xword 0xcb2beeed9bc15254
.xword 0x66f13a9f133591f6
.xword 0x6834992e1dbec65b
.xword 0x9faf9712f4172833
.xword 0x4b4f856615883d23
.xword 0x1dee51ed472128d2
.xword 0x051f8e191ac1577b
.xword 0x3afa4d141d6e861c
.xword 0xa29646062edc1a54
.xword 0x67b37f96c14ae8e9
.xword 0x2671bc517302fd20
.xword 0x1a2e5434d8029173
.xword 0x0eb945b1b39092ab
.xword 0x7c5f09fcd33701c5
.xword 0x5497ca4ea727cfc6
.xword 0x797a815e1fdb79c8
.xword 0xef6215d63f159d4e
.xword 0xde36a7be1137ff52
.xword 0xc497a801325ac13e
.xword 0x2e995d0b06f48a04
.xword 0x7604d4a384474f23
.xword 0x11b30607255842b7
.xword 0xdd9a3e27fa585295
.xword 0x6ae52f04ece0379b
.xword 0xba01335bfe729e4a
.xword 0x8eeeb2b41cc0e0da
.xword 0x1280326c51f23b3c
.xword 0x75e1b48995470904
.xword 0xce714a9047fefda1
.xword 0xcac5206c8ad61a32
.xword 0xdf5d85b6658f5874
.xword 0x99024ce6ae3f218d
.xword 0xb96b5f2c791033aa
.xword 0xe2f4e83ebe59bfd1
.xword 0x53a21a7671cf989e
.xword 0xec423431d2ff1b31
.xword 0xbdada2d432099f9c
.xword 0xcb3591cf27706e2a
.xword 0xe91ed731fbfc4bc2
.xword 0x1e94ab47ebd036a7
.xword 0xd2d1ca7364e296ae
.xword 0x310852fefdf320bd
.xword 0x2ef22675cbfc96fd
.xword 0x71ace5c4aac31d7b
.xword 0x7b2448bbb15ab871
.xword 0xc7b1765826d7608f
.xword 0x917d3af12d80c3d6
.xword 0xabfcd55692eec6b8
.xword 0xe490304e21772152
.xword 0x8f7fee154ded4399
.xword 0x1709b319735c894d
.xword 0x6f2fba8522c3e7da
.xword 0x9f170a96a818759a
.xword 0x8f9a95d370b99f4e
.xword 0xd38de37b8dd80dc0
.xword 0x2a66d3fb268584ea
.xword 0xec4cdd6da4cfefbb
.xword 0x4bf7e08ee16645f0
.xword 0x14e7523dee58de28
.xword 0x8c102af4f6f10ba0
.xword 0x88b3aa498c50c433
.xword 0x50fcef869704fa82
.xword 0x950b6475c4e8d8a9
.xword 0x2199f9a329093d94
.xword 0x3d72297e4b4b633f
.xword 0x89bb087b3fa4b290
.xword 0xa6516f8752b2fdbd
.xword 0x5b7a311fabc5e940
.xword 0x0059d8bf90919eaf
.xword 0x6dec1cff2edd7caf
.xword 0x60a16bde68e62752
.xword 0x2622afe97ca15109
.xword 0x4159ac1a9b3d8b5a
.xword 0xc2d2f8c78c3725eb
.xword 0x3b390862858b65cf
.xword 0x178c004788170053
.xword 0xc23cc41715649449
.xword 0xbdd870ae20c39013
.global restore_range_regs
wr %g0, ASI_MMU_REAL_RANGE, %asi
ldxa [ASI_MMU_REAL_RANGE_0] %asi, %g2
stxa %g2, [ASI_MMU_REAL_RANGE_0] %asi
ldxa [ASI_MMU_REAL_RANGE_1] %asi, %g2
stxa %g2, [ASI_MMU_REAL_RANGE_1] %asi
ldxa [ASI_MMU_REAL_RANGE_2] %asi, %g2
stxa %g2, [ASI_MMU_REAL_RANGE_2] %asi
ldxa [ASI_MMU_REAL_RANGE_3] %asi, %g2
stxa %g2, [ASI_MMU_REAL_RANGE_3] %asi
# 10 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_extensions.s"
.global retry_with_base_tba
!if pc[13:5]==0, then assume not a relocated handler
brnz,a %r5, retry_with_base_tba
!assume %r27 is where we came from ..
best_set_reg(TRAP_BASE_VA, %r3, %r5)
add %l2, htrap_5_ext_done-htrap_5_ext, %l2
stxa %l1, [%g0] ASI_LSU_CTL_REG
! If TT != 2, then goto trap handler
and %l3, 0x4, %l3 ! If previously in hpriv mode, go to hpriv
brnz,a %l3, wdog_2_goto_handler_1
srlx %l1, 7, %l3 ! Send priv sw traps to priv mode ..
cmp %l3, 0x2 ! 0x2 = priv sw trap, 0x3=hpriv sw trap ..
be,a wdog_2_goto_handler_1
# 86 "/import/n2-aus-random/N2/sandbox-24x7/somePerson/SIMRUN/DIAG/include/tlu_custom_trap_extensions.s"
! Red mode other reset handler
! Get htba, and tt and make trap address
! Jump to trap handler ..
! IF TL=6, shift stack by one ..
stxa %l1, [%g0] ASI_LSU_CTL_REG
and %l2, 0x4, %l2 ! If previously in hpriv mode, go to hpriv
brnz,a %l2, red_goto_handler
srlx %l1, 7, %l2 ! Send priv sw traps to priv mode ..
cmp %l2, 0x2 ! 0x2 = priv sw trap, 0x3=hpriv sw trap ..
wrhpr %l1, 0x20, %hpstate
! Shift stack down by 1 ...
! If TT != 2, then goto trap handler
stxa %l1, [%g0] ASI_LSU_CTL_REG
SECTION .CWQ_DATA DATA_VA =0x4000
.xword 0xad32fa52374cc6ba
.xword 0x4cbf52280549003a
.xword 0xDEADBEEFDEADBEEF
.xword 0xDEADBEEFDEADBEEF
!# CWQ_BASE for core N is CWQ_BASE+(N*256)
!# CWQ_LAST for core N is CWQ_LAST+(N*256)
SECTION .MyHTRAPS_0 TEXT_VA = 0x0000000000280000, DATA_VA = 0x00000000002c0000
PA = ra2pa(0x0000000000280000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
PA = ra2pa(0x00000000002c0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
#include "tlu_htraps_ext.s"
SECTION .MyHTRAPS_1 TEXT_VA = 0x00000000002a0000, DATA_VA = 0x00000000002e0000
PA = ra2pa(0x00000000002a0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
PA = ra2pa(0x00000000002e0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
#include "tlu_htraps_ext.s"
SECTION .MyHTRAPS_2 TEXT_VA = 0x0000000200280000, DATA_VA = 0x00000002002c0000
PA = ra2pa(0x0000000200280000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
PA = ra2pa(0x00000002002c0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
#include "tlu_htraps_ext.s"
SECTION .MyHTRAPS_3 TEXT_VA = 0x00000002002a0000, DATA_VA = 0x00000002002e0000
PA = ra2pa(0x00000002002a0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
PA = ra2pa(0x00000002002e0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
#include "tlu_htraps_ext.s"
SECTION .MyTRAPS_0 TEXT_VA = 0x0000000000380000, DATA_VA = 0x00000000003c0000
PA = ra2pa(0x0000000000380000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
PA = ra2pa(0x00000000003c0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
SECTION .MyTRAPS_1 TEXT_VA = 0x00000000003a0000, DATA_VA = 0x00000000003e0000
PA = ra2pa(0x00000000003a0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
PA = ra2pa(0x00000000003e0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
SECTION .MyTRAPS_2 TEXT_VA = 0x0000000400380000, DATA_VA = 0x00000004003c0000
PA = ra2pa(0x0000000400380000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
PA = ra2pa(0x00000004003c0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
SECTION .MyTRAPS_3 TEXT_VA = 0x00000004003a0000, DATA_VA = 0x00000004003e0000
PA = ra2pa(0x00000004003a0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
PA = ra2pa(0x00000004003e0000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,
TTE_Size = PART0_Z_PAGE_SIZE_3,
SECTION .MyDATA_0 TEXT_VA = 0x00000000e0140000, DATA_VA = 0x0000000060140000
PA = ra2pa(0x0000000170100000,0),
part_0_ctx_zero_tsb_config_0,
part_0_ctx_nonzero_tsb_config_0,
PA = ra2pa(0x0000000170100000,0),
part_0_ctx_zero_tsb_config_1,
part_0_ctx_nonzero_tsb_config_1,
.xword 0x49da8cac025338c3
.xword 0x2295762788f564fa
.xword 0xb6099cba18b41312
.xword 0xdf25d04151f5a538
.xword 0x60d5ebe9665e3021
.xword 0xfdf478023b4998ad
.xword 0x7054d39887606ed6
.xword 0x3c52b746bf7ad623
.xword 0xf0cc35124f5c494d
.xword 0xdedde5e97cd6b235
.xword 0x96faaa1cc3398485
.xword 0x93723ea3fdfda19e
.xword 0xbfff94720535ad49
.xword 0x2c3a69cb50542103
.xword 0x14995bd3a02381ef
.xword 0x115ef6f3cdf21d91
.xword 0x98abf0021bd23c6f
.xword 0x81aa96c4e0feac12
.xword 0x3b2bcc483f9bae1b
.xword 0xb8774967aad35a12
.xword 0x2d6f4fbaf14d3b5e
.xword 0x0cb59c0eb2e9ff6e
.xword 0x0bc421ace084ddd9
.xword 0x967dc994b9be01cd
.xword 0xfc04e8bbf9a2596a
.xword 0x55ede22a92e59079
.xword 0x1cfd651ad91cc68c
.xword 0x391c4f0452d458cc
.xword 0x5be31412b63de420
.xword 0x3173965ee92c7994
.xword 0x8a01611c0f7f6291
.xword 0x76caa67ae2400de0
SECTION .MyDATA_1 TEXT_VA = 0x00000000e0340000, DATA_VA = 0x0000000060340000
PA = ra2pa(0x0000000170300000,0),
part_0_ctx_zero_tsb_config_0,
part_0_ctx_nonzero_tsb_config_0,
PA = ra2pa(0x0000000170300000,0),
part_0_ctx_zero_tsb_config_1,
part_0_ctx_nonzero_tsb_config_1,
.xword 0xdd88be54981d3fa4
.xword 0xeb8d9c71d398928e
.xword 0x30a02888af778940
.xword 0x8eb8c8da1a88a1ba
.xword 0xf620af1b24319de2
.xword 0xa1054b68ea0d2b2b
.xword 0x4419763a062c4822
.xword 0x732c986a920296cb
.xword 0x809755cc6fce0159
.xword 0x47ae03dcd8735bfb
.xword 0xb5ca69dfb397163b
.xword 0x3f53e4f6982b56ac
.xword 0xbb30f5ce10e9968a
.xword 0x165175457ac582a4
.xword 0xefe7c78eb5373d2b
.xword 0x3f49a7fedc9d3262
.xword 0x301e144e2fb6713e
.xword 0xd03a65505c5c6642
.xword 0xa50d37c1cf98dfac
.xword 0x3ce26714d7224ec4
.xword 0x2dbf5c5f9a6a8c47
.xword 0x3792eda22fcd7cff
.xword 0x1a5fdbfa6a4fd5f2
.xword 0x6b353f386032cc8d
.xword 0x6f5cacb770c1e42c
.xword 0xddb419b7a72e17b2
.xword 0x252b43af176a39ad
.xword 0x3786ab0906a4fcc0
.xword 0xb40d6c66c36108ab
.xword 0x41eecd5bd8538bd5
.xword 0x9dbafd74fdf69ed5
.xword 0xd14393b22686ae91
SECTION .MyDATA_2 TEXT_VA = 0x00000000e0540000, DATA_VA = 0x0000000060540000
PA = ra2pa(0x0000000170500000,0),
part_0_ctx_zero_tsb_config_0,
part_0_ctx_nonzero_tsb_config_0,
PA = ra2pa(0x0000000170500000,0),
part_0_ctx_zero_tsb_config_1,
part_0_ctx_nonzero_tsb_config_1,
.xword 0xa8641ee4fb3d400f
.xword 0x9c5dc63a70902e4b
.xword 0x24395de3afcab9ac
.xword 0x1de98b5bdcf91eb1
.xword 0x403ed8b2ad48ce59
.xword 0x2deffed2a2d39799
.xword 0x54f372b07d7dd35b
.xword 0xb1b01ecbee960fa3
.xword 0x7a47dd49630910ce
.xword 0xfbde54cdc81daced
.xword 0x79cc61dc9301e587
.xword 0x0f9ed1a9c4ac1d7f
.xword 0x705671a1dd2de410
.xword 0xe4303b32acb1c6a6
.xword 0x8225fd25a2006450
.xword 0x7f0a23c142308ccd
.xword 0x234049316312b0fe
.xword 0xab7d675369210b32
.xword 0x1bafb2c79a63785f
.xword 0x65599d9e688a70a0
.xword 0xe5f59fcc762243ce
.xword 0xdf7b7d688ade0807
.xword 0x73b2a1fab8d32e8f
.xword 0xbec563de0937d9b0
.xword 0xa524b85fed36e4df
.xword 0x5a7a3ab1f6327fad
.xword 0xaef852b8d85c5e3f
.xword 0x116e2fae8c7b7998
.xword 0xb82de5db93b6a300
.xword 0xd5ae7f907e613029
.xword 0x16914e709296ba83
.xword 0xc83adf9b197a8bbc
SECTION .MyDATA_3 TEXT_VA = 0x00000000e0740000, DATA_VA = 0x0000000060740000
PA = ra2pa(0x0000000170700000,0),
part_0_ctx_zero_tsb_config_0,
part_0_ctx_nonzero_tsb_config_0,
PA = ra2pa(0x0000000170700000,0),
part_0_ctx_zero_tsb_config_1,
part_0_ctx_nonzero_tsb_config_1,
.xword 0x6e16b7169a84fb67
.xword 0x843c081cf9d8ec13
.xword 0xa98637b2b1ac153a
.xword 0x32d5a45a64bcee4b
.xword 0x042d0e829e3c4757
.xword 0x83a77e986cd18794
.xword 0xd0cd681acbe0db80
.xword 0xd7c3389ef23677b2
.xword 0x3e624aacdc89f825
.xword 0x7254f95126e9f25d
.xword 0x2ce3ed3853fa2c7e
.xword 0xc77ab8176c1d038a
.xword 0x669157c743fddcc4
.xword 0xfb45850a8fd29a54
.xword 0xdf931bcf19cceee1
.xword 0xa64ffff58074f4d8
.xword 0xc09093040d0811c9
.xword 0x76f49cfc43d8aab6
.xword 0x20f68b09682260a5
.xword 0x4de46528f991492c
.xword 0x56dc42fe13b15c20
.xword 0x8192962a494ff8a0
.xword 0x8446e13ba805ed7f
.xword 0xe26b4ed299514f5c
.xword 0xd2edb30a4b1f522d
.xword 0x1e8341cf918c85d0
.xword 0x68de502e8c128048
.xword 0xd049800e1a0c02f4
.xword 0x915f01f22d87a522
.xword 0x1144c0180bedc655
.xword 0xc8d160a431cd9aaf
.xword 0x81bf0782b4684cc5
SECTION .MyTEXT_0 TEXT_VA = 0x00000000e0200000
PA = ra2pa(0x00000000e0200000,0),
part_0_ctx_zero_tsb_config_1,
part_0_ctx_nonzero_tsb_config_1,
SECTION .MyTEXT_1 TEXT_VA = 0x00000000e0a00000
PA = ra2pa(0x00000000e0a00000,0),
part_0_ctx_zero_tsb_config_1,
part_0_ctx_nonzero_tsb_config_1,
SECTION .MyTEXT_2 TEXT_VA = 0x00000000e1200000
PA = ra2pa(0x00000000e1200000,0),
part_0_ctx_zero_tsb_config_1,
part_0_ctx_nonzero_tsb_config_1,
SECTION .MyTEXT_3 TEXT_VA = 0x00000000e1a00000
PA = ra2pa(0x00000000e1a00000,0),
part_0_ctx_zero_tsb_config_1,
part_0_ctx_nonzero_tsb_config_1,
SECTION .VaHOLE_0 TEXT_VA = 0x00007fffffffe000
PA = ra2pa(0x00000000ffffe000,0),
part_0_ctx_zero_tsb_config_1,
part_0_ctx_nonzero_tsb_config_1,
vahole_target2: nop;nop;nop
vahole_target3: nop;nop;nop
SECTION .VaHOLEL_0 TEXT_VA = 0x00000000ffffe000
PA = ra2pa(0x00000000ffffe000,0),
part_0_ctx_zero_tsb_config_0,
part_0_ctx_nonzero_tsb_config_0,
SECTION .ZERO_0 TEXT_VA = 0x0000000000000000
PA = ra2pa(0x0000000000000000,0),
part_0_ctx_zero_tsb_config_1,
part_0_ctx_nonzero_tsb_config_1,
setx HRedmode_Reset_Handler, %g1, %g2
setx wdog_red_ext, %g1, %g2
Software_Initiated_Reset:
setx Software_Reset_Handler, %g1, %g2
! IF TL=6, shift stack by one ..
stxa %l1, [%g0] ASI_LSU_CTL_REG
and %l2, 0x4, %l2 ! If previously in hpriv mode, go to hpriv
brnz,a %l2, red_goto_handler
srlx %l1, 7, %l2 ! Send priv sw traps to priv mode ..
cmp %l2, 0x2 ! 0x2 = priv sw trap, 0x3=hpriv sw trap ..
wrhpr %l1, 0x20, %hpstate
! Shift stack down by 1 ...
! If TT != 2, then goto trap handler
stxa %l1, [%g0] ASI_LSU_CTL_REG
SECTION .VaHOLE_PA_0 TEXT_VA = 0x000000ffffffe000
SECTION .MASKEDHOLE_0 TEXT_VA = 0x0000000100000000
PA = ra2pa(0x0000000000000000,0),
part_0_ctx_zero_tsb_config_3,
part_0_ctx_nonzero_tsb_config_3,