/* * ========== Copyright Header Begin ========================================== * * OpenSPARC T2 Processor File: tlu_rand05_ind_88.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 * otherwise unspecified. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. * * * ========== Copyright Header End ============================================ */ #define IMMU_SKIP_IF_NO_TTE #define DMMU_SKIP_IF_NO_TTE #define PORTABLE_CORE #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 PART_0_BASE 0x0 #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 #d # 466 "diag.j" #define H_HT0_Instruction_Access_MMU_Error_0x71 inst_access_mmu_error_handler #define H_HT0_Instruction_access_error_0x0a inst_access_error_handler #define H_HT0_Internal_Processor_Error_0x29 int_proc_err_handler #define H_HT0_Data_Access_MMU_Error_0x72 data_access_mmu_error_handler #define H_HT0_Data_access_error_0x32 data_access_error_handler #define H_HT0_Hw_Corrected_Error_0x63 hw_corrected_error_handler #define H_HT0_Sw_Recoverable_Error_0x40 sw_recoverable_error_handler #define H_HT0_Store_Error_0x07 store_error_handler #define DAE_SKIP_IF_SOCU_ERROR # 5 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_handlers.s" #ifndef T_HANDLER_RAND4_1 #define T_HANDLER_RAND4_1 b .+16;\ sdiv %r1, %r0, %l4;nop;nop #endif #ifndef T_HANDLER_RAND7_1 #define T_HANDLER_RAND7_1 b .+28;\ pdist %f4, %f6, %f20; \ nop; nop ; nop; nop; illtrap #endif #ifndef T_HANDLER_RAND4_2 #define T_HANDLER_RAND4_2 save %i7, %g0, %i7; \ save %i7, %g0, %i7; \ restore %i7, %g0, %i7;\ restore %i7, %g0, %i7; #endif #ifndef T_HANDLER_RAND7_2 #define T_HANDLER_RAND7_2 b .+8 ;\ rdpr %pstate, %l2;\ b .+8 ;\ rdpr %tstate, %l3;\ b .+12 ;\ wrpr %l3, %r0, %tstate; nop #endif #ifndef T_HANDLER_RAND4_3 #define T_HANDLER_RAND4_3 save %i7, %g0, %i7;\ restore %i7, %g0, %i7;\ save %i7, %g0, %i7; \ restore %i7, %g0, %i7; #endif #ifndef T_HANDLER_RAND7_3 #define T_HANDLER_RAND7_3 b .+8 ;\ rdpr %tnpc, %l2;\ and %l2, 0xfc0, %l2;\ add %i7, %l2, %l2;\ stda %f16,[%i7]ASI_BLOCK_AS_IF_USER_PRIMARY ;\ b .+8 ;\ stda %f0,[%i7]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE ; #endif #ifndef T_HANDLER_RAND4_4 #define T_HANDLER_RAND4_4 b .+4 ; b .+4; b .+4; b .+4 #endif #ifndef T_HANDLER_RAND7_4 #define T_HANDLER_RAND7_4 b .+8;\ save %i7, %g0, %i7; \ b,a .+8;\ b .+12;\ stw %i7, [%i7];\ b .-8;;\ restore %i7, %g0, %i7; #endif #ifndef T_HANDLER_RAND4_5 #define T_HANDLER_RAND4_5 ldda [%r31]ASI_NUCLEUS_QUAD_LDD, %l4;\ sdiv %l4, %l5, %l7;\ add %r31, 128, %l5;\ stda %l4, [%i7]ASI_BLOCK_PRIMARY_LITTLE; #endif #ifndef T_HANDLER_RAND7_5 #define T_HANDLER_RAND7_5 save %i7, %g0, %i7;\ rdpr %tnpc, %l2;\ wrpr %l2, %tpc;\ add %l2, 4, %l2;\ wrpr %l2, %tnpc;\ restore %i7, %g0, %i7;\ retry; #endif #ifndef T_HANDLER_RAND4_6 #define T_HANDLER_RAND4_6 ldda [%r31]ASI_BLOCK_AS_IF_USER_PRIMARY, %l2;\ rd %fprs, %l2; \ wr %l2, 0x4, %fprs ;\ stda %f0,[%r31]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE; #endif #ifndef T_HANDLER_RAND7_6 #define T_HANDLER_RAND7_6 umul %o4, 2, %o5;\ rdpr %tnpc, %l2;\ wrpr %l2, %tpc;\ add %l2, 4, %l2;\ wrpr %l2, %tnpc;\ stw %l2, [%i7];\ retry; #endif !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #ifndef HT_HANDLER_RAND4_1 #define HT_HANDLER_RAND4_1 mov 0x80, %l3;\ b .+12;\ stxa %l3, [%l3]0x57 ;\ nop #endif #ifndef HT_HANDLER_RAND7_1 #define HT_HANDLER_RAND7_1 b .+28;\ pdist %f4, %f4, %f20;\ nop; nop ; nop; nop; illtrap #endif #ifndef HT_HANDLER_RAND4_2 #define HT_HANDLER_RAND4_2 rdpr %tstate, %l2;\ b .+12;\ wrpr %l2, 0x800, %tstate;\ nop; #endif #ifndef HT_HANDLER_RAND7_2 #define HT_HANDLER_RAND7_2 b .+8 ;\ rdhpr %hpstate, %l2;\ b .+8 ;\ rdhpr %htstate, %l3;\ b .+12 ;\ wrhpr %l3, %r0, %htstate; nop #endif #ifndef HT_HANDLER_RAND4_3 #define HT_HANDLER_RAND4_3 stxa %l4, [%r31]ASI_AS_IF_USER_PRIMARY;\ mov 0x80, %l3;\ stxa %l3, [%l3]0x5f ;\ b .+8 ;\ ldxa [%r31]ASI_AS_IF_USER_PRIMARY, %l4; #endif #ifndef HT_HANDLER_RAND7_3 #define HT_HANDLER_RAND7_3 b .+8 ;\ rdpr %tnpc, %l2;\ and %l2, 0xfc0, %l2;\ add %i7, %l2, %l2;\ stda %f16,[%i7]ASI_BLOCK_AS_IF_USER_PRIMARY ;\ b .+8 ;\ stda %f0,[%i7]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE ; #endif #ifndef HT_HANDLER_RAND4_4 #define HT_HANDLER_RAND4_4 ldda [%i7]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE, %l3;\ b .+12 ;\ stxa %l3, [%g0]ASI_LSU_CONTROL; nop #endif #ifndef HT_HANDLER_RAND7_4 #define HT_HANDLER_RAND7_4 rdpr %tnpc, %l3;\ and %l3, 0xff, %l3;\ sllx %l3, 26, %l3;\ ldxa [%g0]0x45, %l4;\ or %l3, %l4, %l3 ;\ stxa %l3, [%g0]0x45 ;\ nop; #endif #ifndef HT_HANDLER_RAND4_5 #define HT_HANDLER_RAND4_5 ldda [%r31]ASI_NUCLEUS_QUAD_LDD, %l4;\ sdiv %l4, %l5, %l6;\ sdiv %l3, %l6, %l7;\ stda %f32, [%r31]ASI_BLOCK_PRIMARY_LITTLE; #endif #ifndef HT_HANDLER_RAND7_5 #define HT_HANDLER_RAND7_5 save %i7, %g0, %i7;\ rdpr %tnpc, %l2;\ wrpr %l2, %tpc;\ add %l2, 4, %l2;\ wrpr %l2, %tnpc;\ restore %i7, %g0, %i7;\ retry; #endif #ifndef HT_HANDLER_RAND4_6 #define HT_HANDLER_RAND4_6 ld [%r31], %l2;\ rd %fprs, %l2; \ wr %l2, 0x4, %fprs ;\ stda %f0,[%i7]ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE; #endif #ifndef HT_HANDLER_RAND7_6 #define HT_HANDLER_RAND7_6 rdhpr %htstate, %o4;\ rdpr %tnpc, %l2;\ wrpr %l2, %tpc;\ add %l2, 4, %l2;\ wrpr %l2, %tnpc;\ wrhpr %o4, %r0, %htstate;\ retry; #endif !!!!!!!!!!!!!!!!!!!!!!!!! !! Disable trap checking #define NO_TRAPCHECK ! Enable Traps #define ENABLE_T1_Privileged_Opcode_0x11 #define ENABLE_T1_Fp_Disabled_0x20 #define ENABLE_HT0_Watchdog_Reset_0x02 #define FILL_TRAP_RETRY #define SPILL_TRAP_RETRY #define CLEAN_WIN_RETRY #define My_RED_Mode_Other_Reset #define My_RED_Mode_Other_Reset \ ba red_other_ext;\ 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 ;\ jmp %g2 ;\ nop # 198 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_handlers.s" #define H_T1_Clean_Window_0x24 #define SUN_H_T1_Clean_Window_0x24 \ rdpr %cleanwin, %l1;\ add %l1,1,%l1;\ wrpr %l1, %g0, %cleanwin;\ retry; nop; nop; nop; nop #define H_T1_Clean_Window_0x25 #define SUN_H_T1_Clean_Window_0x25 \ rdpr %cleanwin, %l1;\ add %l1,1,%l1;\ wrpr %l1, %g0, %cleanwin;\ retry; nop; nop; nop; nop #define H_T1_Clean_Window_0x26 #define SUN_H_T1_Clean_Window_0x26 \ rdpr %cleanwin, %l1;\ add %l1,1,%l1;\ wrpr %l1, %g0, %cleanwin;\ retry; nop; nop; nop; nop #define H_T1_Clean_Window_0x27 #define SUN_H_T1_Clean_Window_0x27 \ rdpr %cleanwin, %l1;\ add %l1,1,%l1;\ wrpr %l1, %g0, %cleanwin;\ retry; nop; nop; nop; nop # 227 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_handlers.s" #define H_HT0_Tag_Overflow #define My_HT0_Tag_Overflow \ HT_HANDLER_RAND7_1 ;\ done #define H_T0_Tag_Overflow #define My_T0_Tag_Overflow \ T_HANDLER_RAND7_2 ;\ done #define H_T1_Tag_Overflow_0x23 #define SUN_H_T1_Tag_Overflow_0x23 \ T_HANDLER_RAND7_3 ;\ done #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-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/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 \ T_HANDLER_RAND7_5 ;\ done; #define H_T0_Trap_Instruction_1 #define My_T0_Trap_Instruction_1 \ T_HANDLER_RAND7_6 ;\ done; #define H_T0_Trap_Instruction_2 #define My_T0_Trap_Instruction_2 \ inc %o3;\ umul %o3, 2, %o4;\ ba 1f; \ save %i7, %g0, %i7; \ 2: done; \ nop; \ 1: ba 2b; \ restore %i7, %g0, %i7 #define H_T0_Trap_Instruction_3 #define My_T0_Trap_Instruction_3 \ save %i7, %g0, %i7 ;\ T_HANDLER_RAND4_5;\ stw %o4, [%i7];\ restore %i7, %g0, %i7 ;\ done #define H_T0_Trap_Instruction_4 #define My_T0_Trap_Instruction_4 \ T_HANDLER_RAND7_6 ;\ done; #define H_T0_Trap_Instruction_5 #define My_T0_Trap_Instruction_5 \ T_HANDLER_RAND4_5;\ done; #define H_T1_Trap_Instruction_0 #define My_T1_Trap_Instruction_0 \ inc %o4;\ umul %o4, 2, %o5;\ ba 3f; \ save %i7, %g0, %i7; \ 4: done; \ nop; \ 3: ba 4b; \ restore %i7, %g0, %i7 #define H_T1_Trap_Instruction_1 #define My_T1_Trap_Instruction_1 \ T_HANDLER_RAND7_3;\ done #define H_T1_Trap_Instruction_2 #define My_T1_Trap_Instruction_2 \ inc %o3;\ umul %o3, 2, %o4;\ ba 5f; \ save %i7, %g0, %i7; \ 6: done; \ nop; \ 5: ba 6b; \ restore %i7, %g0, %i7 #define H_T1_Trap_Instruction_3 #define My_T1_Trap_Instruction_3 \ T_HANDLER_RAND4_1;\ done; #define H_T1_Trap_Instruction_4 #define My_T1_Trap_Instruction_4 \ T_HANDLER_RAND7_1;\ done; #define H_T1_Trap_Instruction_5 #define My_T1_Trap_Instruction_5 \ T_HANDLER_RAND7_2;\ done #define H_HT0_Trap_Instruction_0 #define My_HT0_Trap_Instruction_0 \ HT_HANDLER_RAND4_1 ;\ done; #define H_HT0_Trap_Instruction_1 #define My_HT0_Trap_Instruction_1 \ HT_HANDLER_RAND4_3 ;\ done #define H_HT0_Trap_Instruction_2 #define My_HT0_Trap_Instruction_2 \ HT_HANDLER_RAND7_5 ;\ done; #define H_HT0_Trap_Instruction_3 #define My_HT0_Trap_Instruction_3 \ HT_HANDLER_RAND4_5 ;\ done #define H_HT0_Trap_Instruction_4 #define My_HT0_Trap_Instruction_4 \ HT_HANDLER_RAND7_4 ;\ done #define H_HT0_Trap_Instruction_5 #define My_HT0_Trap_Instruction_5 \ ba htrap_5_ext;\ nop; retry;\ nop; nop; nop; nop; nop #define H_HT0_Mem_Address_Not_Aligned_0x34 #define My_HT0_Mem_Address_Not_Aligned_0x34 \ HT_HANDLER_RAND4_2 ;\ done ; #define H_HT0_Illegal_instruction_0x10 #define My_HT0_Illegal_instruction_0x10 \ HT_HANDLER_RAND4_2 ;\ done; #define H_HT0_DAE_so_page_0x30 #define My_HT0_DAE_so_page_0x30 \ HT_HANDLER_RAND4_2;\ done; #define H_HT0_DAE_invalid_asi_0x14 #define SUN_H_HT0_DAE_invalid_asi_0x14 \ HT_HANDLER_RAND4_3 ;\ done #define H_HT0_DAE_privilege_violation_0x15 #define SUN_H_HT0_DAE_privilege_violation_0x15 \ HT_HANDLER_RAND4_4 ;\ done; #define H_HT0_Privileged_Action_0x37 #define My_HT0_Privileged_Action_0x37 \ done; \ nop; nop #define H_HT0_Lddf_Mem_Address_Not_Aligned_0x35 #define My_HT0_Lddf_Mem_Address_Not_Aligned_0x35 \ HT_HANDLER_RAND4_3 ;\ done #define H_HT0_Stdf_Mem_Address_Not_Aligned_0x36 #define My_HT0_Stdf_Mem_Address_Not_Aligned_0x36 \ HT_HANDLER_RAND7_1;\ done #define H_HT0_Fp_exception_ieee_754_0x21 #define My_HT0_Fp_exception_ieee_754_0x21 \ HT_HANDLER_RAND4_2 ;\ done #define H_HT0_Fp_exception_other_0x22 #define My_HT0_Fp_exception_other_0x22 \ HT_HANDLER_RAND7_2 ;\ done #define H_HT0_Division_By_Zero #define My_HT0_Division_By_Zero \ HT_HANDLER_RAND4_6;\ done #define H_T0_Division_By_Zero #define My_T0_Division_By_Zero \ T_HANDLER_RAND4_3;\ done #define H_T1_Division_By_Zero_0x28 #define My_H_T1_Division_By_Zero_0x28 \ T_HANDLER_RAND4_3;\ done #define H_T0_Division_By_Zero #define My_T0_Division_By_Zero\ T_HANDLER_RAND4_4 ;\ done #define H_T0_Fp_exception_ieee_754_0x21 #define My_T0_Fp_exception_ieee_754_0x21 \ T_HANDLER_RAND4_3 ;\ done #define H_T1_Fp_Exception_Ieee_754_0x21 #define My_H_T1_Fp_Exception_Ieee_754_0x21 \ T_HANDLER_RAND4_4 ;\ done #define H_T1_Fp_Exception_Other_0x22 #define My_H_T1_Fp_Exception_Other_0x22 \ T_HANDLER_RAND4_5 ;\ done #define H_T1_Privileged_Opcode_0x11 #define SUN_H_T1_Privileged_Opcode_0x11 \ T_HANDLER_RAND4_6 ;\ done #define H_HT0_Privileged_opcode_0x11 #define My_HT0_Privileged_opcode_0x11 \ HT_HANDLER_RAND4_1;\ done; #define H_HT0_Fp_disabled_0x20 #define My_HT0_Fp_disabled_0x20 \ mov 0x4, %l2 ;\ wr %l2, 0x0, %fprs ;\ sllx %l2, 10, %l3; \ rdpr %tstate, %l2;\ or %l2, %l3, %l2 ;\ stw %l2, [%i7];\ wrpr %l2, 0x0, %tstate;\ retry; #define H_T0_Fp_disabled_0x20 #define My_T0_Fp_disabled_0x20 \ mov 0x4, %l2 ;\ wr %l2, 0x0, %fprs ;\ sllx %l2, 10, %l3; \ rdpr %tstate, %l2;\ or %l2, %l3, %l2 ;\ wrpr %l2, 0x0, %tstate;\ retry; nop #define H_T1_Fp_Disabled_0x20 #define My_H_T1_Fp_Disabled_0x20 \ mov 0x4, %l2 ;\ wr %l2, 0x0, %fprs ;\ sllx %l2, 10, %l3; \ rdpr %tstate, %l2;\ or %l2, %l3, %l2 ;\ wrpr %l2, 0x0, %tstate;\ stw %l2, [%i7];\ retry #define H_HT0_Watchdog_Reset_0x02 #define My_HT0_Watchdog_Reset_0x02 \ ba wdog_2_ext;\ nop;retry;nop;nop;nop;nop;nop #define H_T0_Privileged_opcode_0x11 #define My_T0_Privileged_opcode_0x11 \ T_HANDLER_RAND4_4;\ done #define H_T1_Fp_exception_other_0x22 #define My_T1_Fp_exception_other_0x22 \ T_HANDLER_RAND7_3 ;\ done; #define H_T0_Fp_exception_other_0x22 #define My_T0_Fp_exception_other_0x22 \ T_HANDLER_RAND7_4;\ done #define H_HT0_Trap_Level_Zero_0x5f #define My_HT0_Trap_Level_Zero_0x5f \ not %g0, %r13; \ rdhpr %hpstate, %l3;\ jmp %r13;\ rdhpr %htstate, %l3;\ and %l3, 0xfe, %l3;\ wrhpr %l3, 0, %htstate;\ stw %r13, [%i7];\ retry #define My_Watchdog_Reset #define My_Watchdog_Reset \ ba wdog_red_ext;\ nop;retry;nop;nop;nop;nop;nop #define H_HT0_Control_Transfer_Instr_0x74 #define My_H_HT0_Control_Transfer_Instr_0x74 \ rdpr %tstate, %l3;\ mov 1, %l4;\ sllx %l4, 20, %l4;\ wrpr %l3, %l4, %tstate ;\ retry;nop; #define H_T0_Control_Transfer_Instr_0x74 #define My_H_T0_Control_Transfer_Instr_0x74 \ rdpr %tstate, %l3;\ mov 1, %l4;\ sllx %l4, 20, %l4;\ wrpr %l3, %l4, %tstate ;\ retry;nop; #define H_T1_Control_Transfer_Instr_0x74 #define My_H_T1_Control_Transfer_Instr_0x74 \ rdpr %tstate, %l3;\ mov 1, %l4;\ sllx %l4, 20, %l4;\ wrpr %l3, %l4, %tstate ;\ retry;nop; # 707 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/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 \ HT_HANDLER_RAND7_4;\ done #ifndef H_HT0_Data_access_error_0x32 #define H_HT0_Data_access_error_0x32 #define SUN_H_HT0_Data_access_error_0x32 \ done;nop #endif # 722 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_handlers.s" #define H_T0_VA_Watchpoint_0x62 #define My_T0_VA_Watchpoint_0x62 \ T_HANDLER_RAND7_5;\ done #define H_T1_VA_Watchpoint_0x62 #define SUN_H_T1_VA_Watchpoint_0x62 \ T_HANDLER_RAND7_3;\ done #define H_HT0_VA_Watchpoint_0x62 #define My_H_HT0_VA_Watchpoint_0x62 \ HT_HANDLER_RAND7_5;\ done #define H_HT0_Instruction_VA_Watchpoint_0x75 #define SUN_H_HT0_Instruction_VA_Watchpoint_0x75 \ done; #define H_HT0_Instruction_Breakpoint_0x76 #define SUN_H_HT0_Instruction_Breakpoint_0x76 \ rdhpr %htstate, %g1;\ wrhpr %g1, 0x400, %htstate;\ retry;nop # 748 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_handlers.s" #define H_HT0_Instruction_address_range_0x0d #define SUN_H_HT0_Instruction_address_range_0x0d \ HT_HANDLER_RAND4_1;\ done; #define H_HT0_Instruction_real_range_0x0e #define SUN_H_HT0_Instruction_real_range_0x0e \ HT_HANDLER_RAND4_1;\ done; #define H_HT0_mem_real_range_0x2d #define SUN_H_HT0_mem_real_range_0x2d \ HT_HANDLER_RAND4_2;\ done; # 764 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_handlers.s" #define H_HT0_mem_address_range_0x2e #define SUN_H_HT0_mem_address_range_0x2e \ HT_HANDLER_RAND4_3;\ done; #define H_HT0_DAE_nc_page_0x16 #define SUN_H_HT0_DAE_nc_page_0x16 \ HT_HANDLER_RAND4_4;\ done; #define H_HT0_DAE_nfo_page_0x17 #define SUN_H_HT0_DAE_nfo_page_0x17 \ HT_HANDLER_RAND4_5;\ done; # 780 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_handlers.s" #define H_HT0_IAE_unauth_access_0x0b #define SUN_H_HT0_IAE_unauth_access_0x0b \ HT_HANDLER_RAND7_3;\ done; # 786 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_handlers.s" #define H_HT0_IAE_nfo_page_0x0c #define SUN_H_HT0_IAE_nfo_page_0x0c \ HT_HANDLER_RAND7_6;\ done; # 792 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_handlers.s" #define H_HT0_Reserved_0x3b #define SUN_H_HT0_Reserved_0x3b \ mov 0x80, %l3;\ stxa %l3, [%l3]0x5f ;\ stxa %l3, [%l3]0x57 ;\ done; # 802 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_handlers.s" #define H_HT0_IAE_privilege_violation_0x08 #define My_HT0_IAE_privilege_violation_0x08 \ HT_HANDLER_RAND7_2;\ done; #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 \ mov 0x80, %l3;\ stxa %l3, [%l3]0x5f ;\ stxa %l3, [%l3]0x57 ;\ retry; #endif #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 \ mov 0x80, %l3;\ stxa %l3, [%l3]0x5f ;\ stxa %l3, [%l3]0x57 ;\ retry; #endif !!!!!!!!!!!!!!!!!!!!!! END of all handlers !!!!!!!!!!!!!!!!!!! # 12 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_intr_handlers.s" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!! START of Interrupt Handlers !!!!!!!!!!!!!!!!! #ifndef INT_HANDLER_RAND4_1 #define INT_HANDLER_RAND4_1 retry; nop; nop; nop #endif #ifndef INT_HANDLER_RAND7_1 #define INT_HANDLER_RAND7_1 mov 0x20,%g1; mov 1, %g2;stxa %g2,[%g1]0x40 #endif #ifndef INT_HANDLER_RAND4_2 #define INT_HANDLER_RAND4_2 retry; nop; nop; nop #endif #ifndef INT_HANDLER_RAND7_2 #define INT_HANDLER_RAND7_2 mov 0x80,%g1;stxa %g0,[%g1]0x40 #endif #ifndef INT_HANDLER_RAND4_3 #define INT_HANDLER_RAND4_3 retry; nop; nop; nop #endif #ifndef INT_HANDLER_RAND7_3 #define INT_HANDLER_RAND7_3 retry; nop; nop; nop ; nop; nop; nop #endif #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; \ retry;nop #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; \ retry;nop !!!!! SPU Interrupt Handlers #define H_HT0_Control_Word_Queue_Interrupt_0x3c #define My_HT0_Control_Word_Queue_Interrupt_0x3c \ INT_HANDLER_RAND7_1 ;\ retry ; #define H_HT0_Modular_Arithmetic_Interrupt_0x3d #define My_H_HT0_Modular_Arithmetic_Interrupt_0x3d \ INT_HANDLER_RAND7_2 ;\ retry ; # 59 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/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 ;\ INT_HANDLER_RAND4_1 ;\ retry; !!!!! Queue interrupt handler # 72 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_intr_handlers.s" #define H_T0_Cpu_Mondo_Trap_0x7c #define My_T0_Cpu_Mondo_Trap_0x7c \ mov 0x3c8, %g3; \ ldxa [%g3] 0x25, %g5; \ mov 0x3c0, %g3; \ stxa %g5, [%g3] 0x25; \ retry; \ nop; \ nop; \ nop #define H_T0_Dev_Mondo_Trap_0x7d #define My_T0_Dev_Mondo_Trap_0x7d \ mov 0x3d8, %g3; \ ldxa [%g3] 0x25, %g5; \ mov 0x3d0, %g3; \ stxa %g5, [%g3] 0x25; \ retry; \ nop; \ nop; \ nop #define H_T0_Resumable_Error_0x7e #define My_T0_Resumable_Error_0x7e \ mov 0x3e8, %g3; \ ldxa [%g3] 0x25, %g5; \ mov 0x3e0, %g3; \ stxa %g5, [%g3] 0x25; \ retry; \ nop; \ nop; \ nop #define H_T1_Cpu_Mondo_Trap_0x7c #define My_T1_Cpu_Mondo_Trap_0x7c \ mov 0x3c8, %g3; \ ldxa [%g3] 0x25, %g5; \ mov 0x3c0, %g3; \ stxa %g5, [%g3] 0x25; \ retry; \ nop; \ nop; \ nop #define H_T1_Dev_Mondo_Trap_0x7d #define My_T1_Dev_Mondo_Trap_0x7d \ mov 0x3d8, %g3; \ ldxa [%g3] 0x25, %g5; \ mov 0x3d0, %g3; \ stxa %g5, [%g3] 0x25; \ retry; \ nop; \ nop; \ nop #define H_T1_Resumable_Error_0x7e #define My_T1_Resumable_Error_0x7e \ mov 0x3e8, %g3; \ ldxa [%g3] 0x25, %g5; \ mov 0x3e0, %g3; \ stxa %g5, [%g3] 0x25; \ retry; \ nop; \ nop; \ nop #define H_HT0_Reserved_0x7c #define SUN_H_HT0_Reserved_0x7c \ mov 0x3c8, %g3; \ ldxa [%g3] 0x25, %g5; \ mov 0x3c0, %g3; \ stxa %g5, [%g3] 0x25; \ retry; \ nop; \ nop; \ nop #define H_HT0_Reserved_0x7d #define SUN_H_HT0_Reserved_0x7d \ mov 0x3d8, %g3; \ ldxa [%g3] 0x25, %g5; \ mov 0x3d0, %g3; \ stxa %g5, [%g3] 0x25; \ retry; \ nop; \ nop; \ nop #define H_HT0_Reserved_0x7e #define SUN_H_HT0_Reserved_0x7e \ mov 0x3e8, %g3; \ ldxa [%g3] 0x25, %g5; \ mov 0x3e0, %g3; \ stxa %g5, [%g3] 0x25; \ retry; \ nop; \ nop; \ nop # 172 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_intr_handlers.s" !!!!! Hstick-match trap handler # 175 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_intr_handlers.s" #define H_T0_Reserved_0x5e #define My_T0_Reserved_0x5e \ rdhpr %hintp, %g3; \ wrhpr %g3, %g3, %hintp; \ retry; \ nop; \ nop; \ nop; \ nop; \ nop #define H_HT0_Hstick_Match_0x5e #define My_HT0_Hstick_Match_0x5e \ rdhpr %hintp, %g3; \ wrhpr %g3, %g3, %hintp; \ retry; \ nop; \ nop; \ nop; \ nop; \ nop #define H_T0_Reserved_0x5e #define My_T0_Reserved_0x5e \ rdhpr %hintp, %g3; \ wrhpr %g3, %g3, %hintp; \ retry; \ nop; \ nop; \ nop; \ nop; \ nop #define H_T1_Reserved_0x5e #define My_T1_Reserved_0x5e \ rdhpr %hintp, %g3; \ wrhpr %g3, %g3, %hintp; \ retry; \ nop; \ nop; \ nop; \ nop; \ nop # 220 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_intr_handlers.s" !!!!! SW interuupt handlers # 223 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_intr_handlers.s" #define H_T0_Interrupt_Level_14_0x4e #define My_T0_Interrupt_Level_14_0x4e \ rd %softint, %g3; \ sethi %hi(0x14000), %g3; \ or %g3, 0x1, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_1_0x41 #define My_T0_Interrupt_Level_1_0x41 \ rd %softint, %g3; \ or %g0, 0x2, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_2_0x42 #define My_T0_Interrupt_Level_2_0x42 \ rd %softint, %g3; \ or %g0, 0x4, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_3_0x43 #define My_T0_Interrupt_Level_3_0x43 \ rd %softint, %g3; \ or %g0, 0x8, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_4_0x44 #define My_T0_Interrupt_Level_4_0x44 \ rd %softint, %g3; \ or %g0, 0x10, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_5_0x45 #define My_T0_Interrupt_Level_5_0x45 \ rd %softint, %g3; \ or %g0, 0x20, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_6_0x46 #define My_T0_Interrupt_Level_6_0x46 \ rd %softint, %g3; \ or %g0, 0x40, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_7_0x47 #define My_T0_Interrupt_Level_7_0x47 \ rd %softint, %g3; \ or %g0, 0x80, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_8_0x48 #define My_T0_Interrupt_Level_8_0x48 \ rd %softint, %g3; \ or %g0, 0x100, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_9_0x49 #define My_T0_Interrupt_Level_9_0x49 \ rd %softint, %g3; \ or %g0, 0x200, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_10_0x4a #define My_T0_Interrupt_Level_10_0x4a \ rd %softint, %g3; \ or %g0, 0x400, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_11_0x4b #define My_T0_Interrupt_Level_11_0x4b \ rd %softint, %g3; \ or %g0, 0x800, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_12_0x4c #define My_T0_Interrupt_Level_12_0x4c \ rd %softint, %g3; \ sethi %hi(0x1000), %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_13_0x4d #define My_T0_Interrupt_Level_13_0x4d \ rd %softint, %g3; \ sethi %hi(0x2000), %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T0_Interrupt_Level_15_0x4f #define My_T0_Interrupt_Level_15_0x4f \ sethi %hi(0x8000), %g3; \ wr %g3, %g0, %clear_softint; \ wr %g0, %g0, %pic;\ set 0x1ff8bfff, %g4;\ wr %g4, %g0, %pcr;\ retry; #define H_T1_Interrupt_Level_14_0x4e #define My_T1_Interrupt_Level_14_0x4e \ rd %softint, %g3; \ sethi %hi(0x14000), %g3; \ or %g3, 0x1, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_1_0x41 #define My_T1_Interrupt_Level_1_0x41 \ rd %softint, %g3; \ or %g0, 0x2, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_2_0x42 #define My_T1_Interrupt_Level_2_0x42 \ rd %softint, %g3; \ or %g0, 0x4, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_3_0x43 #define My_T1_Interrupt_Level_3_0x43 \ rd %softint, %g3; \ or %g0, 0x8, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_4_0x44 #define My_T1_Interrupt_Level_4_0x44 \ rd %softint, %g3; \ or %g0, 0x10, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_5_0x45 #define My_T1_Interrupt_Level_5_0x45 \ rd %softint, %g3; \ or %g0, 0x20, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_6_0x46 #define My_T1_Interrupt_Level_6_0x46 \ rd %softint, %g3; \ or %g0, 0x40, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_7_0x47 #define My_T1_Interrupt_Level_7_0x47 \ rd %softint, %g3; \ or %g0, 0x80, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_8_0x48 #define My_T1_Interrupt_Level_8_0x48 \ rd %softint, %g3; \ or %g0, 0x100, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_9_0x49 #define My_T1_Interrupt_Level_9_0x49 \ rd %softint, %g3; \ or %g0, 0x200, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_10_0x4a #define My_T1_Interrupt_Level_10_0x4a \ rd %softint, %g3; \ or %g0, 0x400, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_11_0x4b #define My_T1_Interrupt_Level_11_0x4b \ rd %softint, %g3; \ or %g0, 0x800, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_12_0x4c #define My_T1_Interrupt_Level_12_0x4c \ rd %softint, %g3; \ sethi %hi(0x1000), %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_13_0x4d #define My_T1_Interrupt_Level_13_0x4d \ rd %softint, %g3; \ sethi %hi(0x2000), %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_T1_Interrupt_Level_15_0x4f #define My_T1_Interrupt_Level_15_0x4f \ sethi %hi(0x8000), %g3; \ wr %g3, %g0, %clear_softint; \ wr %g0, %g0, %pic;\ set 0x1ff8bfff, %g4;\ wr %g4, %g0, %pcr;\ retry; #define H_HT0_Interrupt_Level_14_0x4e #define My_HT0_Interrupt_Level_14_0x4e \ rd %softint, %g3; \ sethi %hi(0x14000), %g3; \ or %g3, 0x1, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_1_0x41 #define My_HT0_Interrupt_Level_1_0x41 \ rd %softint, %g3; \ or %g0, 0x2, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_2_0x42 #define My_HT0_Interrupt_Level_2_0x42 \ rd %softint, %g3; \ or %g0, 0x4, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_3_0x43 #define My_HT0_Interrupt_Level_3_0x43 \ rd %softint, %g3; \ or %g0, 0x8, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_4_0x44 #define My_HT0_Interrupt_Level_4_0x44 \ rd %softint, %g3; \ or %g0, 0x10, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_5_0x45 #define My_HT0_Interrupt_Level_5_0x45 \ rd %softint, %g3; \ or %g0, 0x20, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_6_0x46 #define My_HT0_Interrupt_Level_6_0x46 \ rd %softint, %g3; \ or %g0, 0x40, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_7_0x47 #define My_HT0_Interrupt_Level_7_0x47 \ rd %softint, %g3; \ or %g0, 0x80, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_8_0x48 #define My_HT0_Interrupt_Level_8_0x48 \ rd %softint, %g3; \ or %g0, 0x100, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_9_0x49 #define My_HT0_Interrupt_Level_9_0x49 \ rd %softint, %g3; \ or %g0, 0x200, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_10_0x4a #define My_HT0_Interrupt_Level_10_0x4a \ rd %softint, %g3; \ or %g0, 0x400, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_11_0x4b #define My_HT0_Interrupt_Level_11_0x4b \ rd %softint, %g3; \ or %g0, 0x800, %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_12_0x4c #define My_HT0_Interrupt_Level_12_0x4c \ rd %softint, %g3; \ sethi %hi(0x1000), %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_13_0x4d #define My_HT0_Interrupt_Level_13_0x4d \ rd %softint, %g3; \ sethi %hi(0x2000), %g3; \ wr %g3, %g0, %clear_softint; \ retry; \ nop; \ nop; \ nop; \ nop #define H_HT0_Interrupt_Level_15_0x4f #define My_HT0_Interrupt_Level_15_0x4f \ sethi %hi(0x8000), %g3; \ wr %g3, %g0, %clear_softint; \ wr %g0, %g0, %pic;\ set 0x1ff8bfff, %g4;\ wr %g4, %g0, %pcr;\ retry; # 713 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_intr_handlers.s" !!!!!!!!!!!!!!!!!!!!!! END of all handlers !!!!!!!!!!!!!!!!!!! # 480 "diag.j" !# 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);\ wrpr %r0, %r2, %tba; \ done;nop #undef SUN_H_HT0_DAE_nfo_page_0x17 #define SUN_H_HT0_DAE_nfo_page_0x17 \ best_set_reg(0x120000, %r1, %r2);\ wrpr %r0, %r2, %tba; \ done;nop #undef SUN_H_HT0_IAE_unauth_access_0x0b #define SUN_H_HT0_IAE_unauth_access_0x0b \ set resolve_bad_tte, %g3;\ jmp %g3;\ nop #undef My_HT0_IAE_privilege_violation_0x08 #define My_HT0_IAE_privilege_violation_0x08 \ set resolve_bad_tte, %g3;\ jmp %g3;\ nop #define H_HT0_Instruction_address_range_0x0d #define SUN_H_HT0_Instruction_address_range_0x0d \ rdpr %tpc, %g1;\ rdpr %tnpc, %g2;\ stw %g1, [%i7];\ stw %g2, [%i7+4];\ jmpl %r27+8, %r27;\ fdivd %f0, %f4, %f4;\ nop; #define H_HT0_Instruction_real_range_0x0e #define SUN_H_HT0_Instruction_real_range_0x0e \ rdpr %tpc, %g1;\ rdpr %tnpc, %g2;\ stw %g1, [%i7];\ stw %g2, [%i7+4];\ jmpl %r27+8, %r27;\ fdivd %f0, %f4, %f4;\ nop; #undef SUN_H_HT0_IAE_nfo_page_0x0c #define SUN_H_HT0_IAE_nfo_page_0x0c \ set resolve_bad_tte, %g3;\ jmp %g3;\ nop #define H_HT0_Instruction_Invalid_TSB_Entry_0x2a #define SUN_H_HT0_Instruction_Invalid_TSB_Entry_0x2a \ set restore_range_regs, %g3;\ jmp %g3;\ nop #define H_HT0_Data_Invalid_TSB_Entry_0x2b #define SUN_H_HT0_Data_Invalid_TSB_Entry_0x2b \ set restore_range_regs, %g3;\ jmp %g3;\ nop #include "hboot.s" # 547 "diag.j" #define LOMEIN_TEXT_VA [0x]mpeval(MAIN_BASE_TEXT_VA&0xffffffff,16) #define LOMEIN_DATA_VA [0x]mpeval(MAIN_BASE_DATA_VA&0xffffffff,16) changequote([, ])dnl SECTION .LOMEIN TEXT_VA=LOMEIN_TEXT_VA, DATA_VA=LOMEIN_DATA_VA attr_text { Name = .LOMEIN, VA= LOMEIN_TEXT_VA, RA= MAIN_BASE_TEXT_RA, 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, tsbonly } attr_data { Name = .LOMEIN, VA= LOMEIN_DATA_VA, RA= MAIN_BASE_DATA_RA, 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, tsbonly } attr_data { Name = .LOMEIN, VA= LOMEIN_DATA_VA, RA= MAIN_BASE_DATA_RA, 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, tsbonly } .text .align 0x100000 nop .data .word 0x0 SECTION .MAIN TEXT_VA=MAIN_BASE_TEXT_VA, DATA_VA=MAIN_BASE_DATA_VA attr_text { Name = .MAIN, VA=MAIN_BASE_TEXT_VA, RA= LOMEIN_TEXT_VA, PA= LOMEIN_TEXT_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, } attr_data { Name = .MAIN, VA=MAIN_BASE_DATA_VA RA= LOMEIN_DATA_VA, PA= LOMEIN_DATA_VA, 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, } attr_data { Name = .MAIN, VA=MAIN_BASE_DATA_VA RA= LOMEIN_DATA_VA, PA= LOMEIN_DATA_VA, 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, tsbonly } attr_text { Name = .MAIN, VA=MAIN_BASE_TEXT_VA, hypervisor } attr_data { Name = .MAIN, VA=MAIN_BASE_DATA_VA hypervisor } changequote(`,')dnl' .text .global main main: ! Set up ld/st area per thread ta T_CHANGE_HPRIV ldxa [%g0]0x63, %o2 and %o2, 0x7, %o1 brnz %o1, init_start mov 0xff, %r10 lock_sync_thds: set sync_thr_counter4, %r23 #ifndef SPC and %o2, 0x38, %o2 add %o2,%r23,%r23 !Core's sync counter #endif st %r10, [%r23] !lock sync_thr_counter4 add %r23, 64, %r23 st %r10, [%r23] !lock sync_thr_counter5 add %r23, 64, %r23 st %r10, [%r23] !lock sync_thr_counter6 init_start: ta T_CHANGE_NONHPRIV umul %r9, 256, %r31 setx user_data_start, %r1, %r3 add %r31, %r3, %r31 wr %r0, 0x4, %asi !Initializing integer registers ldx [%r31+0], %r0 ldx [%r31+8], %r1 ldx [%r31+16], %r2 ldx [%r31+24], %r3 ldx [%r31+32], %r4 ldx [%r31+40], %r5 ldx [%r31+48], %r6 ldx [%r31+56], %r7 ldx [%r31+64], %r8 ldx [%r31+72], %r9 ldx [%r31+80], %r10 ldx [%r31+88], %r11 ldx [%r31+96], %r12 ldx [%r31+104], %r13 ldx [%r31+112], %r14 mov %r31, %r15 ldx [%r31+128], %r16 ldx [%r31+136], %r17 ldx [%r31+144], %r18 ldx [%r31+152], %r19 ldx [%r31+160], %r20 ldx [%r31+168], %r21 ldx [%r31+176], %r22 ldx [%r31+184], %r23 ldx [%r31+192], %r24 ldx [%r31+200], %r25 ldx [%r31+208], %r26 ldx [%r31+216], %r27 ldx [%r31+224], %r28 ldx [%r31+232], %r29 mov 0xb1, %r14 mov 0xb0, %r30 save %r31, %r0, %r31 ldx [%r31+0], %r0 ldx [%r31+8], %r1 ldx [%r31+16], %r2 ldx [%r31+24], %r3 ldx [%r31+32], %r4 ldx [%r31+40], %r5 ldx [%r31+48], %r6 ldx [%r31+56], %r7 ldx [%r31+64], %r8 ldx [%r31+72], %r9 ldx [%r31+80], %r10 ldx [%r31+88], %r11 ldx [%r31+96], %r12 ldx [%r31+104], %r13 ldx [%r31+112], %r14 mov %r31, %r15 ldx [%r31+128], %r16 ldx [%r31+136], %r17 ldx [%r31+144], %r18 ldx [%r31+152], %r19 ldx [%r31+160], %r20 ldx [%r31+168], %r21 ldx [%r31+176], %r22 ldx [%r31+184], %r23 ldx [%r31+192], %r24 ldx [%r31+200], %r25 ldx [%r31+208], %r26 ldx [%r31+216], %r27 ldx [%r31+224], %r28 ldx [%r31+232], %r29 mov 0x35, %r14 mov 0x31, %r30 save %r31, %r0, %r31 ldx [%r31+0], %r0 ldx [%r31+8], %r1 ldx [%r31+16], %r2 ldx [%r31+24], %r3 ldx [%r31+32], %r4 ldx [%r31+40], %r5 ldx [%r31+48], %r6 ldx [%r31+56], %r7 ldx [%r31+64], %r8 ldx [%r31+72], %r9 ldx [%r31+80], %r10 ldx [%r31+88], %r11 ldx [%r31+96], %r12 ldx [%r31+104], %r13 ldx [%r31+112], %r14 mov %r31, %r15 ldx [%r31+128], %r16 ldx [%r31+136], %r17 ldx [%r31+144], %r18 ldx [%r31+152], %r19 ldx [%r31+160], %r20 ldx [%r31+168], %r21 ldx [%r31+176], %r22 ldx [%r31+184], %r23 ldx [%r31+192], %r24 ldx [%r31+200], %r25 ldx [%r31+208], %r26 ldx [%r31+216], %r27 ldx [%r31+224], %r28 ldx [%r31+232], %r29 mov 0x33, %r14 mov 0xb2, %r30 save %r31, %r0, %r31 ldx [%r31+0], %r0 ldx [%r31+8], %r1 ldx [%r31+16], %r2 ldx [%r31+24], %r3 ldx [%r31+32], %r4 ldx [%r31+40], %r5 ldx [%r31+48], %r6 ldx [%r31+56], %r7 ldx [%r31+64], %r8 ldx [%r31+72], %r9 ldx [%r31+80], %r10 ldx [%r31+88], %r11 ldx [%r31+96], %r12 ldx [%r31+104], %r13 ldx [%r31+112], %r14 mov %r31, %r15 ldx [%r31+128], %r16 ldx [%r31+136], %r17 ldx [%r31+144], %r18 ldx [%r31+152], %r19 ldx [%r31+160], %r20 ldx [%r31+168], %r21 ldx [%r31+176], %r22 ldx [%r31+184], %r23 ldx [%r31+192], %r24 ldx [%r31+200], %r25 ldx [%r31+208], %r26 ldx [%r31+216], %r27 ldx [%r31+224], %r28 ldx [%r31+232], %r29 mov 0x33, %r14 mov 0x34, %r30 save %r31, %r0, %r31 ldx [%r31+0], %r0 ldx [%r31+8], %r1 ldx [%r31+16], %r2 ldx [%r31+24], %r3 ldx [%r31+32], %r4 ldx [%r31+40], %r5 ldx [%r31+48], %r6 ldx [%r31+56], %r7 ldx [%r31+64], %r8 ldx [%r31+72], %r9 ldx [%r31+80], %r10 ldx [%r31+88], %r11 ldx [%r31+96], %r12 ldx [%r31+104], %r13 ldx [%r31+112], %r14 mov %r31, %r15 ldx [%r31+128], %r16 ldx [%r31+136], %r17 ldx [%r31+144], %r18 ldx [%r31+152], %r19 ldx [%r31+160], %r20 ldx [%r31+168], %r21 ldx [%r31+176], %r22 ldx [%r31+184], %r23 ldx [%r31+192], %r24 ldx [%r31+200], %r25 ldx [%r31+208], %r26 ldx [%r31+216], %r27 ldx [%r31+224], %r28 ldx [%r31+232], %r29 mov 0xb1, %r14 mov 0xb0, %r30 save %r31, %r0, %r31 ldx [%r31+0], %r0 ldx [%r31+8], %r1 ldx [%r31+16], %r2 ldx [%r31+24], %r3 ldx [%r31+32], %r4 ldx [%r31+40], %r5 ldx [%r31+48], %r6 ldx [%r31+56], %r7 ldx [%r31+64], %r8 ldx [%r31+72], %r9 ldx [%r31+80], %r10 ldx [%r31+88], %r11 ldx [%r31+96], %r12 ldx [%r31+104], %r13 ldx [%r31+112], %r14 mov %r31, %r15 ldx [%r31+128], %r16 ldx [%r31+136], %r17 ldx [%r31+144], %r18 ldx [%r31+152], %r19 ldx [%r31+160], %r20 ldx [%r31+168], %r21 ldx [%r31+176], %r22 ldx [%r31+184], %r23 ldx [%r31+192], %r24 ldx [%r31+200], %r25 ldx [%r31+208], %r26 ldx [%r31+216], %r27 ldx [%r31+224], %r28 ldx [%r31+232], %r29 mov 0x35, %r14 mov 0xb3, %r30 save %r31, %r0, %r31 ldx [%r31+0], %r0 ldx [%r31+8], %r1 ldx [%r31+16], %r2 ldx [%r31+24], %r3 ldx [%r31+32], %r4 ldx [%r31+40], %r5 ldx [%r31+48], %r6 ldx [%r31+56], %r7 ldx [%r31+64], %r8 ldx [%r31+72], %r9 ldx [%r31+80], %r10 ldx [%r31+88], %r11 ldx [%r31+96], %r12 ldx [%r31+104], %r13 ldx [%r31+112], %r14 mov %r31, %r15 ldx [%r31+128], %r16 ldx [%r31+136], %r17 ldx [%r31+144], %r18 ldx [%r31+152], %r19 ldx [%r31+160], %r20 ldx [%r31+168], %r21 ldx [%r31+176], %r22 ldx [%r31+184], %r23 ldx [%r31+192], %r24 ldx [%r31+200], %r25 ldx [%r31+208], %r26 ldx [%r31+216], %r27 ldx [%r31+224], %r28 ldx [%r31+232], %r29 mov 0x33, %r14 mov 0xb4, %r30 save %r31, %r0, %r31 restore restore restore !Initializing float registers ldd [%r31+0], %f0 ldd [%r31+16], %f2 ldd [%r31+32], %f4 ldd [%r31+48], %f6 ldd [%r31+64], %f8 ldd [%r31+80], %f10 ldd [%r31+96], %f12 ldd [%r31+112], %f14 ldd [%r31+128], %f16 ldd [%r31+144], %f18 ldd [%r31+160], %f20 ldd [%r31+176], %f22 ldd [%r31+192], %f24 ldd [%r31+208], %f26 ldd [%r31+224], %f28 ldd [%r31+240], %f30 !! Set TPC/TNPC to diag-finish in case we get to a strange TL .. ta T_CHANGE_HPRIV setx diag_finish, %r29, %r28 add %r28, 4, %r29 wrpr %g0, 1, %tl wrpr %r28, %tpc wrpr %r29, %tnpc wrpr %g0, 2, %tl wrpr %r28, %tpc wrpr %r29, %tnpc wrpr %g0, 3, %tl wrpr %r28, %tpc wrpr %r29, %tnpc wrpr %g0, 4, %tl wrpr %r28, %tpc wrpr %r29, %tnpc wrpr %g0, 5, %tl wrpr %r28, %tpc wrpr %r29, %tnpc wrpr %g0, 6, %tl wrpr %r28, %tpc wrpr %r29, %tnpc wrpr %g0, 0, %tl !Initializing Tick Cmprs mov 1, %g2 sllx %g2, 63, %g2 or %g1, %g2, %g1 wrhpr %g1, %g0, %hsys_tick_cmpr wr %g1, %g0, %tick_cmpr wr %g1, %g0, %sys_tick_cmpr ! Set up fpr PMU traps set 0x1ff8bfff, %g2 b fork_threads wr %g2, %g0, %pcr common_target: nop sub %r27, 8, %r27 and %r27, 8, %r12 brz,a %r12, .+8 lduw [%r27], %r12 ! load jmp dest into dcache - xinval jmp %r27 .word 0xc36ae483 ! 1: PREFETCH_I prefetch [%r11 + 0x0483], #one_read nop jmp %r27 nop fork_threads: ta %icc, T_RD_THID ! fork: source strm = 0xffffffff; target strm = 0x1 cmp %o1, 0 setx fork_lbl_0_1, %g2, %g3 be,a .+8 jmp %g3 nop ! fork: source strm = 0xffffffff; target strm = 0x2 cmp %o1, 1 setx fork_lbl_0_2, %g2, %g3 be,a .+8 jmp %g3 nop ! fork: source strm = 0xffffffff; target strm = 0x4 cmp %o1, 2 setx fork_lbl_0_3, %g2, %g3 be,a .+8 jmp %g3 nop ! fork: source strm = 0xffffffff; target strm = 0x8 cmp %o1, 3 setx fork_lbl_0_4, %g2, %g3 be,a .+8 jmp %g3 nop ! fork: source strm = 0xffffffff; target strm = 0x10 cmp %o1, 4 setx fork_lbl_0_5, %g2, %g3 be,a .+8 jmp %g3 nop ! fork: source strm = 0xffffffff; target strm = 0x20 cmp %o1, 5 setx fork_lbl_0_6, %g2, %g3 be,a .+8 jmp %g3 nop ! fork: source strm = 0xffffffff; target strm = 0x40 cmp %o1, 6 setx fork_lbl_0_7, %g2, %g3 be,a .+8 jmp %g3 nop ! fork: source strm = 0xffffffff; target strm = 0x80 cmp %o1, 7 setx fork_lbl_0_8, %g2, %g3 be,a .+8 jmp %g3 nop setx join_lbl_0_0, %g1, %g2 jmp %g2 nop setx join_lbl_0_0, %g1, %g2 jmp %g2 nop fork_lbl_0_8: ta T_CHANGE_NONHPRIV br_longdelay1_80_0: .word 0x2e800001 ! 1: BVS bvs,a .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 brlez,pt %r4, skip_80_1 fbn,a,pn %fcc0, skip_80_1 .align 1024 skip_80_1: .word 0xe63fc000 ! 2: STD_R std %r19, [%r31 + %r0] nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_2 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_2: ta T_CHANGE_NONHPRIV .word 0xe7e7e012 ! 3: CASA_R casa [%r31] %asi, %r18, %r19 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_80_3: ta T_CHANGE_NONHPRIV ! macro splash_decr_80_4: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r8, [%r1] 0x45 .word 0xa781c003 ! 5: WR_GRAPHICS_STATUS_REG_R wr %r7, %r3, %- .word 0x87a9cad3 ! 6: FCMPEd fcmped %fcc, %f38, %f50 vahole_80_5: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe7e7e008 ! 7: CASA_R casa [%r31] %asi, %r8, %r19 memptr_80_6: set user_data_start, %r31 .word 0x858469a4 ! 8: WRCCR_I wr %r17, 0x09a4, %ccr .word 0x2e780001 ! 9: BPVS ceter_80_7: nop ta T_CHANGE_HPRIV mov 6, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0x93410000 ! 10: RDTICK rd %tick, %r9 splash_lsu_80_8: nop ta T_CHANGE_HPRIV set 0x0122d3c9, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 11: FBPULE fbule,a,pn %fcc0, brcommon1_80_9: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd06fe1e0 ! 1: LDSTUB_I ldstub %r8, [%r31 + 0x01e0] ba,a .+8 jmpl %r27+0, %r27 .word 0xa5a4c9a9 ! 12: FDIVs fdivs %f19, %f9, %f18 .word 0x22800001 ! 13: BE be,a pmu_80_10: nop setx 0xfffff4adfffff15b, %g1, %g7 .word 0xa3800007 ! 14: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x32780001 ! 15: BPNE pmu_80_11: nop ta T_CHANGE_PRIV setx 0xfffff777fffff177, %g1, %g7 .word 0xa3800007 ! 16: WR_PERF_COUNTER_R wr %r0, %r7, %- ibp_80_12: nop .word 0xe1bfe080 ! 17: STDFA_I stda %f16, [0x0080, %r31] ibp_80_13: nop .word 0xc1bfdf20 ! 18: STDFA_R stda %f0, [%r0, %r31] .word 0xd65fe1a0 ! 19: LDX_I ldx [%r31 + 0x01a0], %r11 .word 0xd727e175 ! 20: STF_I st %f11, [0x0175, %r31] .word 0x81580000 ! 21: FLUSHW flushw #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_14) + 8, 16, 16)) -> intp(2,0,27) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_14)&0xffffffff) + 8, 16, 16)) -> intp(2,0,27) #else setx 0x588eae60029e8a94, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_14: .word 0x39400001 ! 22: FBPUGE fbuge,a,pn %fcc0, donret_80_15: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_15-donret_80_15-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00ba549d | (0x8a << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1d06, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) done donretarg_80_15: .word 0xd6ffe014 ! 23: SWAPA_I swapa %r11, [%r31 + 0x0014] %asi set 0x346b, %l3 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT .word 0xa9b147c9 ! 24: PDIST pdistn %d36, %d40, %d20 .word 0xc1bfde00 ! 25: STDFA_R stda %f0, [%r0, %r31] pmu_80_16: nop ta T_CHANGE_PRIV setx 0xfffffe0dfffff203, %g1, %g7 .word 0xa3800007 ! 26: WR_PERF_COUNTER_R wr %r0, %r7, %- vahole_80_17: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xd09fc033 ! 27: LDDA_R ldda [%r31, %r19] 0x01, %r8 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_18)+40, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_18)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_18: .word 0xa9832e1c ! 28: WR_SET_SOFTINT_I wr %r12, 0x0e1c, %set_softint .word 0x95a0016c ! 29: FABSq dis not found donret_80_20: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_20-donret_80_20-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00727e4d | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1f9e, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (80) .word 0x3c800001 ! 1: BPOS bpos,a retry donretarg_80_20: .word 0xe2ffe044 ! 30: SWAPA_I swapa %r17, [%r31 + 0x0044] %asi splash_decr_80_21: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r8, [%r1] 0x45 .word 0xa7844004 ! 31: WR_GRAPHICS_STATUS_REG_R wr %r17, %r4, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_22) + 48, 16, 16)) -> intp(4,0,31) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_22)&0xffffffff) + 48, 16, 16)) -> intp(4,0,31) #else setx 0x7e4feb95e345bbe5, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_22: .word 0x39400001 ! 32: FBPUGE fbuge,a,pn %fcc0, memptr_80_23: set 0x60340000, %r31 .word 0x8582feba ! 33: WRCCR_I wr %r11, 0x1eba, %ccr unsupttte_80_24: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xa3b1c483 ! 34: FCMPLE32 fcmple32 %d38, %d34, %r17 brcommon3_80_25: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c02a ! 1: CASA_I casa [%r31] 0x 1, %r10, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xd2dfc02c ! 35: LDXA_R ldxa [%r31, %r12] 0x01, %r9 jmptr_80_26: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 36: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_80_27: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 37: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_80_28: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 38: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_80_29: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r9, [%r0+0x3c0] %asi .word 0x9d904012 ! 39: WRPR_WSTATE_R wrpr %r1, %r18, %wstate brcommon3_80_30: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd26fe120 ! 1: LDSTUB_I ldstub %r9, [%r31 + 0x0120] ba,a .+8 jmpl %r27+0, %r27 .word 0xd31fe190 ! 40: LDDF_I ldd [%r31, 0x0190], %f9 .word 0xd2dfe010 ! 41: LDXA_I ldxa [%r31, + 0x0010] %asi, %r9 .word 0xd327e0c5 ! 42: STF_I st %f9, [0x00c5, %r31] setx 0xb2bdae1c5098a388, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_31: .word 0x39400001 ! 43: FBPUGE fbuge,a,pn %fcc0, mondo_80_32: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r8, [%r0+0x3c0] %asi .word 0x9d928008 ! 44: WRPR_WSTATE_R wrpr %r10, %r8, %wstate ceter_80_33: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa9410000 ! 45: RDTICK rd %tick, %r20 .word 0x9194400b ! 46: WRPR_PIL_R wrpr %r17, %r11, %pil splash_tba_80_35: ta T_CHANGE_PRIV setx 0x00000000003a0000, %r11, %r12 .word 0x8b90000c ! 47: WRPR_TBA_R wrpr %r0, %r12, %tba mondo_80_36: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3e0] %asi .word 0x9d908007 ! 48: WRPR_WSTATE_R wrpr %r2, %r7, %wstate .word 0xe31fc00b ! 1: LDDF_R ldd [%r31, %r11], %f17 .word 0x9f803207 ! 49: SIR sir 0x1207 br_longdelay2_80_37: .word 0x2c800001 ! 1: BNEG bneg,a .word 0x87afca53 ! 50: FCMPd fcmpd %fcc, %f62, %f50 splash_cmpr_80_38: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 51: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_39 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_39: ta T_CHANGE_NONHPRIV .word 0xe3e7e010 ! 52: CASA_R casa [%r31] %asi, %r16, %r17 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_40)+56, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_40)&0xffffffff) +56, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_40: .word 0xa985374b ! 53: WR_SET_SOFTINT_I wr %r20, 0x174b, %set_softint jmptr_80_41: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 54: JMPL_R jmpl %r27 + %r0, %r27 donret_80_42: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_42-donret_80_42-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d10aab | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1c85, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) retry donretarg_80_42: .word 0xe26fe18c ! 55: LDSTUB_I ldstub %r17, [%r31 + 0x018c] nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_43 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_43 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_43: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 56: RDPC rd %pc, %r17 splash_hpstate_80_44: .word 0x81982d07 ! 57: WRHPR_HPSTATE_I wrhpr %r0, 0x0d07, %hpstate .word 0x3c800001 ! 1: BPOS bpos,a .word 0x8d9023b5 ! 58: WRPR_PSTATE_I wrpr %r0, 0x03b5, %pstate mondo_80_46: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r8, [%r0+0x3d0] %asi .word 0x9d940010 ! 59: WRPR_WSTATE_R wrpr %r16, %r16, %wstate mondo_80_47: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r2, [%r0+0x3e0] %asi .word 0x9d918012 ! 60: WRPR_WSTATE_R wrpr %r6, %r18, %wstate splash_hpstate_80_48: ta T_CHANGE_NONHPRIV .word 0x819836fe ! 61: WRHPR_HPSTATE_I wrhpr %r0, 0x16fe, %hpstate .word 0xd31fe078 ! 62: LDDF_I ldd [%r31, 0x0078], %f9 vahole_80_49: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xe19fe060 ! 63: LDDFA_I ldda [%r31, 0x0060], %f16 brcommon1_80_50: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c02d ! 1: CASA_I casa [%r31] 0x 1, %r13, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xa7703900 ! 64: POPC_I popc 0x1900, %r19 splash_hpstate_80_51: ta T_CHANGE_NONHPRIV .word 0x81982fc5 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x0fc5, %hpstate .word 0x8d903c42 ! 66: WRPR_PSTATE_I wrpr %r0, 0x1c42, %pstate iaw_80_53: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x80, %r16 iaw_startwait80_53: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_iaw_80_53 mov (~0x80&0xf0), %r16 ld [%r23], %r16 iaw_wait80_53: brnz %r16, iaw_wait80_53 ld [%r23], %r16 ba iaw_startwait80_53 mov 0x80, %r16 continue_iaw_80_53: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_80_53: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_80_53 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_iaw_80_53: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_iaw_80_53 ldxa [0x50]%asi, %r14 !Running_rw iaw_doit80_53: mov 0x38, %r18 iaw3_80_53: setx vahole_target0, %r20, %r19 or %r19, 0x1, %r19 stxa %r19, [%r18]0x50 stxa %r16, [0x60] %asi ! Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi ! restore %asi ta T_CHANGE_NONHPRIV .word 0xe1bfe020 ! 67: STDFA_I stda %f16, [0x0020, %r31] br_badelay1_80_54: .word 0x38800001 ! 1: BGU bgu,a .word 0xd337e0f0 ! 1: STQF_I - %f9, [0x00f0, %r31] .word 0x93b7c4cc ! 1: FCMPNE32 fcmpne32 %d62, %d12, %r9 normalw .word 0x99458000 ! 68: RD_SOFTINT_REG rd %softint, %r12 .word 0xd82fe059 ! 69: STB_I stb %r12, [%r31 + 0x0059] donret_80_55: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_55-donret_80_55-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x003096e7 | (0x8a << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xa17, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) .word 0x20800001 ! 1: BN bn,a done donretarg_80_55: .word 0xa9a409d3 ! 70: FDIVd fdivd %f16, %f50, %f20 nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_56 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_56: ta T_CHANGE_NONHPRIV .word 0xe7e7e014 ! 71: CASA_R casa [%r31] %asi, %r20, %r19 .word 0xe19fe040 ! 72: LDDFA_I ldda [%r31, 0x0040], %f16 mondo_80_57: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r8, [%r0+0x3c0] %asi .word 0x9d910014 ! 73: WRPR_WSTATE_R wrpr %r4, %r20, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe65fc000 ! 74: LDX_R ldx [%r31 + %r0], %r19 .word 0xe727c000 ! 75: STF_R st %f19, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_58 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_58: ta T_CHANGE_NONHPRIV .word 0xe7e7e010 ! 76: CASA_R casa [%r31] %asi, %r16, %r19 .word 0x2a800001 ! 77: BCS bcs,a nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe65fc000 ! 78: LDX_R ldx [%r31 + %r0], %r19 .word 0xa553c000 ! 79: RDPR_FQ donret_80_59: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_59-donret_80_59-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x000145a1 | (0x8b << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x4aa, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) done donretarg_80_59: .word 0x97a489d2 ! 80: FDIVd fdivd %f18, %f18, %f42 .word 0xda8fe1d0 ! 81: LDUBA_I lduba [%r31, + 0x01d0] %asi, %r13 .word 0xe19fdc00 ! 82: LDDFA_R ldda [%r31, %r0], %f16 change_to_randtl_80_60: ta T_CHANGE_PRIV ! macro done_change_to_randtl_80_60: .word 0x8f902000 ! 83: WRPR_TL_I wrpr %r0, 0x0000, %tl splash_cmpr_80_61: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 84: WR_STICK_CMPR_REG_R wr %r0, %r17, %- jmptr_80_62: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 85: JMPL_R jmpl %r27 + %r0, %r27 mondo_80_63: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r12, [%r0+0x3e0] %asi .word 0x9d944004 ! 86: WRPR_WSTATE_R wrpr %r17, %r4, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_64)+16, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_64)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_64: .word 0xa9826b22 ! 87: WR_SET_SOFTINT_I wr %r9, 0x0b22, %set_softint .word 0xdb37e181 ! 88: STQF_I - %f13, [0x0181, %r31] mondo_80_65: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r9, [%r0+0x3e0] %asi .word 0x9d95000a ! 89: WRPR_WSTATE_R wrpr %r20, %r10, %wstate .word 0xda0fc000 ! 90: LDUB_R ldub [%r31 + %r0], %r13 memptr_80_66: set user_data_start, %r31 .word 0x8580f087 ! 91: WRCCR_I wr %r3, 0x1087, %ccr jmptr_80_67: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 92: JMPL_R jmpl %r27 + %r0, %r27 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_80_68: ta T_CHANGE_NONPRIV ! macro otherw mov 0xb3, %r30 .word 0x83d0001e ! 94: Tcc_R te icc_or_xcc, %r0 + %r30 vahole_80_69: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xda3fe100 ! 95: STD_I std %r13, [%r31 + 0x0100] pmu_80_70: nop setx 0xfffffeaafffffd5c, %g1, %g7 .word 0xa3800007 ! 96: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_80_71: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 97: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_80_72: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 98: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_hpstate_80_73: .word 0x81982614 ! 99: WRHPR_HPSTATE_I wrhpr %r0, 0x0614, %hpstate donret_80_74: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_74-donret_80_74-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0046a92b | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x495, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) .word 0x3e800001 ! 1: BVC bvc,a retry donretarg_80_74: .word 0xda6fe0af ! 100: LDSTUB_I ldstub %r13, [%r31 + 0x00af] change_to_randtl_80_75: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_80_75: .word 0x8f902001 ! 101: WRPR_TL_I wrpr %r0, 0x0001, %tl unsupttte_80_76: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x9ba289d0 ! 102: FDIVd fdivd %f10, %f16, %f44 .word 0x8d9021a2 ! 103: WRPR_PSTATE_I wrpr %r0, 0x01a2, %pstate intveclr_80_78: nop ta T_CHANGE_HPRIV setx 0x9d75e530629b4a72, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 104: FBPLG fblg,a,pn %fcc0, donret_80_79: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_79-donret_80_79-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0006209b | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x545, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) done donretarg_80_79: .word 0xa5a449d0 ! 105: FDIVd fdivd %f48, %f16, %f18 .word 0xe4d7e0f8 ! 106: LDSHA_I ldsha [%r31, + 0x00f8] %asi, %r18 tagged_80_80: tsubcctv %r4, 0x1b77, %r4 .word 0xe407e1f8 ! 107: LDUW_I lduw [%r31 + 0x01f8], %r18 nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_81 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_81 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_81: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 108: RDPC rd %pc, %r17 splash_lsu_80_82: nop ta T_CHANGE_HPRIV set 0x612cf5e8, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 109: FBPULE fbule,a,pn %fcc0, splash_cmpr_80_83: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 110: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_htba_80_84: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 111: WRHPR_HTBA_R wrhpr %r0, %r12, %htba mondo_80_85: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3c0] %asi .word 0x9d910004 ! 112: WRPR_WSTATE_R wrpr %r4, %r4, %wstate .word 0xc1bfde00 ! 113: STDFA_R stda %f0, [%r0, %r31] .word 0xe19fd960 ! 114: LDDFA_R ldda [%r31, %r0], %f16 splash_cmpr_80_86: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 115: WR_STICK_CMPR_REG_R wr %r0, %r17, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_87)+24, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_87)&0xffffffff) +24, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_87: .word 0xa980ea7d ! 116: WR_SET_SOFTINT_I wr %r3, 0x0a7d, %set_softint brcommon3_80_88: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd137c00a ! 1: STQF_R - %f8, [%r10, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd13fc010 ! 117: STDF_R std %f8, [%r16, %r31] .word 0x29400001 ! 1: FBPL fbl,a,pn %fcc0, .word 0x8d90392d ! 118: WRPR_PSTATE_I wrpr %r0, 0x192d, %pstate .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_80_90: ta T_CHANGE_NONPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_91)+0, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_91)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_91: .word 0xa984381f ! 120: WR_SET_SOFTINT_I wr %r16, 0x181f, %set_softint splash_cmpr_80_92: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 .word 0xb3800011 ! 121: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x95a00166 ! 122: FABSq dis not found ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 123: MEMBAR membar #LoadLoad | #Lookaside splash_cmpr_80_95: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 124: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe1bfdb60 ! 125: STDFA_R stda %f16, [%r0, %r31] jmptr_80_96: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 126: JMPL_R jmpl %r27 + %r0, %r27 setx 0xc32cde87bd2830c9, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_97: .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, pmu_80_98: nop ta T_CHANGE_PRIV setx 0xffffff61fffffb59, %g1, %g7 .word 0xa3800007 ! 128: WR_PERF_COUNTER_R wr %r0, %r7, %- donret_80_99: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_99-donret_80_99-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00650d44 | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xbcd, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) done donretarg_80_99: .word 0xa5a249d4 ! 129: FDIVd fdivd %f40, %f20, %f18 pmu_80_100: nop setx 0xfffff999fffff35a, %g1, %g7 .word 0xa3800007 ! 130: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_80_101: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r13, [%r0+0x3c8] %asi .word 0x9d940012 ! 131: WRPR_WSTATE_R wrpr %r16, %r18, %wstate nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_102 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_102: ta T_CHANGE_NONHPRIV .word 0xd9e7e009 ! 132: CASA_R casa [%r31] %asi, %r9, %r12 .word 0xc1bfc2c0 ! 133: STDFA_R stda %f0, [%r0, %r31] splash_tba_80_103: ta T_CHANGE_PRIV setx 0x00000000003a0000, %r11, %r12 .word 0x8b90000c ! 134: WRPR_TBA_R wrpr %r0, %r12, %tba splash_lsu_80_104: nop ta T_CHANGE_HPRIV set 0x5802856a, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 135: FBPULE fbule,a,pn %fcc0, setx 0x7d678359671c7b48, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_105: .word 0x39400001 ! 136: FBPUGE fbuge,a,pn %fcc0, change_to_randtl_80_106: ta T_CHANGE_PRIV ! macro done_change_to_randtl_80_106: .word 0x8f902001 ! 137: WRPR_TL_I wrpr %r0, 0x0001, %tl nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_107 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_107 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610060, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_107: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 138: RDPC rd %pc, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_108)+0, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_108)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_108: .word 0xa984bbae ! 139: WR_SET_SOFTINT_I wr %r18, 0x1bae, %set_softint br_badelay1_80_109: .word 0x87afca48 ! 1: FCMPd fcmpd %fcc, %f62, %f8 .word 0xe731b970 ! 1: STQF_I - %f19, [0x1970, %r6] .word 0xda3fc00d ! 1: STD_R std %r13, [%r31 + %r13] normalw .word 0x93458000 ! 140: RD_SOFTINT_REG rd %softint, %r9 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_80_110: ta T_CHANGE_NONHPRIV ! macro vahole_80_111: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xa5a349ad ! 142: FDIVs fdivs %f13, %f13, %f18 nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_112 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_112 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100c0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_112: ta T_CHANGE_NONHPRIV .word 0x93414000 ! 143: RDPC rd %pc, %r9 .word 0xd91fe088 ! 144: LDDF_I ldd [%r31, 0x0088], %f12 setx 0xf30a0bd50a2d20db, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_113: .word 0x39400001 ! 145: FBPUGE fbuge,a,pn %fcc0, .word 0x96d40011 ! 146: UMULcc_R umulcc %r16, %r17, %r11 splash_cmpr_80_114: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 147: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_80_115: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r6, [%r0+0x3c0] %asi .word 0x9d944013 ! 148: WRPR_WSTATE_R wrpr %r17, %r19, %wstate change_to_randtl_80_116: ta T_CHANGE_PRIV ! macro done_change_to_randtl_80_116: .word 0x8f902000 ! 149: WRPR_TL_I wrpr %r0, 0x0000, %tl change_to_randtl_80_117: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_80_117: .word 0x8f902000 ! 150: WRPR_TL_I wrpr %r0, 0x0000, %tl #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_118) + 32, 16, 16)) -> intp(6,0,15) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_118)&0xffffffff) + 32, 16, 16)) -> intp(6,0,15) #else setx 0x4812c57ba3cffbb8, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_118: .word 0x39400001 ! 151: FBPUGE fbuge,a,pn %fcc0, memptr_80_119: set 0x60140000, %r31 .word 0x85807501 ! 152: WRCCR_I wr %r1, 0x1501, %ccr nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe05fc000 ! 153: LDX_R ldx [%r31 + %r0], %r16 .word 0x8d903c90 ! 154: WRPR_PSTATE_I wrpr %r0, 0x1c90, %pstate mondo_80_121: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r3, [%r0+0x3d0] %asi .word 0x9d950002 ! 155: WRPR_WSTATE_R wrpr %r20, %r2, %wstate .word 0x8d903180 ! 156: WRPR_PSTATE_I wrpr %r0, 0x1180, %pstate .word 0x91d020b2 ! 157: Tcc_I ta icc_or_xcc, %r0 + 178 setx 0x4a408fd538d922c0, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_123: .word 0x39400001 ! 158: FBPUGE fbuge,a,pn %fcc0, .word 0xc368c006 ! 159: PREFETCH_R prefetch [%r3 + %r6], #one_read fpinit_80_124: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x89a009a4 ! 160: FDIVs fdivs %f0, %f4, %f4 splash_hpstate_80_125: ta T_CHANGE_NONHPRIV .word 0x2cca8001 ! 1: BRGZ brgz,a,pt %r10, .word 0x81983cdb ! 161: WRHPR_HPSTATE_I wrhpr %r0, 0x1cdb, %hpstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe05fc000 ! 162: LDX_R ldx [%r31 + %r0], %r16 nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_126 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_126: ta T_CHANGE_NONHPRIV .word 0xe1e7e008 ! 163: CASA_R casa [%r31] %asi, %r8, %r16 nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_127 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_127: ta T_CHANGE_NONHPRIV .word 0xe1e7e009 ! 164: CASA_R casa [%r31] %asi, %r9, %r16 pmu_80_128: nop ta T_CHANGE_PRIV setx 0xfffff885fffff1c4, %g1, %g7 .word 0xa3800007 ! 165: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_80_129: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 166: WR_TICK_CMPR_REG_R wr %r0, %r17, %- ceter_80_130: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa1410000 ! 167: RDTICK rd %tick, %r16 jmptr_80_131: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 168: JMPL_R jmpl %r27 + %r0, %r27 .word 0xa96b4003 ! 169: SDIVX_R sdivx %r13, %r3, %r20 splash_cmpr_80_132: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 .word 0xb3800011 ! 170: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xd01fc000 ! 171: LDD_R ldd [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_133 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_133 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100a0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_133: ta T_CHANGE_NONHPRIV .word 0x95414000 ! 172: RDPC rd %pc, %r10 jmptr_80_134: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 173: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe09fd160 ! 174: LDDA_R ldda [%r31, %r0] 0x8b, %r16 setx 0xfc680b7c027cd3b8, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_135: .word 0x39400001 ! 175: FBPUGE fbuge,a,pn %fcc0, splash_cmpr_80_136: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 176: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe0d7e010 ! 177: LDSHA_I ldsha [%r31, + 0x0010] %asi, %r16 splash_cmpr_80_137: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 178: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_80_138: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r20, [%r0+0x3d8] %asi .word 0x9d944009 ! 179: WRPR_WSTATE_R wrpr %r17, %r9, %wstate change_to_randtl_80_139: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_80_139: .word 0x8f902000 ! 180: WRPR_TL_I wrpr %r0, 0x0000, %tl jmptr_80_140: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 181: JMPL_R jmpl %r27 + %r0, %r27 .word 0x91950001 ! 182: WRPR_PIL_R wrpr %r20, %r1, %pil donret_80_142: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_142-donret_80_142-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d66ed1 | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x596, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) retry donretarg_80_142: .word 0x93a349d0 ! 183: FDIVd fdivd %f44, %f16, %f40 .word 0xe6c7e030 ! 184: LDSWA_I ldswa [%r31, + 0x0030] %asi, %r19 .word 0xc1bfdb60 ! 185: STDFA_R stda %f0, [%r0, %r31] .word 0xe6cfe020 ! 186: LDSBA_I ldsba [%r31, + 0x0020] %asi, %r19 splash_cmpr_80_143: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 187: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x90848012 ! 188: ADDcc_R addcc %r18, %r18, %r8 ibp_80_144: nop ta T_CHANGE_NONHPRIV .word 0xe1bfe160 ! 189: STDFA_I stda %f16, [0x0160, %r31] ceter_80_145: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x9b410000 ! 190: RDTICK rd %tick, %r13 ceter_80_146: nop ta T_CHANGE_HPRIV mov 3, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x99410000 ! 191: RDTICK rd %tick, %r12 setx 0x505310280c971a5b, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_147: .word 0x39400001 ! 192: FBPUGE fbuge,a,pn %fcc0, invtsb_80_148: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 193: FBL fbl,a .word 0x97a00164 ! 194: FABSq dis not found .word 0xe6c7e140 ! 195: LDSWA_I ldswa [%r31, + 0x0140] %asi, %r19 splash_lsu_80_150: nop ta T_CHANGE_HPRIV set 0xfc7381a8, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 196: FBPULE fbule,a,pn %fcc0, .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_80_151: ta T_CHANGE_NONPRIV ! macro .word 0xe65fe040 ! 198: LDX_I ldx [%r31 + 0x0040], %r19 splash_hpstate_80_152: ta T_CHANGE_NONHPRIV .word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, .word 0x819836ac ! 199: WRHPR_HPSTATE_I wrhpr %r0, 0x16ac, %hpstate .word 0x9353c000 ! 200: RDPR_FQ .word 0xd23fe1a0 ! 1: STD_I std %r9, [%r31 + 0x01a0] .word 0x9f802e0d ! 201: SIR sir 0x0e0d mondo_80_153: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r19, [%r0+0x3c8] %asi .word 0x9d92c00b ! 202: WRPR_WSTATE_R wrpr %r11, %r11, %wstate jmptr_80_154: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 203: JMPL_R jmpl %r27 + %r0, %r27 brlez,a,pt %r8, skip_80_155 .word 0xa3b4c4d1 ! 1: FCMPNE32 fcmpne32 %d50, %d48, %r17 .align 2048 skip_80_155: .word 0x95a309c1 ! 204: FDIVd fdivd %f12, %f32, %f10 pmu_80_156: nop ta T_CHANGE_PRIV setx 0xfffff399fffff554, %g1, %g7 .word 0xa3800007 ! 205: WR_PERF_COUNTER_R wr %r0, %r7, %- setx 0x1af026848cb70185, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_157: .word 0x39400001 ! 206: FBPUGE fbuge,a,pn %fcc0, .word 0xe677e15e ! 207: STX_I stx %r19, [%r31 + 0x015e] brcommon2_80_158: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xe5110004 ! 1: LDQF_R - [%r4, %r4], %f18 ba,a .+8 jmpl %r27+0, %r27 .word 0xc1bfda00 ! 208: STDFA_R stda %f0, [%r0, %r31] .word 0xa2fc0011 ! 209: SDIVcc_R sdivcc %r16, %r17, %r17 .word 0xd897e068 ! 210: LDUHA_I lduha [%r31, + 0x0068] %asi, %r12 .word 0x3c800001 ! 211: BPOS bpos,a change_to_randtl_80_159: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_80_159: .word 0x8f902001 ! 212: WRPR_TL_I wrpr %r0, 0x0001, %tl tagged_80_160: tsubcctv %r12, 0x1b67, %r18 .word 0xd807e136 ! 213: LDUW_I lduw [%r31 + 0x0136], %r12 br_badelay1_80_161: .word 0x2d400001 ! 1: FBPG fbg,a,pn %fcc0, .word 0xd937c008 ! 1: STQF_R - %f12, [%r8, %r31] .word 0xd83fc00d ! 1: STD_R std %r12, [%r31 + %r13] normalw .word 0x97458000 ! 214: RD_SOFTINT_REG rd %softint, %r11 pmu_80_162: nop setx 0xfffff2e7fffff35d, %g1, %g7 .word 0xa3800007 ! 215: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 216: WRTICK_R wr %r0, %r17, %tick pmu_80_164: nop ta T_CHANGE_PRIV setx 0xfffff828fffffdb1, %g1, %g7 .word 0xa3800007 ! 217: WR_PERF_COUNTER_R wr %r0, %r7, %- otherw mov 0xb1, %r30 .word 0x91d0001e ! 218: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xc1bfd960 ! 219: STDFA_R stda %f0, [%r0, %r31] .word 0xe1bfda00 ! 220: STDFA_R stda %f16, [%r0, %r31] .word 0xe1bfe1a0 ! 221: STDFA_I stda %f16, [0x01a0, %r31] setx 0x6354422c1f04248f, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_165: .word 0x39400001 ! 222: FBPUGE fbuge,a,pn %fcc0, br_longdelay1_80_166: .word 0x3f400001 ! 1: FBPO fbo,a,pn %fcc0, .word 0xbfefc000 ! 223: RESTORE_R restore %r31, %r0, %r31 nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_167 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_167: ta T_CHANGE_NONHPRIV .word 0xe1e7e00a ! 224: CASA_R casa [%r31] %asi, %r10, %r16 jmptr_80_168: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 225: JMPL_R jmpl %r27 + %r0, %r27 setx 0x7a448ee32ff63e2d, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_169: .word 0x39400001 ! 226: FBPUGE fbuge,a,pn %fcc0, mondo_80_170: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3c0] %asi .word 0x9d94c012 ! 227: WRPR_WSTATE_R wrpr %r19, %r18, %wstate splash_cmpr_80_171: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 228: WR_STICK_CMPR_REG_R wr %r0, %r17, %- pmu_80_172: nop ta T_CHANGE_PRIV setx 0xfffffc30fffff793, %g1, %g7 .word 0xa3800007 ! 229: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_80_173: nop ta T_CHANGE_HPRIV set 0xaa210a65, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 230: FBPULE fbule,a,pn %fcc0, mondo_80_174: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3e0] %asi .word 0x9d95000b ! 231: WRPR_WSTATE_R wrpr %r20, %r11, %wstate memptr_80_175: set 0x60740000, %r31 .word 0x8584394b ! 232: WRCCR_I wr %r16, 0x194b, %ccr mondo_80_176: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r8, [%r0+0x3d8] %asi .word 0x9d940005 ! 233: WRPR_WSTATE_R wrpr %r16, %r5, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_177)+16, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_177)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_177: .word 0xa9842909 ! 234: WR_SET_SOFTINT_I wr %r16, 0x0909, %set_softint splash_lsu_80_178: nop ta T_CHANGE_HPRIV set 0x64460993, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 235: FBPULE fbule,a,pn %fcc0, pmu_80_179: nop setx 0xfffff10cfffffcb7, %g1, %g7 .word 0xa3800007 ! 236: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_80_180: nop ta T_CHANGE_HPRIV set 0x8bfa2101, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 237: FBPULE fbule,a,pn %fcc0, splash_cmpr_80_181: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 238: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe057e038 ! 239: LDSH_I ldsh [%r31 + 0x0038], %r16 donret_80_182: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_182-donret_80_182-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00285b06 | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x4f4, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) retry donretarg_80_182: .word 0xe0ffe0f5 ! 240: SWAPA_I swapa %r16, [%r31 + 0x00f5] %asi .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_80_183: ta T_CHANGE_NONPRIV ! macro .word 0xc1bfe060 ! 242: STDFA_I stda %f0, [0x0060, %r31] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_184)+0, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_184)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_184: .word 0xa9836751 ! 243: WR_SET_SOFTINT_I wr %r13, 0x0751, %set_softint unsupttte_80_185: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xa7b4c492 ! 244: FCMPLE32 fcmple32 %d50, %d18, %r19 .word 0x2a800001 ! 245: BCS bcs,a nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_186 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_186 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_186: ta T_CHANGE_NONHPRIV .word 0x9b414000 ! 246: RDPC rd %pc, %r13 setx 0xb1a4ed3671e52fdd, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_187: .word 0x39400001 ! 247: FBPUGE fbuge,a,pn %fcc0, pmu_80_188: nop setx 0xfffff60afffff9a8, %g1, %g7 .word 0xa3800007 ! 248: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_80_189: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 249: WR_TICK_CMPR_REG_R wr %r0, %r17, %- donret_80_190: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_190-donret_80_190-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x006f798a | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x105d, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (80) retry donretarg_80_190: .word 0x99a349d4 ! 250: FDIVd fdivd %f44, %f20, %f12 memptr_80_191: set 0x60340000, %r31 .word 0x85842357 ! 251: WRCCR_I wr %r16, 0x0357, %ccr .word 0xe49fc540 ! 252: LDDA_R ldda [%r31, %r0] 0x2a, %r18 invtsb_80_192: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 253: FBL fbl,a nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_193 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_193 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610040, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_193: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 254: RDPC rd %pc, %r20 splash_lsu_80_194: nop ta T_CHANGE_HPRIV set 0x03a4ce82, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 255: FBPULE fbule,a,pn %fcc0, .word 0xa953c000 ! 256: RDPR_FQ vahole_80_195: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xe91fe1d0 ! 257: LDDF_I ldd [%r31, 0x01d0], %f20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_196) + 8, 16, 16)) -> intp(5,0,11) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_196)&0xffffffff) + 8, 16, 16)) -> intp(5,0,11) #else setx 0xeb2b1ed40b6256bb, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_196: .word 0x39400001 ! 258: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_197 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00161fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_197: ta T_CHANGE_NONHPRIV .word 0xe9e7e00b ! 259: CASA_R casa [%r31] %asi, %r11, %r20 .word 0xe8c7e180 ! 260: LDSWA_I ldswa [%r31, + 0x0180] %asi, %r20 vahole_80_198: nop ta T_CHANGE_NONHPRIV setx vahole_target3, %r18, %r27 jmpl %r27+0, %r27 .word 0x9ba0c9d3 ! 261: FDIVd fdivd %f34, %f50, %f44 .word 0xd697e0c0 ! 262: LDUHA_I lduha [%r31, + 0x00c0] %asi, %r11 .word 0xd73fc000 ! 263: STDF_R std %f11, [%r0, %r31] .word 0xd68fe018 ! 264: LDUBA_I lduba [%r31, + 0x0018] %asi, %r11 pmu_80_199: nop setx 0xfffff2eefffffe54, %g1, %g7 .word 0xa3800007 ! 265: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 266: WRTICK_R wr %r0, %r17, %tick vahole_80_201: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xc3e90033 ! 267: PREFETCHA_R prefetcha [%r4, %r19] 0x01, #one_read .word 0x3c800001 ! 1: BPOS bpos,a .word 0x8d903fc3 ! 268: WRPR_PSTATE_I wrpr %r0, 0x1fc3, %pstate .word 0xe097e1a0 ! 269: LDUHA_I lduha [%r31, + 0x01a0] %asi, %r16 nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_203 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_203: ta T_CHANGE_NONHPRIV .word 0xe1e7e008 ! 270: CASA_R casa [%r31] %asi, %r8, %r16 .word 0xe07fe110 ! 271: SWAP_I swap %r16, [%r31 + 0x0110] .word 0x28780001 ! 272: BPLEU cwp_80_204: set user_data_start, %o7 .word 0x93902000 ! 273: WRPR_CWP_I wrpr %r0, 0x0000, %cwp pmu_80_205: nop ta T_CHANGE_PRIV setx 0xfffff25bfffffa7c, %g1, %g7 .word 0xa3800007 ! 274: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_80_206: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r11, [%r0+0x3d8] %asi .word 0x9d944010 ! 275: WRPR_WSTATE_R wrpr %r17, %r16, %wstate br_badelay3_80_207: .word 0x32800001 ! 1: BNE bne,a .word 0x34800001 ! 1: BG bg,a .word 0xa7a0054a ! 1: FSQRTd fsqrt .word 0x97a40827 ! 276: FADDs fadds %f16, %f7, %f11 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_80_208: ta T_CHANGE_NONPRIV ! macro .word 0x89800011 ! 278: WRTICK_R wr %r0, %r17, %tick mondo_80_210: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3c0] %asi .word 0x9d94c012 ! 279: WRPR_WSTATE_R wrpr %r19, %r18, %wstate donret_80_211: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_211-donret_80_211-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00f712e1 | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1542, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (80) done donretarg_80_211: .word 0xd86fe10d ! 280: LDSTUB_I ldstub %r12, [%r31 + 0x010d] donret_80_212: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_212-donret_80_212-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0024b52e | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1946, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (80) retry donretarg_80_212: .word 0xa1a509d0 ! 281: FDIVd fdivd %f20, %f16, %f16 brcommon1_80_213: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xe9e7c033 ! 1: CASA_I casa [%r31] 0x 1, %r19, %r20 ba,a .+8 jmpl %r27+0, %r27 .word 0xa5b047d3 ! 282: PDIST pdistn %d32, %d50, %d18 .word 0xe19fe0a0 ! 283: LDDFA_I ldda [%r31, 0x00a0], %f16 .word 0x8d903583 ! 284: WRPR_PSTATE_I wrpr %r0, 0x1583, %pstate splash_cmpr_80_215: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 285: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_80_216: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 286: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_80_217: ta T_CHANGE_NONPRIV ! macro .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, .word 0x8d9032f1 ! 288: WRPR_PSTATE_I wrpr %r0, 0x12f1, %pstate splash_lsu_80_219: nop ta T_CHANGE_HPRIV set 0xbc6b92d9, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 289: FBPULE fbule,a,pn %fcc0, donret_80_220: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_220-donret_80_220-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x004f9e37 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x60f, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) .word 0x24800001 ! 1: BLE ble,a retry donretarg_80_220: .word 0xd66fe013 ! 290: LDSTUB_I ldstub %r11, [%r31 + 0x0013] .word 0x91d02034 ! 291: Tcc_I ta icc_or_xcc, %r0 + 52 setx 0x626ac130b112b3ec, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_221: .word 0x39400001 ! 292: FBPUGE fbuge,a,pn %fcc0, brcommon3_80_222: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd737e050 ! 1: STQF_I - %f11, [0x0050, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd6bfc034 ! 293: STDA_R stda %r11, [%r31 + %r20] 0x01 .word 0xd6d7e140 ! 294: LDSHA_I ldsha [%r31, + 0x0140] %asi, %r11 pmu_80_223: nop ta T_CHANGE_PRIV setx 0xffffff84fffffe8a, %g1, %g7 .word 0xa3800007 ! 295: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x9ba00161 ! 296: FABSq dis not found #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_225)+48, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_225)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_225: .word 0xa98435d8 ! 297: WR_SET_SOFTINT_I wr %r16, 0x15d8, %set_softint memptr_80_226: set 0x60740000, %r31 .word 0x8583352e ! 298: WRCCR_I wr %r12, 0x152e, %ccr mondo_80_227: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3d8] %asi .word 0x9d948001 ! 299: WRPR_WSTATE_R wrpr %r18, %r1, %wstate .word 0xd297e1c8 ! 300: LDUHA_I lduha [%r31, + 0x01c8] %asi, %r9 vahole_80_228: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xa9702953 ! 301: POPC_I popc 0x0953, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_229)+0, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_229)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_229: .word 0xa982329e ! 302: WR_SET_SOFTINT_I wr %r8, 0x129e, %set_softint .word 0x8d902ca1 ! 303: WRPR_PSTATE_I wrpr %r0, 0x0ca1, %pstate vahole_80_231: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xe8dfc028 ! 304: LDXA_R ldxa [%r31, %r8] 0x01, %r20 trapasi_80_232: nop mov 0x8, %r1 ! (VA for ASI 0x4c) .word 0xe8d04980 ! 305: LDSHA_R ldsha [%r1, %r0] 0x4c, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_233)+0, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_233)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_233: .word 0xa981bbda ! 306: WR_SET_SOFTINT_I wr %r6, 0x1bda, %set_softint #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_234) + 16, 16, 16)) -> intp(6,0,23) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_234)&0xffffffff) + 16, 16, 16)) -> intp(6,0,23) #else setx 0xcfc79531950ccb6b, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_234: .word 0x39400001 ! 307: FBPUGE fbuge,a,pn %fcc0, .word 0xe83fc000 ! 308: STD_R std %r20, [%r31 + %r0] pmu_80_235: nop ta T_CHANGE_PRIV setx 0xfffff3e2fffffeec, %g1, %g7 .word 0xa3800007 ! 309: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_236 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_236 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610010, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_236: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 310: RDPC rd %pc, %r19 nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_237 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_237: ta T_CHANGE_NONHPRIV .word 0xd1e7e011 ! 311: CASA_R casa [%r31] %asi, %r17, %r8 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_80_238: ta T_CHANGE_NONPRIV ! macro nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_239 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_239: ta T_CHANGE_NONHPRIV .word 0xd1e7e009 ! 313: CASA_R casa [%r31] %asi, %r9, %r8 .word 0xc32fc00d ! 1: STXFSR_R st-sfr %f1, [%r13, %r31] .word 0x9f802c42 ! 314: SIR sir 0x0c42 .word 0x91d020b4 ! 315: Tcc_I ta icc_or_xcc, %r0 + 180 splash_cmpr_80_240: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 316: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_80_241: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r1, [%r0+0x3c8] %asi .word 0x9d904007 ! 317: WRPR_WSTATE_R wrpr %r1, %r7, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xd05fc000 ! 318: LDX_R ldx [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_242 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_242: ta T_CHANGE_NONHPRIV .word 0xd1e7e009 ! 319: CASA_R casa [%r31] %asi, %r9, %r8 br_longdelay1_80_243: .word 0x36800001 ! 1: BGE bge,a .word 0xbfefc000 ! 320: RESTORE_R restore %r31, %r0, %r31 splash_cmpr_80_244: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 321: WR_STICK_CMPR_REG_R wr %r0, %r17, %- pmu_80_245: nop ta T_CHANGE_PRIV setx 0xfffff785fffff7c7, %g1, %g7 .word 0xa3800007 ! 322: WR_PERF_COUNTER_R wr %r0, %r7, %- pmu_80_246: nop setx 0xfffff405fffff3cd, %g1, %g7 .word 0xa3800007 ! 323: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xd127c000 ! 324: STF_R st %f8, [%r0, %r31] .word 0x89800011 ! 325: WRTICK_R wr %r0, %r17, %tick .word 0xa1a00171 ! 326: FABSq dis not found mondo_80_249: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r2, [%r0+0x3e8] %asi .word 0x9d904013 ! 327: WRPR_WSTATE_R wrpr %r1, %r19, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_250) + 24, 16, 16)) -> intp(5,0,15) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_250)&0xffffffff) + 24, 16, 16)) -> intp(5,0,15) #else setx 0x7b5d3b618b516345, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_250: .word 0x39400001 ! 328: FBPUGE fbuge,a,pn %fcc0, donret_80_251: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_251-donret_80_251-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00a2ddc9 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xac5, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (80) .word 0x22800001 ! 1: BE be,a done donretarg_80_251: .word 0x91a209d4 ! 329: FDIVd fdivd %f8, %f20, %f8 .word 0xd4c7e158 ! 330: LDSWA_I ldswa [%r31, + 0x0158] %asi, %r10 .word 0xc1bfe140 ! 331: STDFA_I stda %f0, [0x0140, %r31] nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xd45fc000 ! 332: LDX_R ldx [%r31 + %r0], %r10 br_badelay3_80_252: .word 0x20800001 ! 1: BN bn,a .word 0x897af0b9 ! Random illegal ? .word 0x95a00554 ! 1: FSQRTd fsqrt .word 0x9ba4c82a ! 333: FADDs fadds %f19, %f10, %f13 splash_hpstate_80_253: .word 0x3a800001 ! 1: BCC bcc,a .word 0x81982c56 ! 334: WRHPR_HPSTATE_I wrhpr %r0, 0x0c56, %hpstate mondo_80_254: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3c0] %asi .word 0x9d94000b ! 335: WRPR_WSTATE_R wrpr %r16, %r11, %wstate .word 0xe33fc010 ! 1: STDF_R std %f17, [%r16, %r31] .word 0x9f802e60 ! 336: SIR sir 0x0e60 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_80_255: ta T_CHANGE_NONHPRIV ! macro .word 0xe277e1a6 ! 338: STX_I stx %r17, [%r31 + 0x01a6] pmu_80_256: nop ta T_CHANGE_PRIV setx 0xfffff715fffff641, %g1, %g7 .word 0xa3800007 ! 339: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xe327c000 ! 340: STF_R st %f17, [%r0, %r31] otherw mov 0x32, %r30 .word 0x91d0001e ! 341: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xe227e188 ! 342: STW_I stw %r17, [%r31 + 0x0188] setx 0xccc14dd6b57aa4f9, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_257: .word 0x39400001 ! 343: FBPUGE fbuge,a,pn %fcc0, jmptr_80_258: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 344: JMPL_R jmpl %r27 + %r0, %r27 donret_80_259: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_259-donret_80_259-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x009de0b3 | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1c1b, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) .word 0x3a800001 ! 1: BCC bcc,a done donretarg_80_259: .word 0x95a409c3 ! 345: FDIVd fdivd %f16, %f34, %f10 jmptr_80_260: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 346: JMPL_R jmpl %r27 + %r0, %r27 .word 0xa9a00165 ! 347: FABSq dis not found .word 0xa4c4b62b ! 348: ADDCcc_I addccc %r18, 0xfffff62b, %r18 mondo_80_262: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3e8] %asi .word 0x9d94c006 ! 349: WRPR_WSTATE_R wrpr %r19, %r6, %wstate .word 0x2c800001 ! 1: BNEG bneg,a .word 0x8d903e6f ! 350: WRPR_PSTATE_I wrpr %r0, 0x1e6f, %pstate .word 0xe19fe080 ! 351: LDDFA_I ldda [%r31, 0x0080], %f16 .word 0x89800011 ! 352: WRTICK_R wr %r0, %r17, %tick .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_80_265: ta T_CHANGE_NONHPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_266) + 40, 16, 16)) -> intp(1,0,23) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_266)&0xffffffff) + 40, 16, 16)) -> intp(1,0,23) #else setx 0xf808d178c2f0f615, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_266: .word 0x39400001 ! 354: FBPUGE fbuge,a,pn %fcc0, vahole_80_267: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe69fe090 ! 355: LDDA_I ldda [%r31, + 0x0090] %asi, %r19 .word 0xc19fe180 ! 356: LDDFA_I ldda [%r31, 0x0180], %f0 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_268)+40, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_268)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_268: .word 0xa9816d7c ! 357: WR_SET_SOFTINT_I wr %r5, 0x0d7c, %set_softint setx 0xb39735ff13694140, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_269: .word 0x39400001 ! 358: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_270 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_270 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610060, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_270: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 359: RDPC rd %pc, %r17 .word 0x89800011 ! 360: WRTICK_R wr %r0, %r17, %tick br_longdelay1_80_272: .word 0x38800001 ! 1: BGU bgu,a .word 0xbfefc000 ! 361: RESTORE_R restore %r31, %r0, %r31 fpinit_80_273: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0xc3e8376b ! 362: PREFETCHA_I prefetcha [%r0, + 0xfffff76b] %asi, #one_read jmptr_80_274: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 363: JMPL_R jmpl %r27 + %r0, %r27 ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 364: MEMBAR membar #LoadLoad | #Lookaside intveclr_80_276: nop ta T_CHANGE_HPRIV setx 0x7c4b67a3577f2b7e, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 365: FBPLG fblg,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_277 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_277 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_277: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 366: RDPC rd %pc, %r16 brcommon3_80_278: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd937c012 ! 1: STQF_R - %f12, [%r18, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd89fc02d ! 367: LDDA_R ldda [%r31, %r13] 0x01, %r12 .word 0xd827e084 ! 368: STW_I stw %r12, [%r31 + 0x0084] .word 0xd8c7e158 ! 369: LDSWA_I ldswa [%r31, + 0x0158] %asi, %r12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_279)+16, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_279)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_279: .word 0xa981e3d7 ! 370: WR_SET_SOFTINT_I wr %r7, 0x03d7, %set_softint nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_280 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_280 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_280: ta T_CHANGE_NONHPRIV .word 0x93414000 ! 371: RDPC rd %pc, %r9 .word 0xd4cfe058 ! 372: LDSBA_I ldsba [%r31, + 0x0058] %asi, %r10 splash_cmpr_80_281: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 373: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_282 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00161fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_282: ta T_CHANGE_NONHPRIV .word 0xd5e7e012 ! 374: CASA_R casa [%r31] %asi, %r18, %r10 br_badelay2_80_283: .word 0x93a509c6 ! 1: FDIVd fdivd %f20, %f6, %f40 pdist %f22, %f4, %f22 .word 0x91b14310 ! 375: ALIGNADDRESS alignaddr %r5, %r16, %r8 .word 0xc19fe000 ! 376: LDDFA_I ldda [%r31, 0x0000], %f0 .word 0xd43fc00c ! 1: STD_R std %r10, [%r31 + %r12] .word 0x9f802373 ! 377: SIR sir 0x0373 .word 0xc1bfdc00 ! 378: STDFA_R stda %f0, [%r0, %r31] .word 0x98dc0012 ! 379: SMULcc_R smulcc %r16, %r18, %r12 fbge skip_80_284 fbn skip_80_284 .align 2048 skip_80_284: .word 0xe83fc000 ! 380: STD_R std %r20, [%r31 + %r0] nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_285 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_285 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_285: ta T_CHANGE_NONHPRIV .word 0xa5414000 ! 381: RDPC rd %pc, %r18 brcommon3_80_286: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xdb37c010 ! 1: STQF_R - %f13, [%r16, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xdbe7e00b ! 382: CASA_R casa [%r31] %asi, %r11, %r13 .word 0x28800001 ! 383: BLEU bleu,a iaw_80_287: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x80, %r16 iaw_startwait80_287: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_iaw_80_287 mov (~0x80&0xf0), %r16 ld [%r23], %r16 iaw_wait80_287: brnz %r16, iaw_wait80_287 ld [%r23], %r16 ba iaw_startwait80_287 mov 0x80, %r16 continue_iaw_80_287: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_80_287: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_80_287 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_iaw_80_287: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_iaw_80_287 ldxa [0x50]%asi, %r14 !Running_rw iaw_doit80_287: mov 0x38, %r18 iaw4_80_287: setx common_target, %r20, %r19 or %r19, 0x1, %r19 stxa %r19, [%r18]0x50 stxa %r16, [0x60] %asi ! Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi ! restore %asi ta T_CHANGE_NONHPRIV .word 0xdb1fe190 ! 384: LDDF_I ldd [%r31, 0x0190], %f13 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_288) + 56, 16, 16)) -> intp(1,0,10) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_288)&0xffffffff) + 56, 16, 16)) -> intp(1,0,10) #else setx 0xda0a01bf0f0d69dc, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_288: .word 0x39400001 ! 385: FBPUGE fbuge,a,pn %fcc0, tagged_80_289: taddcctv %r5, 0x1618, %r18 .word 0xda07e110 ! 386: LDUW_I lduw [%r31 + 0x0110], %r13 ibp_80_290: nop .word 0xc1bfda00 ! 387: STDFA_R stda %f0, [%r0, %r31] cwp_80_291: set user_data_start, %o7 .word 0x93902007 ! 388: WRPR_CWP_I wrpr %r0, 0x0007, %cwp pmu_80_292: nop ta T_CHANGE_PRIV setx 0xfffff483fffff2d9, %g1, %g7 .word 0xa3800007 ! 389: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_80_293: ta T_CHANGE_NONPRIV ! macro ceter_80_294: nop ta T_CHANGE_HPRIV mov 3, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0x97410000 ! 391: RDTICK rd %tick, %r11 cwp_80_295: set user_data_start, %o7 .word 0x93902003 ! 392: WRPR_CWP_I wrpr %r0, 0x0003, %cwp splash_lsu_80_296: nop ta T_CHANGE_HPRIV set 0xff34dc49, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 393: FBPULE fbule,a,pn %fcc0, intveclr_80_297: nop ta T_CHANGE_HPRIV setx 0xd48d4d471b443b9f, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 394: FBPLG fblg,a,pn %fcc0, nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe25fc000 ! 395: LDX_R ldx [%r31 + %r0], %r17 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_80_298: ta T_CHANGE_NONPRIV ! macro dvapa_80_299: nop ta T_CHANGE_HPRIV mov 0x908, %r20 mov 0xc, %r19 sllx %r20, 23, %r20 or %r19, %r20, %r19 stxa %r19, [%g0] ASI_LSU_CONTROL mov 0x38, %r18 stxa %r31, [%r18]0x58 ta T_CHANGE_NONHPRIV .word 0xe31fe1e0 ! 397: LDDF_I ldd [%r31, 0x01e0], %f17 mondo_80_300: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r9, [%r0+0x3c0] %asi .word 0x9d914013 ! 398: WRPR_WSTATE_R wrpr %r5, %r19, %wstate .word 0xe19fc2c0 ! 399: LDDFA_R ldda [%r31, %r0], %f16 splash_decr_80_301: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r8, [%r1] 0x45 .word 0xa7850013 ! 400: WR_GRAPHICS_STATUS_REG_R wr %r20, %r19, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_302) + 40, 16, 16)) -> intp(0,0,5) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_302)&0xffffffff) + 40, 16, 16)) -> intp(0,0,5) #else setx 0x2ca8add2c77b2524, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_302: .word 0x39400001 ! 401: FBPUGE fbuge,a,pn %fcc0, brcommon2_80_303: nop setx common_target, %r12, %r27 ba,a .+12 .word 0x9ba00546 ! 1: FSQRTd fsqrt ba,a .+8 jmpl %r27+0, %r27 .word 0xe19fda00 ! 402: LDDFA_R ldda [%r31, %r0], %f16 nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_304 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_304: ta T_CHANGE_NONHPRIV .word 0xd3e7e011 ! 403: CASA_R casa [%r31] %asi, %r17, %r9 pmu_80_305: nop setx 0xfffffd78fffffe42, %g1, %g7 .word 0xa3800007 ! 404: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_80_306: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 405: JMPL_R jmpl %r27 + %r0, %r27 .word 0x89800011 ! 406: WRTICK_R wr %r0, %r17, %tick #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_308) + 0, 16, 16)) -> intp(3,0,9) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_308)&0xffffffff) + 0, 16, 16)) -> intp(3,0,9) #else setx 0xfdef7f71976709a2, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_308: .word 0x39400001 ! 407: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_80_309: .word 0x819838df ! 408: WRHPR_HPSTATE_I wrhpr %r0, 0x18df, %hpstate br_badelay2_80_310: .word 0xa5a4c9c3 ! 1: FDIVd fdivd %f50, %f34, %f18 pdist %f2, %f16, %f24 .word 0x99b44306 ! 409: ALIGNADDRESS alignaddr %r17, %r6, %r12 splash_cmpr_80_311: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 410: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x80, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_80_312 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_80_312: ta T_CHANGE_NONHPRIV .word 0xe5e7e014 ! 411: CASA_R casa [%r31] %asi, %r20, %r18 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_313)+16, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_313)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_313: .word 0xa9842d89 ! 412: WR_SET_SOFTINT_I wr %r16, 0x0d89, %set_softint memptr_80_314: set 0x60740000, %r31 .word 0x8582aae7 ! 413: WRCCR_I wr %r10, 0x0ae7, %ccr .word 0x91944005 ! 414: WRPR_PIL_R wrpr %r17, %r5, %pil .word 0xe4dfc034 ! 1: LDXA_R ldxa [%r31, %r20] 0x01, %r18 .word 0x9f802647 ! 415: SIR sir 0x0647 nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_316 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_316 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_316: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 416: RDPC rd %pc, %r11 intveclr_80_317: nop ta T_CHANGE_HPRIV setx 0xa93bf5bf27573783, %r1, %r28 stxa %r28, [%g0] 0x72 ta T_CHANGE_NONHPRIV .word 0x25400001 ! 417: FBPLG fblg,a,pn %fcc0, splash_cmpr_80_318: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 418: WR_TICK_CMPR_REG_R wr %r0, %r17, %- setx 0x0865abc4825f0c7e, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_319: .word 0x39400001 ! 419: FBPUGE fbuge,a,pn %fcc0, .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_80_320: ta T_CHANGE_NONHPRIV ! macro mondo_80_321: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r19, [%r0+0x3d8] %asi .word 0x9d94c005 ! 421: WRPR_WSTATE_R wrpr %r19, %r5, %wstate splash_lsu_80_322: nop ta T_CHANGE_HPRIV set 0xcc05f1ea, %r2 mov 0x1, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 422: FBPULE fbule,a,pn %fcc0, .word 0x3a780001 ! 423: BPCC .word 0xda3fe0f1 ! 424: STD_I std %r13, [%r31 + 0x00f1] .word 0x91d02035 ! 425: Tcc_I ta icc_or_xcc, %r0 + 53 otherw mov 0x32, %r30 .word 0x91d0001e ! 426: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0x8d903035 ! 427: WRPR_PSTATE_I wrpr %r0, 0x1035, %pstate br_badelay2_80_324: .word 0x32800001 ! 1: BNE bne,a allclean .word 0x93b18307 ! 428: ALIGNADDRESS alignaddr %r6, %r7, %r9 vahole_80_325: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xd697c034 ! 429: LDUHA_R lduha [%r31, %r20] 0x01, %r11 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_80_326) + 56, 16, 16)) -> intp(5,0,9) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_80_326)&0xffffffff) + 56, 16, 16)) -> intp(5,0,9) #else setx 0x9a423153b99dc8ab, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_80_326: .word 0x39400001 ! 430: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_80_327: ta T_CHANGE_NONHPRIV .word 0x8198378f ! 431: WRHPR_HPSTATE_I wrhpr %r0, 0x178f, %hpstate splash_htba_80_328: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 432: WRHPR_HTBA_R wrhpr %r0, %r12, %htba .word 0xd607c000 ! 433: LDUW_R lduw [%r31 + %r0], %r11 .word 0x93b44549 ! 434: FCMPEQ16 fcmpeq16 %d48, %d40, %r9 donret_80_329: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_329-donret_80_329-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00230d52 | (0x8b << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xf0f, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (80) done donretarg_80_329: .word 0xd8ffe1a2 ! 435: SWAPA_I swapa %r12, [%r31 + 0x01a2] %asi .word 0x91a18d26 ! 436: FsMULd fsmuld %f6, %f6, %f8 splash_tba_80_330: ta T_CHANGE_PRIV setx 0x00000000003a0000, %r11, %r12 .word 0x8b90000c ! 437: WRPR_TBA_R wrpr %r0, %r12, %tba nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe25fc000 ! 438: LDX_R ldx [%r31 + %r0], %r17 nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe25fc000 ! 439: LDX_R ldx [%r31 + %r0], %r17 donret_80_331: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_331-donret_80_331-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00e03399 | (0x8a << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x14f, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (80) .word 0x32800001 ! 1: BNE bne,a done donretarg_80_331: .word 0xe26fe03e ! 440: LDSTUB_I ldstub %r17, [%r31 + 0x003e] donret_80_332: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_332-donret_80_332-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x008ed0e5 | (4 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1714, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) retry donretarg_80_332: .word 0xa1a209c9 ! 441: FDIVd fdivd %f8, %f40, %f16 setx 0x763ca5ba3fcbcd89, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_80_333: .word 0x39400001 ! 442: FBPUGE fbuge,a,pn %fcc0, .word 0xe88fe000 ! 443: LDUBA_I lduba [%r31, + 0x0000] %asi, %r20 .word 0xe937e021 ! 444: STQF_I - %f20, [0x0021, %r31] ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 445: MEMBAR membar #LoadLoad | #Lookaside iaw_80_335: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x80, %r16 iaw_startwait80_335: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_iaw_80_335 mov (~0x80&0xf0), %r16 ld [%r23], %r16 iaw_wait80_335: brnz %r16, iaw_wait80_335 ld [%r23], %r16 ba iaw_startwait80_335 mov 0x80, %r16 continue_iaw_80_335: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_80_335: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_80_335 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_iaw_80_335: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_iaw_80_335 ldxa [0x50]%asi, %r14 !Running_rw iaw_doit80_335: mov 0x38, %r18 iaw4_80_335: setx common_target, %r20, %r19 or %r19, 0x1, %r19 stxa %r19, [%r18]0x50 stxa %r16, [0x60] %asi ! Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi ! restore %asi ta T_CHANGE_NONHPRIV .word 0xa7a089a3 ! 446: FDIVs fdivs %f2, %f3, %f19 brcommon2_80_336: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xd512c011 ! 1: LDQF_R - [%r11, %r17], %f10 ba,a .+8 jmpl %r27+0, %r27 .word 0xe1bfdc00 ! 447: STDFA_R stda %f16, [%r0, %r31] .word 0xa24d0012 ! 448: MULX_R mulx %r20, %r18, %r17 splash_lsu_80_337: nop ta T_CHANGE_HPRIV set 0xadcd0119, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 449: FBPULE fbule,a,pn %fcc0, mondo_80_338: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3d8] %asi .word 0x9d914006 ! 450: WRPR_WSTATE_R wrpr %r5, %r6, %wstate .word 0x89800011 ! 451: WRTICK_R wr %r0, %r17, %tick splash_hpstate_80_340: ta T_CHANGE_NONHPRIV .word 0x24800001 ! 1: BLE ble,a .word 0x81982c0d ! 452: WRHPR_HPSTATE_I wrhpr %r0, 0x0c0d, %hpstate pmu_80_341: nop ta T_CHANGE_PRIV setx 0xfffff421fffffdb8, %g1, %g7 .word 0xa3800007 ! 453: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x91d02033 ! 454: Tcc_I ta icc_or_xcc, %r0 + 51 .word 0x9ba309ad ! 455: FDIVs fdivs %f12, %f13, %f13 .word 0xe73fc000 ! 456: STDF_R std %f19, [%r0, %r31] cwp_80_342: set user_data_start, %o7 .word 0x93902000 ! 457: WRPR_CWP_I wrpr %r0, 0x0000, %cwp jmptr_80_343: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 458: JMPL_R jmpl %r27 + %r0, %r27 jmptr_80_344: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 459: JMPL_R jmpl %r27 + %r0, %r27 jmptr_80_345: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 460: JMPL_R jmpl %r27 + %r0, %r27 iaw_80_346: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x80, %r16 iaw_startwait80_346: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_iaw_80_346 mov (~0x80&0xf0), %r16 ld [%r23], %r16 iaw_wait80_346: brnz %r16, iaw_wait80_346 ld [%r23], %r16 ba iaw_startwait80_346 mov 0x80, %r16 continue_iaw_80_346: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_80_346: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_80_346 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_iaw_80_346: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_iaw_80_346 ldxa [0x50]%asi, %r14 !Running_rw iaw_doit80_346: mov 0x38, %r18 iaw1_80_346: best_set_reg(0x00000000e0a00000, %r20, %r19) or %r19, 0x1, %r19 stxa %r19, [%r18]0x50 stxa %r16, [0x60] %asi ! Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi ! restore %asi ta T_CHANGE_NONHPRIV .word 0xe71fe120 ! 461: LDDF_I ldd [%r31, 0x0120], %f19 brcommon1_80_347: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xa77020d0 ! 1: POPC_I popc 0x00d0, %r19 ba,a .+8 jmpl %r27+0, %r27 .word 0x99b0c7cb ! 462: PDIST pdistn %d34, %d42, %d12 .word 0x89800011 ! 463: WRTICK_R wr %r0, %r17, %tick ceter_80_349: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x99410000 ! 464: RDTICK rd %tick, %r12 splash_cmpr_80_350: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 465: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xa0840014 ! 466: ADDcc_R addcc %r16, %r20, %r16 .word 0xd28008a0 ! 467: LDUWA_R lduwa [%r0, %r0] 0x45, %r9 memptr_80_351: set user_data_start, %r31 .word 0x8580b2d4 ! 468: WRCCR_I wr %r2, 0x12d4, %ccr .word 0xd27fe120 ! 469: SWAP_I swap %r9, [%r31 + 0x0120] .word 0x93b7c489 ! 1: FCMPLE32 fcmple32 %d62, %d40, %r9 .word 0x9f802212 ! 470: SIR sir 0x0212 .word 0x91924006 ! 471: WRPR_PIL_R wrpr %r9, %r6, %pil .word 0x28780001 ! 472: BPLEU jmptr_80_353: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 473: JMPL_R jmpl %r27 + %r0, %r27 iaw_80_354: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x80, %r16 iaw_startwait80_354: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_iaw_80_354 mov (~0x80&0xf0), %r16 ld [%r23], %r16 iaw_wait80_354: brnz %r16, iaw_wait80_354 ld [%r23], %r16 ba iaw_startwait80_354 mov 0x80, %r16 continue_iaw_80_354: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_80_354: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_80_354 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_iaw_80_354: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_iaw_80_354 ldxa [0x50]%asi, %r14 !Running_rw iaw_doit80_354: mov 0x38, %r18 iaw1_80_354: best_set_reg(0x00000000e1a00000, %r20, %r19) or %r19, 0x1, %r19 stxa %r19, [%r18]0x50 stxa %r16, [0x60] %asi ! Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi ! restore %asi ta T_CHANGE_NONHPRIV .word 0x99a289d1 ! 474: FDIVd fdivd %f10, %f48, %f12 unsupttte_80_355: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x87aaca51 ! 475: FCMPd fcmpd %fcc, %f42, %f48 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_80_356)+8, 16, 16)) -> intp(mask2tid(0x80),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_80_356)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x80),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_80_356: .word 0xa980bb55 ! 476: WR_SET_SOFTINT_I wr %r2, 0x1b55, %set_softint trapasi_80_357: nop mov 0x20, %r1 ! (VA for ASI 0x4c) .word 0xd8d84980 ! 477: LDXA_R ldxa [%r1, %r0] 0x4c, %r12 .word 0xe19fe020 ! 478: LDDFA_I ldda [%r31, 0x0020], %f16 donret_80_358: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_358-donret_80_358-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0007535c | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x517, %htstate ta T_CHANGE_NONPRIV ! rand=0 (80) retry donretarg_80_358: .word 0xd8ffe01e ! 479: SWAPA_I swapa %r12, [%r31 + 0x001e] %asi invtsb_80_359: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 480: FBL fbl,a mondo_80_360: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r12, [%r0+0x3c8] %asi .word 0x9d948013 ! 481: WRPR_WSTATE_R wrpr %r18, %r19, %wstate .word 0xc19fd960 ! 482: LDDFA_R ldda [%r31, %r0], %f0 br_badelay1_80_361: .word 0x24cc0001 ! 1: BRLEZ brlez,a,pt %r16, .word 0xd937c010 ! 1: STQF_R - %f12, [%r16, %r31] .word 0xd83fc014 ! 1: STD_R std %r12, [%r31 + %r20] normalw .word 0xa5458000 ! 483: RD_SOFTINT_REG rd %softint, %r18 .word 0xc32fc014 ! 1: STXFSR_R st-sfr %f1, [%r20, %r31] .word 0x9f803cda ! 484: SIR sir 0x1cda .word 0xdb27e19a ! 485: STF_I st %f13, [0x019a, %r31] .word 0xda0fc000 ! 486: LDUB_R ldub [%r31 + %r0], %r13 .word 0x26800001 ! 487: BL bl,a pmu_80_362: nop setx 0xfffff175fffff9da, %g1, %g7 .word 0xa3800007 ! 488: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8d902c0f ! 489: WRPR_PSTATE_I wrpr %r0, 0x0c0f, %pstate brgez,a,pt %r12, skip_80_364 fbuge skip_80_364 .align 32 skip_80_364: .word 0xc32fc000 ! 490: STXFSR_R st-sfr %f1, [%r0, %r31] donret_80_365: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_80_365-donret_80_365-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x001931e3 | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x3a5, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (80) done donretarg_80_365: .word 0xdaffe138 ! 491: SWAPA_I swapa %r13, [%r31 + 0x0138] %asi .word 0xdb27e034 ! 492: STF_I st %f13, [0x0034, %r31] .word 0xdaffc02d ! 493: SWAPA_R swapa %r13, [%r31 + %r13] 0x01 splash_cmpr_80_366: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 494: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xda5fc000 ! 495: LDX_R ldx [%r31 + %r0], %r13 .word 0x9b702000 ! 1: POPC_I popc 0x0000, %r13 .word 0x9f803adf ! 496: SIR sir 0x1adf pmu_80_367: nop ta T_CHANGE_PRIV setx 0xfffff305fffff178, %g1, %g7 .word 0xa3800007 ! 497: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x80+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_80_368 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_80_368 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100d0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_80_368: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 498: RDPC rd %pc, %r17 change_to_randtl_80_369: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_80_369: .word 0x8f902000 ! 499: WRPR_TL_I wrpr %r0, 0x0000, %tl .word 0xe737c000 ! 500: STQF_R - %f19, [%r0, %r31] mondo_80_370: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r7, [%r0+0x3d0] %asi .word 0x9d940005 ! 501: WRPR_WSTATE_R wrpr %r16, %r5, %wstate nop nop ta T_CHANGE_PRIV wrpr %g0, %g0, %gl nop nop setx join_lbl_0_0, %g1, %g2 jmp %g2 nop fork_lbl_0_7: ta T_CHANGE_NONHPRIV br_longdelay1_40_0: .word 0x2f400001 ! 1: FBPU fbu,a,pn %fcc0, .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 brnz,pn %r10, skip_40_1 fbule,a,pn %fcc0, skip_40_1 .align 1024 skip_40_1: .word 0xc30fc000 ! 2: LDXFSR_R ld-fsr [%r31, %r0], %f1 nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_2 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_2: ta T_CHANGE_NONHPRIV .word 0xe7e7e014 ! 3: CASA_R casa [%r31] %asi, %r20, %r19 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_40_3: ta T_CHANGE_NONHPRIV ! macro splash_decr_40_4: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r15, [%r1] 0x45 .word 0xa7820012 ! 5: WR_GRAPHICS_STATUS_REG_R wr %r8, %r18, %- .word 0x87ac8ad2 ! 6: FCMPEd fcmped %fcc, %f18, %f18 vahole_40_5: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe63fe130 ! 7: STD_I std %r19, [%r31 + 0x0130] memptr_40_6: set user_data_start, %r31 .word 0x8584b2fb ! 8: WRCCR_I wr %r18, 0x12fb, %ccr .word 0x2e780001 ! 9: BPVS ceter_40_7: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0xa5410000 ! 10: RDTICK rd %tick, %r18 splash_lsu_40_8: nop ta T_CHANGE_HPRIV set 0xa209061d, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 11: FBPULE fbule,a,pn %fcc0, brcommon1_40_9: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd06fe190 ! 1: LDSTUB_I ldstub %r8, [%r31 + 0x0190] ba,a .+8 jmpl %r27+0, %r27 .word 0xc3e8c032 ! 12: PREFETCHA_R prefetcha [%r3, %r18] 0x01, #one_read .word 0x22800001 ! 13: BE be,a pmu_40_10: nop setx 0xfffff31efffff428, %g1, %g7 .word 0xa3800007 ! 14: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x32780001 ! 15: BPNE pmu_40_11: nop ta T_CHANGE_PRIV setx 0xfffff58cfffff238, %g1, %g7 .word 0xa3800007 ! 16: WR_PERF_COUNTER_R wr %r0, %r7, %- ibp_40_12: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x40, %r16 ibp_startwait40_12: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_ibp_40_12 mov (~0x40&0xf0), %r16 ld [%r23], %r16 ibp_wait40_12: brnz %r16, ibp_wait40_12 ld [%r23], %r16 ba ibp_startwait40_12 mov 0x40, %r16 continue_ibp_40_12: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_40_12: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_40_12 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_ibp_40_12: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_ibp_40_12 ldxa [0x50]%asi, %r14 !Running_rw ibp_doit40_12: best_set_reg(0x00000050f2c00079,%r19, %r20) stxa %r20, [%r18]0x42 stxa %r16, [0x60] %asi !Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi !restore %asi .word 0xc19fe040 ! 17: LDDFA_I ldda [%r31, 0x0040], %f0 ibp_40_13: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x40, %r16 ibp_startwait40_13: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_ibp_40_13 mov (~0x40&0xf0), %r16 ld [%r23], %r16 ibp_wait40_13: brnz %r16, ibp_wait40_13 ld [%r23], %r16 ba ibp_startwait40_13 mov 0x40, %r16 continue_ibp_40_13: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_40_13: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_40_13 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_ibp_40_13: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_ibp_40_13 ldxa [0x50]%asi, %r14 !Running_rw ibp_doit40_13: best_set_reg(0x00000050dac0792b,%r19, %r20) stxa %r20, [%r18]0x42 stxa %r16, [0x60] %asi !Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi !restore %asi .word 0xe1bfe160 ! 18: STDFA_I stda %f16, [0x0160, %r31] .word 0xd65fe188 ! 19: LDX_I ldx [%r31 + 0x0188], %r11 .word 0xd727e155 ! 20: STF_I st %f11, [0x0155, %r31] .word 0x81580000 ! 21: FLUSHW flushw #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_14) + 16, 16, 16)) -> intp(0,0,25) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_14)&0xffffffff) + 16, 16, 16)) -> intp(0,0,25) #else setx 0xc20ebae602cdbece, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_14: .word 0x39400001 ! 22: FBPUGE fbuge,a,pn %fcc0, donret_40_15: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_15-donret_40_15-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x007ad81a | (28 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x716, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) done donretarg_40_15: .word 0xd6ffe164 ! 23: SWAPA_I swapa %r11, [%r31 + 0x0164] %asi set 0x1938, %l3 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT .word 0xa3b287d1 ! 24: PDIST pdistn %d10, %d48, %d48 .word 0xe1bfde00 ! 25: STDFA_R stda %f16, [%r0, %r31] pmu_40_16: nop ta T_CHANGE_PRIV setx 0xfffff177fffff6ff, %g1, %g7 .word 0xa3800007 ! 26: WR_PERF_COUNTER_R wr %r0, %r7, %- vahole_40_17: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xd097c032 ! 27: LDUHA_R lduha [%r31, %r18] 0x01, %r8 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_18)+56, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_18)&0xffffffff) +56, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_18: .word 0xa9843e72 ! 28: WR_SET_SOFTINT_I wr %r16, 0x1e72, %set_softint .word 0x91a00171 ! 29: FABSq dis not found donret_40_20: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_20-donret_40_20-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x001ddf63 | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1f95, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (40) .word 0x28800001 ! 1: BLEU bleu,a retry donretarg_40_20: .word 0xe2ffe041 ! 30: SWAPA_I swapa %r17, [%r31 + 0x0041] %asi splash_decr_40_21: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r7, [%r1] 0x45 .word 0xa784c004 ! 31: WR_GRAPHICS_STATUS_REG_R wr %r19, %r4, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_22) + 32, 16, 16)) -> intp(5,0,22) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_22)&0xffffffff) + 32, 16, 16)) -> intp(5,0,22) #else setx 0x10a9f3fe9ffe41c3, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_22: .word 0x39400001 ! 32: FBPUGE fbuge,a,pn %fcc0, memptr_40_23: set 0x60740000, %r31 .word 0x85806acf ! 33: WRCCR_I wr %r1, 0x0acf, %ccr unsupttte_40_24: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xa9b0c494 ! 34: FCMPLE32 fcmple32 %d34, %d20, %r20 brcommon3_40_25: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c02d ! 1: CASA_I casa [%r31] 0x 1, %r13, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xd23fe070 ! 35: STD_I std %r9, [%r31 + 0x0070] jmptr_40_26: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 36: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_40_27: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 37: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_40_28: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 38: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_40_29: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3c8] %asi .word 0x9d92c00d ! 39: WRPR_WSTATE_R wrpr %r11, %r13, %wstate brcommon3_40_30: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd26fe0c0 ! 1: LDSTUB_I ldstub %r9, [%r31 + 0x00c0] ba,a .+8 jmpl %r27+0, %r27 .word 0xd33fc00a ! 40: STDF_R std %f9, [%r10, %r31] .word 0xd2dfe030 ! 41: LDXA_I ldxa [%r31, + 0x0030] %asi, %r9 .word 0xd327e0a0 ! 42: STF_I st %f9, [0x00a0, %r31] setx 0x8b7f461f0e0f2031, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_31: .word 0x39400001 ! 43: FBPUGE fbuge,a,pn %fcc0, mondo_40_32: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r5, [%r0+0x3d8] %asi .word 0x9d91c011 ! 44: WRPR_WSTATE_R wrpr %r7, %r17, %wstate ceter_40_33: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x97410000 ! 45: RDTICK rd %tick, %r11 .word 0x9194c00a ! 46: WRPR_PIL_R wrpr %r19, %r10, %pil splash_tba_40_35: ta T_CHANGE_PRIV setx 0x0000000400380000, %r11, %r12 .word 0x8b90000c ! 47: WRPR_TBA_R wrpr %r0, %r12, %tba mondo_40_36: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r11, [%r0+0x3e8] %asi .word 0x9d930014 ! 48: WRPR_WSTATE_R wrpr %r12, %r20, %wstate .word 0xe31fc011 ! 1: LDDF_R ldd [%r31, %r17], %f17 .word 0x9f80322c ! 49: SIR sir 0x122c br_longdelay2_40_37: .word 0x29400001 ! 1: FBPL fbl,a,pn %fcc0, .word 0xe3e7c02a ! 50: CASA_I casa [%r31] 0x 1, %r10, %r17 splash_cmpr_40_38: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 51: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_39 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_39: ta T_CHANGE_NONHPRIV .word 0xe3e7e012 ! 52: CASA_R casa [%r31] %asi, %r18, %r17 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_40)+16, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_40)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_40: .word 0xa982b798 ! 53: WR_SET_SOFTINT_I wr %r10, 0x1798, %set_softint jmptr_40_41: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 54: JMPL_R jmpl %r27 + %r0, %r27 donret_40_42: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_42-donret_40_42-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d7de21 | (0x58 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x43c, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) retry donretarg_40_42: .word 0xe26fe168 ! 55: LDSTUB_I ldstub %r17, [%r31 + 0x0168] nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_43 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_43 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610090, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_43: ta T_CHANGE_NONHPRIV .word 0x93414000 ! 56: RDPC rd %pc, %r9 splash_hpstate_40_44: .word 0x8198314d ! 57: WRHPR_HPSTATE_I wrhpr %r0, 0x114d, %hpstate .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0x8d90318d ! 58: WRPR_PSTATE_I wrpr %r0, 0x118d, %pstate mondo_40_46: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r11, [%r0+0x3c8] %asi .word 0x9d940008 ! 59: WRPR_WSTATE_R wrpr %r16, %r8, %wstate mondo_40_47: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3c0] %asi .word 0x9d918005 ! 60: WRPR_WSTATE_R wrpr %r6, %r5, %wstate splash_hpstate_40_48: ta T_CHANGE_NONHPRIV .word 0x81982647 ! 61: WRHPR_HPSTATE_I wrhpr %r0, 0x0647, %hpstate .word 0xd31fe178 ! 62: LDDF_I ldd [%r31, 0x0178], %f9 vahole_40_49: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xe1bfde00 ! 63: STDFA_R stda %f16, [%r0, %r31] brcommon1_40_50: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c030 ! 1: CASA_I casa [%r31] 0x 1, %r16, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0x9970341f ! 64: POPC_I popc 0x141f, %r12 splash_hpstate_40_51: ta T_CHANGE_NONHPRIV .word 0x81982d86 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x0d86, %hpstate .word 0x8d90241b ! 66: WRPR_PSTATE_I wrpr %r0, 0x041b, %pstate .word 0xe19fe1a0 ! 67: LDDFA_I ldda [%r31, 0x01a0], %f16 br_badelay1_40_54: .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0xd337e0a0 ! 1: STQF_I - %f9, [0x00a0, %r31] .word 0x87afca54 ! 1: FCMPd fcmpd %fcc, %f62, %f20 normalw .word 0x93458000 ! 68: RD_SOFTINT_REG rd %softint, %r9 .word 0xd82fe0f1 ! 69: STB_I stb %r12, [%r31 + 0x00f1] donret_40_55: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_55-donret_40_55-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d47c1f | (4 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x8d9, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, done donretarg_40_55: .word 0xa1a449c9 ! 70: FDIVd fdivd %f48, %f40, %f16 nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_56 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_56: ta T_CHANGE_NONHPRIV .word 0xe7e7e014 ! 71: CASA_R casa [%r31] %asi, %r20, %r19 .word 0xe19fe040 ! 72: LDDFA_I ldda [%r31, 0x0040], %f16 mondo_40_57: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r3, [%r0+0x3d8] %asi .word 0x9d92c010 ! 73: WRPR_WSTATE_R wrpr %r11, %r16, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe65fc000 ! 74: LDX_R ldx [%r31 + %r0], %r19 .word 0xe727c000 ! 75: STF_R st %f19, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_58 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_58: ta T_CHANGE_NONHPRIV .word 0xe7e7e00b ! 76: CASA_R casa [%r31] %asi, %r11, %r19 .word 0x2a800001 ! 77: BCS bcs,a nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe65fc000 ! 78: LDX_R ldx [%r31 + %r0], %r19 .word 0x9553c000 ! 79: RDPR_FQ donret_40_59: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_59-donret_40_59-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00a5d7a3 | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x150f, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) done donretarg_40_59: .word 0x95a489d1 ! 80: FDIVd fdivd %f18, %f48, %f10 .word 0xda8fe030 ! 81: LDUBA_I lduba [%r31, + 0x0030] %asi, %r13 .word 0xc19fda00 ! 82: LDDFA_R ldda [%r31, %r0], %f0 change_to_randtl_40_60: ta T_CHANGE_PRIV ! macro done_change_to_randtl_40_60: .word 0x8f902000 ! 83: WRPR_TL_I wrpr %r0, 0x0000, %tl splash_cmpr_40_61: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 84: WR_STICK_CMPR_REG_R wr %r0, %r17, %- jmptr_40_62: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 85: JMPL_R jmpl %r27 + %r0, %r27 mondo_40_63: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3d8] %asi .word 0x9d94c014 ! 86: WRPR_WSTATE_R wrpr %r19, %r20, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_64)+16, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_64)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_64: .word 0xa9816184 ! 87: WR_SET_SOFTINT_I wr %r5, 0x0184, %set_softint .word 0xdb37e009 ! 88: STQF_I - %f13, [0x0009, %r31] mondo_40_65: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3d0] %asi .word 0x9d904006 ! 89: WRPR_WSTATE_R wrpr %r1, %r6, %wstate .word 0xda0fc000 ! 90: LDUB_R ldub [%r31 + %r0], %r13 memptr_40_66: set user_data_start, %r31 .word 0x85842e9b ! 91: WRCCR_I wr %r16, 0x0e9b, %ccr jmptr_40_67: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 92: JMPL_R jmpl %r27 + %r0, %r27 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_40_68: ta T_CHANGE_NONPRIV ! macro otherw mov 0x35, %r30 .word 0x91d0001e ! 94: Tcc_R ta icc_or_xcc, %r0 + %r30 vahole_40_69: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xdb1fc00b ! 95: LDDF_R ldd [%r31, %r11], %f13 pmu_40_70: nop setx 0xfffff685fffff890, %g1, %g7 .word 0xa3800007 ! 96: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_40_71: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 97: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_40_72: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 98: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_hpstate_40_73: .word 0x81982e15 ! 99: WRHPR_HPSTATE_I wrhpr %r0, 0x0e15, %hpstate donret_40_74: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_74-donret_40_74-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0062777f | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xf8d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) .word 0x26cc0001 ! 1: BRLZ brlz,a,pt %r16, retry donretarg_40_74: .word 0xda6fe1e9 ! 100: LDSTUB_I ldstub %r13, [%r31 + 0x01e9] change_to_randtl_40_75: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_40_75: .word 0x8f902000 ! 101: WRPR_TL_I wrpr %r0, 0x0000, %tl unsupttte_40_76: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xc3ea0025 ! 102: PREFETCHA_R prefetcha [%r8, %r5] 0x01, #one_read .word 0x8d903ab3 ! 103: WRPR_PSTATE_I wrpr %r0, 0x1ab3, %pstate intveclr_40_78: nop ta T_CHANGE_HPRIV setx 0xbba736654dad3396, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 104: FBPLG fblg,a,pn %fcc0, donret_40_79: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_79-donret_40_79-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0036a6f0 | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1405, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) done donretarg_40_79: .word 0xa7a0c9cd ! 105: FDIVd fdivd %f34, %f44, %f50 .word 0xe4d7e038 ! 106: LDSHA_I ldsha [%r31, + 0x0038] %asi, %r18 tagged_40_80: tsubcctv %r13, 0x17b8, %r13 .word 0xe407e10b ! 107: LDUW_I lduw [%r31 + 0x010b], %r18 nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_81 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_81 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_81: ta T_CHANGE_NONHPRIV .word 0x9b414000 ! 108: RDPC rd %pc, %r13 splash_lsu_40_82: nop ta T_CHANGE_HPRIV set 0xbb49a20f, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 109: FBPULE fbule,a,pn %fcc0, splash_cmpr_40_83: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 110: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_htba_40_84: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 111: WRHPR_HTBA_R wrhpr %r0, %r12, %htba mondo_40_85: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r8, [%r0+0x3d0] %asi .word 0x9d940012 ! 112: WRPR_WSTATE_R wrpr %r16, %r18, %wstate .word 0xe1bfc3e0 ! 113: STDFA_R stda %f16, [%r0, %r31] .word 0xe19fdf20 ! 114: LDDFA_R ldda [%r31, %r0], %f16 splash_cmpr_40_86: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 115: WR_TICK_CMPR_REG_R wr %r0, %r17, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_87)+48, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_87)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_87: .word 0xa982b54c ! 116: WR_SET_SOFTINT_I wr %r10, 0x154c, %set_softint brcommon3_40_88: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd137c010 ! 1: STQF_R - %f8, [%r16, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd11fc008 ! 117: LDDF_R ldd [%r31, %r8], %f8 .word 0x2f400001 ! 1: FBPU fbu,a,pn %fcc0, .word 0x8d90351a ! 118: WRPR_PSTATE_I wrpr %r0, 0x151a, %pstate .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_40_90: ta T_CHANGE_NONPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_91)+8, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_91)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_91: .word 0xa982f145 ! 120: WR_SET_SOFTINT_I wr %r11, 0x1145, %set_softint splash_cmpr_40_92: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 .word 0xb3800011 ! 121: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x9ba00163 ! 122: FABSq dis not found ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 123: MEMBAR membar #LoadLoad | #Lookaside splash_cmpr_40_95: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 124: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xc1bfdf20 ! 125: STDFA_R stda %f0, [%r0, %r31] jmptr_40_96: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 126: JMPL_R jmpl %r27 + %r0, %r27 setx 0x5fcbfbb68d58eeaf, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_97: .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, pmu_40_98: nop ta T_CHANGE_PRIV setx 0xfffff267fffff248, %g1, %g7 .word 0xa3800007 ! 128: WR_PERF_COUNTER_R wr %r0, %r7, %- donret_40_99: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_99-donret_40_99-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0091051f | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x126f, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) done donretarg_40_99: .word 0xa9a4c9d0 ! 129: FDIVd fdivd %f50, %f16, %f20 pmu_40_100: nop setx 0xfffff562fffffeb5, %g1, %g7 .word 0xa3800007 ! 130: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_40_101: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r8, [%r0+0x3e0] %asi .word 0x9d914010 ! 131: WRPR_WSTATE_R wrpr %r5, %r16, %wstate nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_102 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_102: ta T_CHANGE_NONHPRIV .word 0xd9e7e00a ! 132: CASA_R casa [%r31] %asi, %r10, %r12 .word 0xc1bfdc00 ! 133: STDFA_R stda %f0, [%r0, %r31] splash_tba_40_103: ta T_CHANGE_PRIV setx 0x0000000400380000, %r11, %r12 .word 0x8b90000c ! 134: WRPR_TBA_R wrpr %r0, %r12, %tba splash_lsu_40_104: nop ta T_CHANGE_HPRIV set 0x6843d871, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 135: FBPULE fbule,a,pn %fcc0, setx 0xdbabbd90502885d1, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_105: .word 0x39400001 ! 136: FBPUGE fbuge,a,pn %fcc0, change_to_randtl_40_106: ta T_CHANGE_PRIV ! macro done_change_to_randtl_40_106: .word 0x8f902001 ! 137: WRPR_TL_I wrpr %r0, 0x0001, %tl nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_107 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_107 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_107: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 138: RDPC rd %pc, %r16 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_108)+24, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_108)&0xffffffff) +24, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_108: .word 0xa9843447 ! 139: WR_SET_SOFTINT_I wr %r16, 0x1447, %set_softint br_badelay1_40_109: .word 0x87afca53 ! 1: FCMPd fcmpd %fcc, %f62, %f50 .word 0xd13423f3 ! 1: STQF_I - %f8, [0x03f3, %r16] .word 0x9ba7c9ca ! 1: FDIVd fdivd %f62, %f10, %f44 normalw .word 0x93458000 ! 140: RD_SOFTINT_REG rd %softint, %r9 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_40_110: ta T_CHANGE_NONHPRIV ! macro vahole_40_111: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xa5a2c9c9 ! 142: FDIVd fdivd %f42, %f40, %f18 nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_112 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_112 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100e0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_112: ta T_CHANGE_NONHPRIV .word 0x99414000 ! 143: RDPC rd %pc, %r12 .word 0xd91fe040 ! 144: LDDF_I ldd [%r31, 0x0040], %f12 setx 0xa73e72bcbe7026a6, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_113: .word 0x39400001 ! 145: FBPUGE fbuge,a,pn %fcc0, .word 0xa2d20006 ! 146: UMULcc_R umulcc %r8, %r6, %r17 splash_cmpr_40_114: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 147: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_40_115: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3e8] %asi .word 0x9d908011 ! 148: WRPR_WSTATE_R wrpr %r2, %r17, %wstate change_to_randtl_40_116: ta T_CHANGE_PRIV ! macro done_change_to_randtl_40_116: .word 0x8f902000 ! 149: WRPR_TL_I wrpr %r0, 0x0000, %tl change_to_randtl_40_117: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_40_117: .word 0x8f902000 ! 150: WRPR_TL_I wrpr %r0, 0x0000, %tl #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_118) + 56, 16, 16)) -> intp(0,0,26) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_118)&0xffffffff) + 56, 16, 16)) -> intp(0,0,26) #else setx 0xf794bacc2b0d191f, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_118: .word 0x39400001 ! 151: FBPUGE fbuge,a,pn %fcc0, memptr_40_119: set 0x60340000, %r31 .word 0x858466e8 ! 152: WRCCR_I wr %r17, 0x06e8, %ccr nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe05fc000 ! 153: LDX_R ldx [%r31 + %r0], %r16 .word 0x8d90398b ! 154: WRPR_PSTATE_I wrpr %r0, 0x198b, %pstate mondo_40_121: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3c0] %asi .word 0x9d91c012 ! 155: WRPR_WSTATE_R wrpr %r7, %r18, %wstate .word 0x8d902517 ! 156: WRPR_PSTATE_I wrpr %r0, 0x0517, %pstate .word 0x91d020b2 ! 157: Tcc_I ta icc_or_xcc, %r0 + 178 setx 0xece1b7b9235c77df, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_123: .word 0x39400001 ! 158: FBPUGE fbuge,a,pn %fcc0, .word 0xc36c0013 ! 159: PREFETCH_R prefetch [%r16 + %r19], #one_read fpinit_40_124: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x87a80a44 ! 160: FCMPd fcmpd %fcc, %f0, %f4 splash_hpstate_40_125: ta T_CHANGE_NONHPRIV .word 0x28800001 ! 1: BLEU bleu,a .word 0x81982cd9 ! 161: WRHPR_HPSTATE_I wrhpr %r0, 0x0cd9, %hpstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe05fc000 ! 162: LDX_R ldx [%r31 + %r0], %r16 nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_126 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_126: ta T_CHANGE_NONHPRIV .word 0xe1e7e00c ! 163: CASA_R casa [%r31] %asi, %r12, %r16 nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_127 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_127: ta T_CHANGE_NONHPRIV .word 0xe1e7e00a ! 164: CASA_R casa [%r31] %asi, %r10, %r16 pmu_40_128: nop ta T_CHANGE_PRIV setx 0xfffff862fffff1e2, %g1, %g7 .word 0xa3800007 ! 165: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_40_129: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 166: WR_STICK_CMPR_REG_R wr %r0, %r17, %- ceter_40_130: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa9410000 ! 167: RDTICK rd %tick, %r20 jmptr_40_131: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 168: JMPL_R jmpl %r27 + %r0, %r27 .word 0x9b6b0011 ! 169: SDIVX_R sdivx %r12, %r17, %r13 splash_cmpr_40_132: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 .word 0xb3800011 ! 170: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xd01fc000 ! 171: LDD_R ldd [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_133 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_133 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610080, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_133: ta T_CHANGE_NONHPRIV .word 0x9b414000 ! 172: RDPC rd %pc, %r13 jmptr_40_134: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 173: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe09fd060 ! 174: LDDA_R ldda [%r31, %r0] 0x83, %r16 setx 0xde098c1e77a9ea0d, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_135: .word 0x39400001 ! 175: FBPUGE fbuge,a,pn %fcc0, splash_cmpr_40_136: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 176: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe0d7e090 ! 177: LDSHA_I ldsha [%r31, + 0x0090] %asi, %r16 splash_cmpr_40_137: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 178: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_40_138: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r8, [%r0+0x3c0] %asi .word 0x9d91c002 ! 179: WRPR_WSTATE_R wrpr %r7, %r2, %wstate change_to_randtl_40_139: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_40_139: .word 0x8f902000 ! 180: WRPR_TL_I wrpr %r0, 0x0000, %tl jmptr_40_140: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 181: JMPL_R jmpl %r27 + %r0, %r27 .word 0x9191c013 ! 182: WRPR_PIL_R wrpr %r7, %r19, %pil donret_40_142: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_142-donret_40_142-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0030d05a | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x17cd, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) retry donretarg_40_142: .word 0x9ba1c9c9 ! 183: FDIVd fdivd %f38, %f40, %f44 .word 0xe6c7e0b8 ! 184: LDSWA_I ldswa [%r31, + 0x00b8] %asi, %r19 .word 0xe1bfdb60 ! 185: STDFA_R stda %f16, [%r0, %r31] .word 0xe6cfe168 ! 186: LDSBA_I ldsba [%r31, + 0x0168] %asi, %r19 splash_cmpr_40_143: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 187: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x96844007 ! 188: ADDcc_R addcc %r17, %r7, %r11 ibp_40_144: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x40, %r16 ibp_startwait40_144: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_ibp_40_144 mov (~0x40&0xf0), %r16 ld [%r23], %r16 ibp_wait40_144: brnz %r16, ibp_wait40_144 ld [%r23], %r16 ba ibp_startwait40_144 mov 0x40, %r16 continue_ibp_40_144: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_40_144: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_40_144 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_ibp_40_144: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_ibp_40_144 ldxa [0x50]%asi, %r14 !Running_rw ibp_doit40_144: best_set_reg(0x000000400bf92b1c,%r19, %r20) stxa %r20, [%r18]0x42 stxa %r16, [0x60] %asi !Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi !restore %asi ta T_CHANGE_NONHPRIV .word 0xe19fe120 ! 189: LDDFA_I ldda [%r31, 0x0120], %f16 ceter_40_145: nop ta T_CHANGE_HPRIV mov 5, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x99410000 ! 190: RDTICK rd %tick, %r12 ceter_40_146: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x93410000 ! 191: RDTICK rd %tick, %r9 setx 0xdd73d4dc9bcf6538, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_147: .word 0x39400001 ! 192: FBPUGE fbuge,a,pn %fcc0, invtsb_40_148: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 193: FBL fbl,a .word 0x95a00165 ! 194: FABSq dis not found .word 0xe6c7e170 ! 195: LDSWA_I ldswa [%r31, + 0x0170] %asi, %r19 splash_lsu_40_150: nop ta T_CHANGE_HPRIV set 0x0b66414c, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 196: FBPULE fbule,a,pn %fcc0, .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_40_151: ta T_CHANGE_NONPRIV ! macro .word 0xe65fe0e8 ! 198: LDX_I ldx [%r31 + 0x00e8], %r19 splash_hpstate_40_152: ta T_CHANGE_NONHPRIV .word 0x3a800001 ! 1: BCC bcc,a .word 0x8198244b ! 199: WRHPR_HPSTATE_I wrhpr %r0, 0x044b, %hpstate .word 0x9353c000 ! 200: RDPR_FQ .word 0xc32fc012 ! 1: STXFSR_R st-sfr %f1, [%r18, %r31] .word 0x9f803d69 ! 201: SIR sir 0x1d69 mondo_40_153: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r20, [%r0+0x3e0] %asi .word 0x9d940013 ! 202: WRPR_WSTATE_R wrpr %r16, %r19, %wstate jmptr_40_154: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 203: JMPL_R jmpl %r27 + %r0, %r27 brnz,a,pn %r13, skip_40_155 brlez,a,pn %r4, skip_40_155 .align 2048 skip_40_155: .word 0x87ac8a50 ! 204: FCMPd fcmpd %fcc, %f18, %f16 pmu_40_156: nop ta T_CHANGE_PRIV setx 0xffffff3dfffff036, %g1, %g7 .word 0xa3800007 ! 205: WR_PERF_COUNTER_R wr %r0, %r7, %- setx 0x52964d968890063e, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_157: .word 0x39400001 ! 206: FBPUGE fbuge,a,pn %fcc0, .word 0xe677e024 ! 207: STX_I stx %r19, [%r31 + 0x0024] brcommon2_40_158: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xa7a7c973 ! 1: FMULq dis not found ba,a .+8 jmpl %r27+0, %r27 .word 0xe19fe060 ! 208: LDDFA_I ldda [%r31, 0x0060], %f16 .word 0x98fc4013 ! 209: SDIVcc_R sdivcc %r17, %r19, %r12 .word 0xd897e1e0 ! 210: LDUHA_I lduha [%r31, + 0x01e0] %asi, %r12 .word 0x3c800001 ! 211: BPOS bpos,a change_to_randtl_40_159: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_40_159: .word 0x8f902002 ! 212: WRPR_TL_I wrpr %r0, 0x0002, %tl tagged_40_160: tsubcctv %r18, 0x1464, %r1 .word 0xd807e100 ! 213: LDUW_I lduw [%r31 + 0x0100], %r12 br_badelay1_40_161: .word 0x36800001 ! 1: BGE bge,a .word 0xd937c010 ! 1: STQF_R - %f12, [%r16, %r31] .word 0x99a7c9d0 ! 1: FDIVd fdivd %f62, %f16, %f12 normalw .word 0xa3458000 ! 214: RD_SOFTINT_REG rd %softint, %r17 pmu_40_162: nop setx 0xffffff3ffffff456, %g1, %g7 .word 0xa3800007 ! 215: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 216: WRTICK_R wr %r0, %r17, %tick pmu_40_164: nop ta T_CHANGE_PRIV setx 0xfffffd90fffffb8f, %g1, %g7 .word 0xa3800007 ! 217: WR_PERF_COUNTER_R wr %r0, %r7, %- otherw mov 0x35, %r30 .word 0x91d0001e ! 218: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xe1bfde00 ! 219: STDFA_R stda %f16, [%r0, %r31] .word 0xc1bfc3e0 ! 220: STDFA_R stda %f0, [%r0, %r31] .word 0xe1bfe1c0 ! 221: STDFA_I stda %f16, [0x01c0, %r31] setx 0x6d5e9221c151ff93, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_165: .word 0x39400001 ! 222: FBPUGE fbuge,a,pn %fcc0, br_longdelay1_40_166: .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0xbfefc000 ! 223: RESTORE_R restore %r31, %r0, %r31 nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_167 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_167: ta T_CHANGE_NONHPRIV .word 0xe1e7e011 ! 224: CASA_R casa [%r31] %asi, %r17, %r16 jmptr_40_168: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 225: JMPL_R jmpl %r27 + %r0, %r27 setx 0xb7f5b59561862335, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_169: .word 0x39400001 ! 226: FBPUGE fbuge,a,pn %fcc0, mondo_40_170: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3c0] %asi .word 0x9d948002 ! 227: WRPR_WSTATE_R wrpr %r18, %r2, %wstate splash_cmpr_40_171: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 228: WR_STICK_CMPR_REG_R wr %r0, %r17, %- pmu_40_172: nop ta T_CHANGE_PRIV setx 0xfffffd97fffff760, %g1, %g7 .word 0xa3800007 ! 229: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_40_173: nop ta T_CHANGE_HPRIV set 0xafed0d9b, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 230: FBPULE fbule,a,pn %fcc0, mondo_40_174: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r4, [%r0+0x3d0] %asi .word 0x9d950007 ! 231: WRPR_WSTATE_R wrpr %r20, %r7, %wstate memptr_40_175: set 0x60740000, %r31 .word 0x858437b9 ! 232: WRCCR_I wr %r16, 0x17b9, %ccr mondo_40_176: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r8, [%r0+0x3d8] %asi .word 0x9d940010 ! 233: WRPR_WSTATE_R wrpr %r16, %r16, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_177)+32, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_177)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_177: .word 0xa9847dc1 ! 234: WR_SET_SOFTINT_I wr %r17, 0x1dc1, %set_softint splash_lsu_40_178: nop ta T_CHANGE_HPRIV set 0x50212139, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 235: FBPULE fbule,a,pn %fcc0, pmu_40_179: nop setx 0xfffff5fafffff355, %g1, %g7 .word 0xa3800007 ! 236: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_40_180: nop ta T_CHANGE_HPRIV set 0xaadb9487, %r2 mov 0x1, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 237: FBPULE fbule,a,pn %fcc0, splash_cmpr_40_181: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 238: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe057e0f8 ! 239: LDSH_I ldsh [%r31 + 0x00f8], %r16 donret_40_182: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_182-donret_40_182-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0007a7b8 | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x897, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) retry donretarg_40_182: .word 0xe0ffe0d8 ! 240: SWAPA_I swapa %r16, [%r31 + 0x00d8] %asi .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_40_183: ta T_CHANGE_NONPRIV ! macro .word 0xe1bfe0e0 ! 242: STDFA_I stda %f16, [0x00e0, %r31] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_184)+48, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_184)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_184: .word 0xa9837f51 ! 243: WR_SET_SOFTINT_I wr %r13, 0x1f51, %set_softint unsupttte_40_185: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xa9a409b0 ! 244: FDIVs fdivs %f16, %f16, %f20 .word 0x2a800001 ! 245: BCS bcs,a nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_186 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_186 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610050, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_186: ta T_CHANGE_NONHPRIV .word 0x95414000 ! 246: RDPC rd %pc, %r10 setx 0x1e9072ee17f67cf0, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_187: .word 0x39400001 ! 247: FBPUGE fbuge,a,pn %fcc0, pmu_40_188: nop setx 0xfffff1fafffff4eb, %g1, %g7 .word 0xa3800007 ! 248: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_40_189: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 249: WR_STICK_CMPR_REG_R wr %r0, %r17, %- donret_40_190: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_190-donret_40_190-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00f771a1 | (0x8a << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x697, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (40) retry donretarg_40_190: .word 0x9ba409d4 ! 250: FDIVd fdivd %f16, %f20, %f44 memptr_40_191: set 0x60140000, %r31 .word 0x85817fef ! 251: WRCCR_I wr %r5, 0x1fef, %ccr .word 0xe49fc540 ! 252: LDDA_R ldda [%r31, %r0] 0x2a, %r18 invtsb_40_192: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 253: FBL fbl,a nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_193 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_193 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610060, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_193: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 254: RDPC rd %pc, %r19 splash_lsu_40_194: nop ta T_CHANGE_HPRIV set 0x7a6367ed, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 255: FBPULE fbule,a,pn %fcc0, .word 0x9b53c000 ! 256: RDPR_FQ vahole_40_195: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xe83fe1d0 ! 257: STD_I std %r20, [%r31 + 0x01d0] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_196) + 8, 16, 16)) -> intp(0,0,13) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_196)&0xffffffff) + 8, 16, 16)) -> intp(0,0,13) #else setx 0xc4e3ec66950ee723, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_196: .word 0x39400001 ! 258: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_197 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_197: ta T_CHANGE_NONHPRIV .word 0xe9e7e00b ! 259: CASA_R casa [%r31] %asi, %r11, %r20 .word 0xe8c7e180 ! 260: LDSWA_I ldswa [%r31, + 0x0180] %asi, %r20 vahole_40_198: nop ta T_CHANGE_NONHPRIV setx vahole_target3, %r18, %r27 jmpl %r27+0, %r27 .word 0xa9703162 ! 261: POPC_I popc 0x1162, %r20 .word 0xd697e1e8 ! 262: LDUHA_I lduha [%r31, + 0x01e8] %asi, %r11 .word 0xd73fc000 ! 263: STDF_R std %f11, [%r0, %r31] .word 0xd68fe1c8 ! 264: LDUBA_I lduba [%r31, + 0x01c8] %asi, %r11 pmu_40_199: nop setx 0xfffff43bfffffc0b, %g1, %g7 .word 0xa3800007 ! 265: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 266: WRTICK_R wr %r0, %r17, %tick vahole_40_201: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0x95a309b2 ! 267: FDIVs fdivs %f12, %f18, %f10 .word 0x24cd0001 ! 1: BRLEZ brlez,a,pt %r20, .word 0x8d903305 ! 268: WRPR_PSTATE_I wrpr %r0, 0x1305, %pstate .word 0xe097e0d8 ! 269: LDUHA_I lduha [%r31, + 0x00d8] %asi, %r16 nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_203 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_203: ta T_CHANGE_NONHPRIV .word 0xe1e7e011 ! 270: CASA_R casa [%r31] %asi, %r17, %r16 .word 0xe07fe140 ! 271: SWAP_I swap %r16, [%r31 + 0x0140] .word 0x28780001 ! 272: BPLEU cwp_40_204: set user_data_start, %o7 .word 0x93902007 ! 273: WRPR_CWP_I wrpr %r0, 0x0007, %cwp pmu_40_205: nop ta T_CHANGE_PRIV setx 0xfffff2e8fffff71d, %g1, %g7 .word 0xa3800007 ! 274: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_40_206: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3c8] %asi .word 0x9d910005 ! 275: WRPR_WSTATE_R wrpr %r4, %r5, %wstate br_badelay3_40_207: .word 0x32800001 ! 1: BNE bne,a .word 0x34800001 ! 1: BG bg,a .word 0x93a0054b ! 1: FSQRTd fsqrt .word 0xa5a4c82a ! 276: FADDs fadds %f19, %f10, %f18 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_40_208: ta T_CHANGE_NONPRIV ! macro .word 0x89800011 ! 278: WRTICK_R wr %r0, %r17, %tick mondo_40_210: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3e0] %asi .word 0x9d920004 ! 279: WRPR_WSTATE_R wrpr %r8, %r4, %wstate donret_40_211: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_211-donret_40_211-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00a10e30 | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x465, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (40) done donretarg_40_211: .word 0xd86fe0d2 ! 280: LDSTUB_I ldstub %r12, [%r31 + 0x00d2] donret_40_212: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_212-donret_40_212-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x002c0b06 | (0x8a << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x317, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (40) retry donretarg_40_212: .word 0x93a149d1 ! 281: FDIVd fdivd %f36, %f48, %f40 brcommon1_40_213: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xe9e7c033 ! 1: CASA_I casa [%r31] 0x 1, %r19, %r20 ba,a .+8 jmpl %r27+0, %r27 .word 0x91b48494 ! 282: FCMPLE32 fcmple32 %d18, %d20, %r8 .word 0xc19fe000 ! 283: LDDFA_I ldda [%r31, 0x0000], %f0 .word 0x8d903022 ! 284: WRPR_PSTATE_I wrpr %r0, 0x1022, %pstate splash_cmpr_40_215: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 285: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_40_216: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 286: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_40_217: ta T_CHANGE_NONPRIV ! macro .word 0x37400001 ! 1: FBPGE fbge,a,pn %fcc0, .word 0x8d9025a3 ! 288: WRPR_PSTATE_I wrpr %r0, 0x05a3, %pstate splash_lsu_40_219: nop ta T_CHANGE_HPRIV set 0x9c0d0457, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 289: FBPULE fbule,a,pn %fcc0, donret_40_220: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_220-donret_40_220-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00207627 | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xbd7, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) .word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, retry donretarg_40_220: .word 0xd66fe152 ! 290: LDSTUB_I ldstub %r11, [%r31 + 0x0152] .word 0x91d020b3 ! 291: Tcc_I ta icc_or_xcc, %r0 + 179 setx 0x939a03e24493f88e, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_221: .word 0x39400001 ! 292: FBPUGE fbuge,a,pn %fcc0, brcommon3_40_222: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd737e1f0 ! 1: STQF_I - %f11, [0x01f0, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd697c028 ! 293: LDUHA_R lduha [%r31, %r8] 0x01, %r11 .word 0xd6d7e098 ! 294: LDSHA_I ldsha [%r31, + 0x0098] %asi, %r11 pmu_40_223: nop ta T_CHANGE_PRIV setx 0xfffff9c5fffff750, %g1, %g7 .word 0xa3800007 ! 295: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x9ba00170 ! 296: FABSq dis not found #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_225)+16, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_225)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_225: .word 0xa9813dcb ! 297: WR_SET_SOFTINT_I wr %r4, 0x1dcb, %set_softint memptr_40_226: set 0x60540000, %r31 .word 0x8581a65b ! 298: WRCCR_I wr %r6, 0x065b, %ccr mondo_40_227: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3e0] %asi .word 0x9d908007 ! 299: WRPR_WSTATE_R wrpr %r2, %r7, %wstate .word 0xd297e1b8 ! 300: LDUHA_I lduha [%r31, + 0x01b8] %asi, %r9 vahole_40_228: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0x95b447c9 ! 301: PDIST pdistn %d48, %d40, %d10 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_229)+32, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_229)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_229: .word 0xa984a6f2 ! 302: WR_SET_SOFTINT_I wr %r18, 0x06f2, %set_softint .word 0x8d903f47 ! 303: WRPR_PSTATE_I wrpr %r0, 0x1f47, %pstate vahole_40_231: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xe9e7e014 ! 304: CASA_R casa [%r31] %asi, %r20, %r20 trapasi_40_232: nop mov 0x8, %r1 ! (VA for ASI 0x4c) .word 0xe8884980 ! 305: LDUBA_R lduba [%r1, %r0] 0x4c, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_233)+40, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_233)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_233: .word 0xa9832b72 ! 306: WR_SET_SOFTINT_I wr %r12, 0x0b72, %set_softint #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_234) + 56, 16, 16)) -> intp(2,0,1) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_234)&0xffffffff) + 56, 16, 16)) -> intp(2,0,1) #else setx 0x771f1d7f65afe563, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_234: .word 0x39400001 ! 307: FBPUGE fbuge,a,pn %fcc0, .word 0xe83fc000 ! 308: STD_R std %r20, [%r31 + %r0] pmu_40_235: nop ta T_CHANGE_PRIV setx 0xfffffe2afffff347, %g1, %g7 .word 0xa3800007 ! 309: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_236 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_236 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610070, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_236: ta T_CHANGE_NONHPRIV .word 0xa5414000 ! 310: RDPC rd %pc, %r18 nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_237 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_237: ta T_CHANGE_NONHPRIV .word 0xd1e7e00b ! 311: CASA_R casa [%r31] %asi, %r11, %r8 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_40_238: ta T_CHANGE_NONPRIV ! macro nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_239 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_239: ta T_CHANGE_NONHPRIV .word 0xd1e7e00a ! 313: CASA_R casa [%r31] %asi, %r10, %r8 .word 0xd03fc008 ! 1: STD_R std %r8, [%r31 + %r8] .word 0x9f80305e ! 314: SIR sir 0x105e .word 0x83d02033 ! 315: Tcc_I te icc_or_xcc, %r0 + 51 splash_cmpr_40_240: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 316: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_40_241: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r12, [%r0+0x3e0] %asi .word 0x9d940003 ! 317: WRPR_WSTATE_R wrpr %r16, %r3, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xd05fc000 ! 318: LDX_R ldx [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_242 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_242: ta T_CHANGE_NONHPRIV .word 0xd1e7e00b ! 319: CASA_R casa [%r31] %asi, %r11, %r8 br_longdelay1_40_243: .word 0x32800001 ! 1: BNE bne,a .word 0xbfe7c000 ! 320: SAVE_R save %r31, %r0, %r31 splash_cmpr_40_244: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 321: WR_STICK_CMPR_REG_R wr %r0, %r17, %- pmu_40_245: nop ta T_CHANGE_PRIV setx 0xfffff861fffff64b, %g1, %g7 .word 0xa3800007 ! 322: WR_PERF_COUNTER_R wr %r0, %r7, %- pmu_40_246: nop setx 0xfffff3fcfffff313, %g1, %g7 .word 0xa3800007 ! 323: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xd127c000 ! 324: STF_R st %f8, [%r0, %r31] .word 0x89800011 ! 325: WRTICK_R wr %r0, %r17, %tick .word 0x99a00171 ! 326: FABSq dis not found mondo_40_249: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r10, [%r0+0x3d0] %asi .word 0x9d94800c ! 327: WRPR_WSTATE_R wrpr %r18, %r12, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_250) + 40, 16, 16)) -> intp(7,0,14) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_250)&0xffffffff) + 40, 16, 16)) -> intp(7,0,14) #else setx 0xebabeedfdafae1fe, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_250: .word 0x39400001 ! 328: FBPUGE fbuge,a,pn %fcc0, donret_40_251: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_251-donret_40_251-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x008c4c8c | (0x8b << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xc87, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (40) .word 0x29400001 ! 1: FBPL fbl,a,pn %fcc0, done donretarg_40_251: .word 0x91a049c4 ! 329: FDIVd fdivd %f32, %f4, %f8 .word 0xd4c7e138 ! 330: LDSWA_I ldswa [%r31, + 0x0138] %asi, %r10 .word 0xe1bfe0a0 ! 331: STDFA_I stda %f16, [0x00a0, %r31] nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xd45fc000 ! 332: LDX_R ldx [%r31 + %r0], %r10 br_badelay3_40_252: .word 0x20800001 ! 1: BN bn,a .word 0xc150f358 ! Random illegal ? .word 0x9ba00543 ! 1: FSQRTd fsqrt .word 0xa3a28827 ! 333: FADDs fadds %f10, %f7, %f17 splash_hpstate_40_253: .word 0x2ecd0001 ! 1: BRGEZ brgez,a,pt %r20, .word 0x81982e07 ! 334: WRHPR_HPSTATE_I wrhpr %r0, 0x0e07, %hpstate mondo_40_254: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3c0] %asi .word 0x9d92c007 ! 335: WRPR_WSTATE_R wrpr %r11, %r7, %wstate .word 0xe33fc010 ! 1: STDF_R std %f17, [%r16, %r31] .word 0x9f802b03 ! 336: SIR sir 0x0b03 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_40_255: ta T_CHANGE_NONHPRIV ! macro .word 0xe277e1a0 ! 338: STX_I stx %r17, [%r31 + 0x01a0] pmu_40_256: nop ta T_CHANGE_PRIV setx 0xfffff498fffff944, %g1, %g7 .word 0xa3800007 ! 339: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xe327c000 ! 340: STF_R st %f17, [%r0, %r31] otherw mov 0xb1, %r30 .word 0x91d0001e ! 341: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xe227e08c ! 342: STW_I stw %r17, [%r31 + 0x008c] setx 0x502431329d32e1ea, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_257: .word 0x39400001 ! 343: FBPUGE fbuge,a,pn %fcc0, jmptr_40_258: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 344: JMPL_R jmpl %r27 + %r0, %r27 donret_40_259: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_259-donret_40_259-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00637509 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xb2f, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) .word 0x38800001 ! 1: BGU bgu,a done donretarg_40_259: .word 0xa3a309d4 ! 345: FDIVd fdivd %f12, %f20, %f48 jmptr_40_260: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 346: JMPL_R jmpl %r27 + %r0, %r27 .word 0x97a00166 ! 347: FABSq dis not found .word 0x92c42b38 ! 348: ADDCcc_I addccc %r16, 0x0b38, %r9 mondo_40_262: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r2, [%r0+0x3e0] %asi .word 0x9d948011 ! 349: WRPR_WSTATE_R wrpr %r18, %r17, %wstate .word 0x3e800001 ! 1: BVC bvc,a .word 0x8d903bfb ! 350: WRPR_PSTATE_I wrpr %r0, 0x1bfb, %pstate .word 0xe19fe0a0 ! 351: LDDFA_I ldda [%r31, 0x00a0], %f16 .word 0x89800011 ! 352: WRTICK_R wr %r0, %r17, %tick .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_40_265: ta T_CHANGE_NONHPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_266) + 16, 16, 16)) -> intp(7,0,22) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_266)&0xffffffff) + 16, 16, 16)) -> intp(7,0,22) #else setx 0xf29f1d118eea728b, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_266: .word 0x39400001 ! 354: FBPUGE fbuge,a,pn %fcc0, vahole_40_267: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe69fe1b0 ! 355: LDDA_I ldda [%r31, + 0x01b0] %asi, %r19 .word 0xe19fe160 ! 356: LDDFA_I ldda [%r31, 0x0160], %f16 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_268)+48, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_268)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_268: .word 0xa984be61 ! 357: WR_SET_SOFTINT_I wr %r18, 0x1e61, %set_softint setx 0x2af69eec2b1d8013, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_269: .word 0x39400001 ! 358: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_270 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_270 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610050, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_270: ta T_CHANGE_NONHPRIV .word 0x9b414000 ! 359: RDPC rd %pc, %r13 .word 0x89800011 ! 360: WRTICK_R wr %r0, %r17, %tick br_longdelay1_40_272: .word 0x34800001 ! 1: BG bg,a .word 0x9d97c000 ! 361: WRPR_WSTATE_R wrpr %r31, %r0, %wstate fpinit_40_273: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x87a80a44 ! 362: FCMPd fcmpd %fcc, %f0, %f4 jmptr_40_274: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 363: JMPL_R jmpl %r27 + %r0, %r27 ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 364: MEMBAR membar #LoadLoad | #Lookaside intveclr_40_276: nop ta T_CHANGE_HPRIV setx 0x2570409bb4caec48, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 365: FBPLG fblg,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_277 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_277 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610080, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_277: ta T_CHANGE_NONHPRIV .word 0x99414000 ! 366: RDPC rd %pc, %r12 brcommon3_40_278: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd937c010 ! 1: STQF_R - %f12, [%r16, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd897c034 ! 367: LDUHA_R lduha [%r31, %r20] 0x01, %r12 .word 0xd827e110 ! 368: STW_I stw %r12, [%r31 + 0x0110] .word 0xd8c7e128 ! 369: LDSWA_I ldswa [%r31, + 0x0128] %asi, %r12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_279)+32, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_279)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_279: .word 0xa98522f0 ! 370: WR_SET_SOFTINT_I wr %r20, 0x02f0, %set_softint nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_280 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_280 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610010, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_280: ta T_CHANGE_NONHPRIV .word 0x95414000 ! 371: RDPC rd %pc, %r10 .word 0xd4cfe000 ! 372: LDSBA_I ldsba [%r31, + 0x0000] %asi, %r10 splash_cmpr_40_281: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 373: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_282 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_282: ta T_CHANGE_NONHPRIV .word 0xd5e7e00c ! 374: CASA_R casa [%r31] %asi, %r12, %r10 br_badelay2_40_283: .word 0x97a149d1 ! 1: FDIVd fdivd %f36, %f48, %f42 pdist %f28, %f22, %f6 .word 0x93b50310 ! 375: ALIGNADDRESS alignaddr %r20, %r16, %r9 .word 0xe19fe180 ! 376: LDDFA_I ldda [%r31, 0x0180], %f16 .word 0xc36fe190 ! 1: PREFETCH_I prefetch [%r31 + 0x0190], #one_read .word 0x9f803180 ! 377: SIR sir 0x1180 .word 0xe1bfd920 ! 378: STDFA_R stda %f16, [%r0, %r31] .word 0xa2dc0010 ! 379: SMULcc_R smulcc %r16, %r16, %r17 fbul,a,pn %fcc0, skip_40_284 fbl skip_40_284 .align 2048 skip_40_284: .word 0xc36fe054 ! 380: PREFETCH_I prefetch [%r31 + 0x0054], #one_read nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_285 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_285 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100a0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_285: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 381: RDPC rd %pc, %r20 brcommon3_40_286: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xdb37c009 ! 1: STQF_R - %f13, [%r9, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xda9fc02a ! 382: LDDA_R ldda [%r31, %r10] 0x01, %r13 .word 0x28800001 ! 383: BLEU bleu,a .word 0xdadfc028 ! 384: LDXA_R ldxa [%r31, %r8] 0x01, %r13 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_288) + 16, 16, 16)) -> intp(3,0,1) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_288)&0xffffffff) + 16, 16, 16)) -> intp(3,0,1) #else setx 0xc65b32f1f95b8109, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_288: .word 0x39400001 ! 385: FBPUGE fbuge,a,pn %fcc0, tagged_40_289: taddcctv %r0, 0x1e23, %r16 .word 0xda07e0ac ! 386: LDUW_I lduw [%r31 + 0x00ac], %r13 ibp_40_290: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x40, %r16 ibp_startwait40_290: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_ibp_40_290 mov (~0x40&0xf0), %r16 ld [%r23], %r16 ibp_wait40_290: brnz %r16, ibp_wait40_290 ld [%r23], %r16 ba ibp_startwait40_290 mov 0x40, %r16 continue_ibp_40_290: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_40_290: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_40_290 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_ibp_40_290: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_ibp_40_290 ldxa [0x50]%asi, %r14 !Running_rw ibp_doit40_290: best_set_reg(0x0000004089eb1c28,%r19, %r20) stxa %r20, [%r18]0x42 stxa %r16, [0x60] %asi !Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi !restore %asi .word 0xe19fe1c0 ! 387: LDDFA_I ldda [%r31, 0x01c0], %f16 cwp_40_291: set user_data_start, %o7 .word 0x93902002 ! 388: WRPR_CWP_I wrpr %r0, 0x0002, %cwp pmu_40_292: nop ta T_CHANGE_PRIV setx 0xfffff0d4fffff430, %g1, %g7 .word 0xa3800007 ! 389: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_40_293: ta T_CHANGE_NONPRIV ! macro ceter_40_294: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0xa3410000 ! 391: RDTICK rd %tick, %r17 cwp_40_295: set user_data_start, %o7 .word 0x93902002 ! 392: WRPR_CWP_I wrpr %r0, 0x0002, %cwp splash_lsu_40_296: nop ta T_CHANGE_HPRIV set 0x1a4c27b4, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 393: FBPULE fbule,a,pn %fcc0, intveclr_40_297: nop ta T_CHANGE_HPRIV setx 0x343f9a6b4438e77f, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 394: FBPLG fblg,a,pn %fcc0, nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe25fc000 ! 395: LDX_R ldx [%r31 + %r0], %r17 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_40_298: ta T_CHANGE_NONPRIV ! macro dvapa_40_299: nop ta T_CHANGE_HPRIV mov 0xd06, %r20 mov 0x8, %r19 sllx %r20, 23, %r20 or %r19, %r20, %r19 stxa %r19, [%g0] ASI_LSU_CONTROL mov 0x38, %r18 stxa %r31, [%r18]0x58 ta T_CHANGE_NONHPRIV .word 0xc32fc013 ! 397: STXFSR_R st-sfr %f1, [%r19, %r31] mondo_40_300: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r12, [%r0+0x3e8] %asi .word 0x9d934002 ! 398: WRPR_WSTATE_R wrpr %r13, %r2, %wstate .word 0xc19fdc00 ! 399: LDDFA_R ldda [%r31, %r0], %f0 splash_decr_40_301: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r14, [%r1] 0x45 .word 0xa7824002 ! 400: WR_GRAPHICS_STATUS_REG_R wr %r9, %r2, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_302) + 0, 16, 16)) -> intp(7,0,17) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_302)&0xffffffff) + 0, 16, 16)) -> intp(7,0,17) #else setx 0xb3d94d2eb38995b4, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_302: .word 0x39400001 ! 401: FBPUGE fbuge,a,pn %fcc0, brcommon2_40_303: nop setx common_target, %r12, %r27 ba,a .+12 .word 0x9f8021d0 ! 1: SIR sir 0x01d0 ba,a .+8 jmpl %r27+0, %r27 .word 0xe1bfd920 ! 402: STDFA_R stda %f16, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_304 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_304: ta T_CHANGE_NONHPRIV .word 0xd3e7e011 ! 403: CASA_R casa [%r31] %asi, %r17, %r9 pmu_40_305: nop setx 0xfffff55dfffffb63, %g1, %g7 .word 0xa3800007 ! 404: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_40_306: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 405: JMPL_R jmpl %r27 + %r0, %r27 .word 0x89800011 ! 406: WRTICK_R wr %r0, %r17, %tick #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_308) + 56, 16, 16)) -> intp(2,0,21) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_308)&0xffffffff) + 56, 16, 16)) -> intp(2,0,21) #else setx 0xf4b5e7a73a948077, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_308: .word 0x39400001 ! 407: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_40_309: .word 0x81983607 ! 408: WRHPR_HPSTATE_I wrhpr %r0, 0x1607, %hpstate br_badelay2_40_310: .word 0x99a509d4 ! 1: FDIVd fdivd %f20, %f20, %f12 pdist %f16, %f22, %f22 .word 0xa9b34314 ! 409: ALIGNADDRESS alignaddr %r13, %r20, %r20 splash_cmpr_40_311: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 410: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x40, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_40_312 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00161fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_40_312: ta T_CHANGE_NONHPRIV .word 0xe5e7e00a ! 411: CASA_R casa [%r31] %asi, %r10, %r18 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_313)+56, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_313)&0xffffffff) +56, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_313: .word 0xa981b959 ! 412: WR_SET_SOFTINT_I wr %r6, 0x1959, %set_softint memptr_40_314: set 0x60340000, %r31 .word 0x8584256a ! 413: WRCCR_I wr %r16, 0x056a, %ccr .word 0x91930001 ! 414: WRPR_PIL_R wrpr %r12, %r1, %pil .word 0xe51fe110 ! 1: LDDF_I ldd [%r31, 0x0110], %f18 .word 0x9f802fae ! 415: SIR sir 0x0fae nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_316 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_316 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610040, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_316: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 416: RDPC rd %pc, %r11 intveclr_40_317: nop ta T_CHANGE_HPRIV setx 0x4fd992e26e44da7b, %r1, %r28 stxa %r28, [%g0] 0x72 ta T_CHANGE_NONHPRIV .word 0x25400001 ! 417: FBPLG fblg,a,pn %fcc0, splash_cmpr_40_318: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 418: WR_TICK_CMPR_REG_R wr %r0, %r17, %- setx 0x78fca6d8ba2d4319, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_319: .word 0x39400001 ! 419: FBPUGE fbuge,a,pn %fcc0, .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_40_320: ta T_CHANGE_NONHPRIV ! macro mondo_40_321: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r11, [%r0+0x3e8] %asi .word 0x9d950010 ! 421: WRPR_WSTATE_R wrpr %r20, %r16, %wstate splash_lsu_40_322: nop ta T_CHANGE_HPRIV set 0x067559ab, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 422: FBPULE fbule,a,pn %fcc0, .word 0x3a780001 ! 423: BPCC .word 0xda3fe008 ! 424: STD_I std %r13, [%r31 + 0x0008] .word 0x91d02034 ! 425: Tcc_I ta icc_or_xcc, %r0 + 52 otherw mov 0xb2, %r30 .word 0x83d0001e ! 426: Tcc_R te icc_or_xcc, %r0 + %r30 .word 0x2ccb0001 ! 1: BRGZ brgz,a,pt %r12, .word 0x8d903c8b ! 427: WRPR_PSTATE_I wrpr %r0, 0x1c8b, %pstate br_badelay2_40_324: .word 0x32800001 ! 1: BNE bne,a allclean .word 0x91b1030a ! 428: ALIGNADDRESS alignaddr %r4, %r10, %r8 vahole_40_325: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xd7e7e013 ! 429: CASA_R casa [%r31] %asi, %r19, %r11 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_40_326) + 8, 16, 16)) -> intp(1,0,8) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_40_326)&0xffffffff) + 8, 16, 16)) -> intp(1,0,8) #else setx 0x95ebb5c7179ef203, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_40_326: .word 0x39400001 ! 430: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_40_327: ta T_CHANGE_NONHPRIV .word 0x81983fed ! 431: WRHPR_HPSTATE_I wrhpr %r0, 0x1fed, %hpstate splash_htba_40_328: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 432: WRHPR_HTBA_R wrhpr %r0, %r12, %htba .word 0xd607c000 ! 433: LDUW_R lduw [%r31 + %r0], %r11 .word 0x97b04548 ! 434: FCMPEQ16 fcmpeq16 %d32, %d8, %r11 donret_40_329: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_329-donret_40_329-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00ef27e2 | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1111, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (40) done donretarg_40_329: .word 0xd8ffe05c ! 435: SWAPA_I swapa %r12, [%r31 + 0x005c] %asi .word 0xa7a4cd34 ! 436: FsMULd fsmuld %f19, %f20, %f50 splash_tba_40_330: ta T_CHANGE_PRIV setx 0x0000000400380000, %r11, %r12 .word 0x8b90000c ! 437: WRPR_TBA_R wrpr %r0, %r12, %tba nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe25fc000 ! 438: LDX_R ldx [%r31 + %r0], %r17 nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe25fc000 ! 439: LDX_R ldx [%r31 + %r0], %r17 donret_40_331: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_331-donret_40_331-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00e1d746 | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1ead, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (40) .word 0x34800001 ! 1: BG bg,a done donretarg_40_331: .word 0xe26fe10c ! 440: LDSTUB_I ldstub %r17, [%r31 + 0x010c] donret_40_332: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_332-donret_40_332-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x000dcbca | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x743, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) retry donretarg_40_332: .word 0x91a509d0 ! 441: FDIVd fdivd %f20, %f16, %f8 setx 0x7ae7159b2f449b09, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_40_333: .word 0x39400001 ! 442: FBPUGE fbuge,a,pn %fcc0, .word 0xe88fe170 ! 443: LDUBA_I lduba [%r31, + 0x0170] %asi, %r20 .word 0xe937e128 ! 444: STQF_I - %f20, [0x0128, %r31] ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 445: MEMBAR membar #LoadLoad | #Lookaside .word 0x9bb5048b ! 446: FCMPLE32 fcmple32 %d20, %d42, %r13 brcommon2_40_336: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xa9b7c714 ! 1: FMULD8SUx16 fmuld8ulx16 %f31, %f20, %d20 ba,a .+8 jmpl %r27+0, %r27 .word 0xc19fc2c0 ! 447: LDDFA_R ldda [%r31, %r0], %f0 .word 0xa24a0010 ! 448: MULX_R mulx %r8, %r16, %r17 splash_lsu_40_337: nop ta T_CHANGE_HPRIV set 0xaed6d48a, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 449: FBPULE fbule,a,pn %fcc0, mondo_40_338: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r11, [%r0+0x3d8] %asi .word 0x9d940013 ! 450: WRPR_WSTATE_R wrpr %r16, %r19, %wstate .word 0x89800011 ! 451: WRTICK_R wr %r0, %r17, %tick splash_hpstate_40_340: ta T_CHANGE_NONHPRIV .word 0x24800001 ! 1: BLE ble,a .word 0x81982d3d ! 452: WRHPR_HPSTATE_I wrhpr %r0, 0x0d3d, %hpstate pmu_40_341: nop ta T_CHANGE_PRIV setx 0xfffff2d8fffffba0, %g1, %g7 .word 0xa3800007 ! 453: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x91d02035 ! 454: Tcc_I ta icc_or_xcc, %r0 + 53 .word 0x93a049b3 ! 455: FDIVs fdivs %f1, %f19, %f9 .word 0xe73fc000 ! 456: STDF_R std %f19, [%r0, %r31] cwp_40_342: set user_data_start, %o7 .word 0x93902007 ! 457: WRPR_CWP_I wrpr %r0, 0x0007, %cwp jmptr_40_343: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 458: JMPL_R jmpl %r27 + %r0, %r27 jmptr_40_344: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 459: JMPL_R jmpl %r27 + %r0, %r27 jmptr_40_345: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 460: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe6bfc031 ! 461: STDA_R stda %r19, [%r31 + %r17] 0x01 brcommon1_40_347: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xa7702190 ! 1: POPC_I popc 0x0190, %r19 ba,a .+8 jmpl %r27+0, %r27 .word 0xc3ec8030 ! 462: PREFETCHA_R prefetcha [%r18, %r16] 0x01, #one_read .word 0x89800011 ! 463: WRTICK_R wr %r0, %r17, %tick ceter_40_349: nop ta T_CHANGE_HPRIV mov 3, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa9410000 ! 464: RDTICK rd %tick, %r20 splash_cmpr_40_350: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 465: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x94844002 ! 466: ADDcc_R addcc %r17, %r2, %r10 .word 0xd2800c60 ! 467: LDUWA_R lduwa [%r0, %r0] 0x63, %r9 memptr_40_351: set user_data_start, %r31 .word 0x85822c6d ! 468: WRCCR_I wr %r8, 0x0c6d, %ccr .word 0xd27fe050 ! 469: SWAP_I swap %r9, [%r31 + 0x0050] .word 0x93b7c7cc ! 1: PDIST pdistn %d62, %d12, %d40 .word 0x9f80270d ! 470: SIR sir 0x070d .word 0x91944008 ! 471: WRPR_PIL_R wrpr %r17, %r8, %pil .word 0x28780001 ! 472: BPLEU jmptr_40_353: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 473: JMPL_R jmpl %r27 + %r0, %r27 .word 0x95703261 ! 474: POPC_I popc 0x1261, %r10 unsupttte_40_355: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x97b4048d ! 475: FCMPLE32 fcmple32 %d16, %d44, %r11 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_40_356)+32, 16, 16)) -> intp(mask2tid(0x40),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_40_356)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x40),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_40_356: .word 0xa9827645 ! 476: WR_SET_SOFTINT_I wr %r9, 0x1645, %set_softint trapasi_40_357: nop mov 0x0, %r1 ! (VA for ASI 0x4c) .word 0xd8c84980 ! 477: LDSBA_R ldsba [%r1, %r0] 0x4c, %r12 .word 0xe19fe060 ! 478: LDDFA_I ldda [%r31, 0x0060], %f16 donret_40_358: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_358-donret_40_358-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d94a77 | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x2df, %htstate ta T_CHANGE_NONPRIV ! rand=0 (40) retry donretarg_40_358: .word 0xd8ffe144 ! 479: SWAPA_I swapa %r12, [%r31 + 0x0144] %asi invtsb_40_359: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 480: FBL fbl,a mondo_40_360: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r18, [%r0+0x3c8] %asi .word 0x9d91c012 ! 481: WRPR_WSTATE_R wrpr %r7, %r18, %wstate .word 0xc19fc3e0 ! 482: LDDFA_R ldda [%r31, %r0], %f0 br_badelay1_40_361: .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, .word 0xd937c008 ! 1: STQF_R - %f12, [%r8, %r31] .word 0xd9e7c02d ! 1: CASA_I casa [%r31] 0x 1, %r13, %r12 normalw .word 0x9b458000 ! 483: RD_SOFTINT_REG rd %softint, %r13 .word 0xc36fe0f0 ! 1: PREFETCH_I prefetch [%r31 + 0x00f0], #one_read .word 0x9f802afc ! 484: SIR sir 0x0afc .word 0xdb27e0c6 ! 485: STF_I st %f13, [0x00c6, %r31] .word 0xda0fc000 ! 486: LDUB_R ldub [%r31 + %r0], %r13 .word 0x26800001 ! 487: BL bl,a pmu_40_362: nop setx 0xfffffc6efffff233, %g1, %g7 .word 0xa3800007 ! 488: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8d903bbb ! 489: WRPR_PSTATE_I wrpr %r0, 0x1bbb, %pstate bcs skip_40_364 .word 0xc36cb1e1 ! 1: PREFETCH_I prefetch [%r18 + 0xfffff1e1], #one_read .align 32 skip_40_364: .word 0xc36fe1d4 ! 490: PREFETCH_I prefetch [%r31 + 0x01d4], #one_read donret_40_365: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_40_365-donret_40_365-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00c80f28 | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x597, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (40) done donretarg_40_365: .word 0xdaffe13a ! 491: SWAPA_I swapa %r13, [%r31 + 0x013a] %asi .word 0xdb27e046 ! 492: STF_I st %f13, [0x0046, %r31] .word 0xdaffc034 ! 493: SWAPA_R swapa %r13, [%r31 + %r20] 0x01 splash_cmpr_40_366: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 494: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xda5fc000 ! 495: LDX_R ldx [%r31 + %r0], %r13 .word 0x87afca4a ! 1: FCMPd fcmpd %fcc, %f62, %f10 .word 0x9f80357c ! 496: SIR sir 0x157c pmu_40_367: nop ta T_CHANGE_PRIV setx 0xfffff52afffff787, %g1, %g7 .word 0xa3800007 ! 497: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x40+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_40_368 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_40_368 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610000, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_40_368: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 498: RDPC rd %pc, %r20 change_to_randtl_40_369: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_40_369: .word 0x8f902000 ! 499: WRPR_TL_I wrpr %r0, 0x0000, %tl .word 0xe737c000 ! 500: STQF_R - %f19, [%r0, %r31] mondo_40_370: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r8, [%r0+0x3c8] %asi .word 0x9d950011 ! 501: WRPR_WSTATE_R wrpr %r20, %r17, %wstate nop nop ta T_CHANGE_PRIV wrpr %g0, %g0, %gl nop nop setx join_lbl_0_0, %g1, %g2 jmp %g2 nop fork_lbl_0_6: ta T_CHANGE_NONHPRIV br_longdelay1_20_0: .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 bcc,a skip_20_1 brgz,a,pt %r16, skip_20_1 .align 1024 skip_20_1: .word 0xc32fc000 ! 2: STXFSR_R st-sfr %f1, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_2 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_2: ta T_CHANGE_NONHPRIV .word 0xe7e7e010 ! 3: CASA_R casa [%r31] %asi, %r16, %r19 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_20_3: ta T_CHANGE_NONHPRIV ! macro splash_decr_20_4: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r16, [%r1] 0x45 .word 0xa781c008 ! 5: WR_GRAPHICS_STATUS_REG_R wr %r7, %r8, %- .word 0x87ac4ac8 ! 6: FCMPEd fcmped %fcc, %f48, %f8 vahole_20_5: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xc32fc00b ! 7: STXFSR_R st-sfr %f1, [%r11, %r31] memptr_20_6: set user_data_start, %r31 .word 0x85842319 ! 8: WRCCR_I wr %r16, 0x0319, %ccr .word 0x2e780001 ! 9: BPVS ceter_20_7: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0xa7410000 ! 10: RDTICK rd %tick, %r19 splash_lsu_20_8: nop ta T_CHANGE_HPRIV set 0x6e4ddb1a, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 11: FBPULE fbule,a,pn %fcc0, brcommon1_20_9: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd06fe160 ! 1: LDSTUB_I ldstub %r8, [%r31 + 0x0160] ba,a .+8 jmpl %r27+0, %r27 .word 0xa3b287d4 ! 12: PDIST pdistn %d10, %d20, %d48 .word 0x22800001 ! 13: BE be,a pmu_20_10: nop setx 0xfffff6cafffff3c0, %g1, %g7 .word 0xa3800007 ! 14: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x32780001 ! 15: BPNE pmu_20_11: nop ta T_CHANGE_PRIV setx 0xffffffc7ffffff70, %g1, %g7 .word 0xa3800007 ! 16: WR_PERF_COUNTER_R wr %r0, %r7, %- ibp_20_12: nop .word 0xc19fe1a0 ! 17: LDDFA_I ldda [%r31, 0x01a0], %f0 ibp_20_13: nop .word 0xe1bfdb60 ! 18: STDFA_R stda %f16, [%r0, %r31] .word 0xd65fe108 ! 19: LDX_I ldx [%r31 + 0x0108], %r11 .word 0xd727e042 ! 20: STF_I st %f11, [0x0042, %r31] .word 0x81580000 ! 21: FLUSHW flushw #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_14) + 0, 16, 16)) -> intp(4,0,13) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_14)&0xffffffff) + 0, 16, 16)) -> intp(4,0,13) #else setx 0x9694d3fbc3b1836f, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_14: .word 0x39400001 ! 22: FBPUGE fbuge,a,pn %fcc0, donret_20_15: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_15-donret_20_15-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00e59ca4 | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x6cf, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) done donretarg_20_15: .word 0xd6ffe0a0 ! 23: SWAPA_I swapa %r11, [%r31 + 0x00a0] %asi set 0x2d60, %l3 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT .word 0xa3b4c7d4 ! 24: PDIST pdistn %d50, %d20, %d48 .word 0xc1bfde00 ! 25: STDFA_R stda %f0, [%r0, %r31] pmu_20_16: nop ta T_CHANGE_PRIV setx 0xfffff03efffffd5c, %g1, %g7 .word 0xa3800007 ! 26: WR_PERF_COUNTER_R wr %r0, %r7, %- vahole_20_17: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xd11fc013 ! 27: LDDF_R ldd [%r31, %r19], %f8 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_18)+32, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_18)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_18: .word 0xa984f602 ! 28: WR_SET_SOFTINT_I wr %r19, 0x1602, %set_softint .word 0xa3a00166 ! 29: FABSq dis not found donret_20_20: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_20-donret_20_20-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x006dc92b | (28 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x17d4, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (20) .word 0x26cd0001 ! 1: BRLZ brlz,a,pt %r20, retry donretarg_20_20: .word 0xe2ffe150 ! 30: SWAPA_I swapa %r17, [%r31 + 0x0150] %asi splash_decr_20_21: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r14, [%r1] 0x45 .word 0xa7840001 ! 31: WR_GRAPHICS_STATUS_REG_R wr %r16, %r1, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_22) + 40, 16, 16)) -> intp(5,0,28) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_22)&0xffffffff) + 40, 16, 16)) -> intp(5,0,28) #else setx 0xbebdf247df603ddc, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_22: .word 0x39400001 ! 32: FBPUGE fbuge,a,pn %fcc0, memptr_20_23: set 0x60540000, %r31 .word 0x8582ee1d ! 33: WRCCR_I wr %r11, 0x0e1d, %ccr unsupttte_20_24: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x97a509c8 ! 34: FDIVd fdivd %f20, %f8, %f42 brcommon3_20_25: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c030 ! 1: CASA_I casa [%r31] 0x 1, %r16, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xd2bfc032 ! 35: STDA_R stda %r9, [%r31 + %r18] 0x01 jmptr_20_26: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 36: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_20_27: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 37: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_20_28: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 38: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_20_29: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3d8] %asi .word 0x9d910013 ! 39: WRPR_WSTATE_R wrpr %r4, %r19, %wstate brcommon3_20_30: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd26fe100 ! 1: LDSTUB_I ldstub %r9, [%r31 + 0x0100] ba,a .+8 jmpl %r27+0, %r27 .word 0xc32fc00d ! 40: STXFSR_R st-sfr %f1, [%r13, %r31] .word 0xd2dfe048 ! 41: LDXA_I ldxa [%r31, + 0x0048] %asi, %r9 .word 0xd327e0f9 ! 42: STF_I st %f9, [0x00f9, %r31] setx 0x9196b8a25cd73aed, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_31: .word 0x39400001 ! 43: FBPUGE fbuge,a,pn %fcc0, mondo_20_32: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r18, [%r0+0x3c8] %asi .word 0x9d918003 ! 44: WRPR_WSTATE_R wrpr %r6, %r3, %wstate ceter_20_33: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x91410000 ! 45: RDTICK rd %tick, %r8 .word 0x91944010 ! 46: WRPR_PIL_R wrpr %r17, %r16, %pil splash_tba_20_35: ta T_CHANGE_PRIV setx 0x00000004003a0000, %r11, %r12 .word 0x8b90000c ! 47: WRPR_TBA_R wrpr %r0, %r12, %tba mondo_20_36: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r11, [%r0+0x3e0] %asi .word 0x9d91c014 ! 48: WRPR_WSTATE_R wrpr %r7, %r20, %wstate .word 0xe2dfc033 ! 1: LDXA_R ldxa [%r31, %r19] 0x01, %r17 .word 0x9f803ad2 ! 49: SIR sir 0x1ad2 br_longdelay2_20_37: .word 0x2c800001 ! 1: BNEG bneg,a .word 0x39400001 ! 50: FBPUGE fbuge,a,pn %fcc0, splash_cmpr_20_38: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 51: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_39 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_39: ta T_CHANGE_NONHPRIV .word 0xe3e7e014 ! 52: CASA_R casa [%r31] %asi, %r20, %r17 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_40)+56, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_40)&0xffffffff) +56, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_40: .word 0xa98528bf ! 53: WR_SET_SOFTINT_I wr %r20, 0x08bf, %set_softint jmptr_20_41: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 54: JMPL_R jmpl %r27 + %r0, %r27 donret_20_42: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_42-donret_20_42-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d2c729 | (0x8a << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1226, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) retry donretarg_20_42: .word 0xe26fe172 ! 55: LDSTUB_I ldstub %r17, [%r31 + 0x0172] nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_43 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_43 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100d0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_43: ta T_CHANGE_NONHPRIV .word 0x91414000 ! 56: RDPC rd %pc, %r8 splash_hpstate_20_44: .word 0x81982cd7 ! 57: WRHPR_HPSTATE_I wrhpr %r0, 0x0cd7, %hpstate .word 0x2acd0001 ! 1: BRNZ brnz,a,pt %r20, .word 0x8d9037b9 ! 58: WRPR_PSTATE_I wrpr %r0, 0x17b9, %pstate mondo_20_46: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r3, [%r0+0x3c0] %asi .word 0x9d91c003 ! 59: WRPR_WSTATE_R wrpr %r7, %r3, %wstate mondo_20_47: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3d0] %asi .word 0x9d91800d ! 60: WRPR_WSTATE_R wrpr %r6, %r13, %wstate splash_hpstate_20_48: ta T_CHANGE_NONHPRIV .word 0x81983ef3 ! 61: WRHPR_HPSTATE_I wrhpr %r0, 0x1ef3, %hpstate .word 0xd31fe020 ! 62: LDDF_I ldd [%r31, 0x0020], %f9 vahole_20_49: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xc19fe0a0 ! 63: LDDFA_I ldda [%r31, 0x00a0], %f0 brcommon1_20_50: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c031 ! 1: CASA_I casa [%r31] 0x 1, %r17, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0x99a489a8 ! 64: FDIVs fdivs %f18, %f8, %f12 splash_hpstate_20_51: ta T_CHANGE_NONHPRIV .word 0x819826d8 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x06d8, %hpstate .word 0x8d9034b1 ! 66: WRPR_PSTATE_I wrpr %r0, 0x14b1, %pstate .word 0xc1bfc3e0 ! 67: STDFA_R stda %f0, [%r0, %r31] br_badelay1_20_54: .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0xd337e1a0 ! 1: STQF_I - %f9, [0x01a0, %r31] .word 0xd3e7c02d ! 1: CASA_I casa [%r31] 0x 1, %r13, %r9 normalw .word 0xa9458000 ! 68: RD_SOFTINT_REG rd %softint, %r20 .word 0xd82fe00e ! 69: STB_I stb %r12, [%r31 + 0x000e] donret_20_55: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_55-donret_20_55-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00f5b7b5 | (0x4f << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1707, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) .word 0x22c98001 ! 1: BRZ brz,a,pt %r6, done donretarg_20_55: .word 0x95a1c9cc ! 70: FDIVd fdivd %f38, %f12, %f10 nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_56 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_56: ta T_CHANGE_NONHPRIV .word 0xe7e7e009 ! 71: CASA_R casa [%r31] %asi, %r9, %r19 .word 0xc19fe0e0 ! 72: LDDFA_I ldda [%r31, 0x00e0], %f0 mondo_20_57: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r20, [%r0+0x3c8] %asi .word 0x9d908010 ! 73: WRPR_WSTATE_R wrpr %r2, %r16, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe65fc000 ! 74: LDX_R ldx [%r31 + %r0], %r19 .word 0xe727c000 ! 75: STF_R st %f19, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_58 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_58: ta T_CHANGE_NONHPRIV .word 0xe7e7e00b ! 76: CASA_R casa [%r31] %asi, %r11, %r19 .word 0x2a800001 ! 77: BCS bcs,a nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xe65fc000 ! 78: LDX_R ldx [%r31 + %r0], %r19 .word 0x9753c000 ! 79: RDPR_FQ donret_20_59: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_59-donret_20_59-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0054924f | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1adb, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) done donretarg_20_59: .word 0x9ba489cc ! 80: FDIVd fdivd %f18, %f12, %f44 .word 0xda8fe1c8 ! 81: LDUBA_I lduba [%r31, + 0x01c8] %asi, %r13 .word 0xc19fdf20 ! 82: LDDFA_R ldda [%r31, %r0], %f0 change_to_randtl_20_60: ta T_CHANGE_PRIV ! macro done_change_to_randtl_20_60: .word 0x8f902000 ! 83: WRPR_TL_I wrpr %r0, 0x0000, %tl splash_cmpr_20_61: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 84: WR_STICK_CMPR_REG_R wr %r0, %r17, %- jmptr_20_62: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 85: JMPL_R jmpl %r27 + %r0, %r27 mondo_20_63: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3e0] %asi .word 0x9d94c005 ! 86: WRPR_WSTATE_R wrpr %r19, %r5, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_64)+32, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_64)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_64: .word 0xa9846aea ! 87: WR_SET_SOFTINT_I wr %r17, 0x0aea, %set_softint .word 0xdb37e058 ! 88: STQF_I - %f13, [0x0058, %r31] mondo_20_65: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r1, [%r0+0x3c8] %asi .word 0x9d90c004 ! 89: WRPR_WSTATE_R wrpr %r3, %r4, %wstate .word 0xda0fc000 ! 90: LDUB_R ldub [%r31 + %r0], %r13 memptr_20_66: set user_data_start, %r31 .word 0x85846f60 ! 91: WRCCR_I wr %r17, 0x0f60, %ccr jmptr_20_67: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 92: JMPL_R jmpl %r27 + %r0, %r27 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_20_68: ta T_CHANGE_NONPRIV ! macro otherw mov 0xb5, %r30 .word 0x91d0001e ! 94: Tcc_R ta icc_or_xcc, %r0 + %r30 vahole_20_69: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xda9fe070 ! 95: LDDA_I ldda [%r31, + 0x0070] %asi, %r13 pmu_20_70: nop setx 0xfffff790ffffffe3, %g1, %g7 .word 0xa3800007 ! 96: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_20_71: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 97: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_20_72: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 98: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_hpstate_20_73: .word 0x8198379f ! 99: WRHPR_HPSTATE_I wrhpr %r0, 0x179f, %hpstate donret_20_74: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_74-donret_20_74-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00395589 | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x155, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, retry donretarg_20_74: .word 0xda6fe003 ! 100: LDSTUB_I ldstub %r13, [%r31 + 0x0003] change_to_randtl_20_75: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_20_75: .word 0x8f902002 ! 101: WRPR_TL_I wrpr %r0, 0x0002, %tl unsupttte_20_76: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xc3ed002c ! 102: PREFETCHA_R prefetcha [%r20, %r12] 0x01, #one_read .word 0x8d9037bf ! 103: WRPR_PSTATE_I wrpr %r0, 0x17bf, %pstate intveclr_20_78: nop ta T_CHANGE_HPRIV setx 0x6e241fd17c9bb99a, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 104: FBPLG fblg,a,pn %fcc0, donret_20_79: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_79-donret_20_79-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x007e381a | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x4d5, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) done donretarg_20_79: .word 0x95a489c5 ! 105: FDIVd fdivd %f18, %f36, %f10 .word 0xe4d7e038 ! 106: LDSHA_I ldsha [%r31, + 0x0038] %asi, %r18 tagged_20_80: tsubcctv %r12, 0x14e3, %r20 .word 0xe407e029 ! 107: LDUW_I lduw [%r31 + 0x0029], %r18 nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_81 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_81 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100f0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_81: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 108: RDPC rd %pc, %r11 splash_lsu_20_82: nop ta T_CHANGE_HPRIV set 0xa6060588, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 109: FBPULE fbule,a,pn %fcc0, splash_cmpr_20_83: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 110: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_htba_20_84: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 111: WRHPR_HTBA_R wrhpr %r0, %r12, %htba mondo_20_85: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r12, [%r0+0x3c0] %asi .word 0x9d944012 ! 112: WRPR_WSTATE_R wrpr %r17, %r18, %wstate .word 0xc1bfde00 ! 113: STDFA_R stda %f0, [%r0, %r31] .word 0xe19fc3e0 ! 114: LDDFA_R ldda [%r31, %r0], %f16 splash_cmpr_20_86: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 115: WR_TICK_CMPR_REG_R wr %r0, %r17, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_87)+8, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_87)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_87: .word 0xa984fe75 ! 116: WR_SET_SOFTINT_I wr %r19, 0x1e75, %set_softint brcommon3_20_88: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd137c014 ! 1: STQF_R - %f8, [%r20, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd03fe1c0 ! 117: STD_I std %r8, [%r31 + 0x01c0] .word 0x3b400001 ! 1: FBPLE fble,a,pn %fcc0, .word 0x8d9024f3 ! 118: WRPR_PSTATE_I wrpr %r0, 0x04f3, %pstate .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_20_90: ta T_CHANGE_NONPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_91)+0, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_91)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_91: .word 0xa982675f ! 120: WR_SET_SOFTINT_I wr %r9, 0x075f, %set_softint splash_cmpr_20_92: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 .word 0xaf800011 ! 121: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x93a00172 ! 122: FABSq dis not found ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 123: MEMBAR membar #LoadLoad | #Lookaside splash_cmpr_20_95: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 124: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe1bfde00 ! 125: STDFA_R stda %f16, [%r0, %r31] jmptr_20_96: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 126: JMPL_R jmpl %r27 + %r0, %r27 setx 0x3186bb01efbe9f99, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_97: .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, pmu_20_98: nop ta T_CHANGE_PRIV setx 0xfffff433fffffd5b, %g1, %g7 .word 0xa3800007 ! 128: WR_PERF_COUNTER_R wr %r0, %r7, %- donret_20_99: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_99-donret_20_99-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0096eff5 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x15ac, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) done donretarg_20_99: .word 0xa1a409d2 ! 129: FDIVd fdivd %f16, %f18, %f16 pmu_20_100: nop setx 0xfffff1f7fffff4e0, %g1, %g7 .word 0xa3800007 ! 130: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_20_101: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3e0] %asi .word 0x9d94c001 ! 131: WRPR_WSTATE_R wrpr %r19, %r1, %wstate nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_102 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_102: ta T_CHANGE_NONHPRIV .word 0xd9e7e008 ! 132: CASA_R casa [%r31] %asi, %r8, %r12 .word 0xc1bfc3e0 ! 133: STDFA_R stda %f0, [%r0, %r31] splash_tba_20_103: ta T_CHANGE_PRIV setx 0x00000004003a0000, %r11, %r12 .word 0x8b90000c ! 134: WRPR_TBA_R wrpr %r0, %r12, %tba splash_lsu_20_104: nop ta T_CHANGE_HPRIV set 0x79e627e2, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 135: FBPULE fbule,a,pn %fcc0, setx 0xcebd9153d90abf42, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_105: .word 0x39400001 ! 136: FBPUGE fbuge,a,pn %fcc0, change_to_randtl_20_106: ta T_CHANGE_PRIV ! macro done_change_to_randtl_20_106: .word 0x8f902001 ! 137: WRPR_TL_I wrpr %r0, 0x0001, %tl nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_107 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_107 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610060, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_107: ta T_CHANGE_NONHPRIV .word 0x99414000 ! 138: RDPC rd %pc, %r12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_108)+16, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_108)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_108: .word 0xa9812e05 ! 139: WR_SET_SOFTINT_I wr %r4, 0x0e05, %set_softint br_badelay1_20_109: .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, .word 0xe930a66d ! 1: STQF_I - %f20, [0x066d, %r2] .word 0xdbe7c028 ! 1: CASA_I casa [%r31] 0x 1, %r8, %r13 normalw .word 0x95458000 ! 140: RD_SOFTINT_REG rd %softint, %r10 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_20_110: ta T_CHANGE_NONHPRIV ! macro vahole_20_111: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0x87ac0a50 ! 142: FCMPd fcmpd %fcc, %f16, %f16 nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_112 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_112 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100e0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_112: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 143: RDPC rd %pc, %r20 .word 0xd91fe088 ! 144: LDDF_I ldd [%r31, 0x0088], %f12 setx 0x6be1f1e0c9d3ddc1, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_113: .word 0x39400001 ! 145: FBPUGE fbuge,a,pn %fcc0, .word 0xa6d48006 ! 146: UMULcc_R umulcc %r18, %r6, %r19 splash_cmpr_20_114: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 147: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_20_115: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3c8] %asi .word 0x9d94c004 ! 148: WRPR_WSTATE_R wrpr %r19, %r4, %wstate change_to_randtl_20_116: ta T_CHANGE_PRIV ! macro done_change_to_randtl_20_116: .word 0x8f902001 ! 149: WRPR_TL_I wrpr %r0, 0x0001, %tl change_to_randtl_20_117: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_20_117: .word 0x8f902000 ! 150: WRPR_TL_I wrpr %r0, 0x0000, %tl #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_118) + 40, 16, 16)) -> intp(1,0,26) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_118)&0xffffffff) + 40, 16, 16)) -> intp(1,0,26) #else setx 0x20587d4c7389b639, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_118: .word 0x39400001 ! 151: FBPUGE fbuge,a,pn %fcc0, memptr_20_119: set 0x60340000, %r31 .word 0x8582782c ! 152: WRCCR_I wr %r9, 0x182c, %ccr nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe05fc000 ! 153: LDX_R ldx [%r31 + %r0], %r16 .word 0x8d903781 ! 154: WRPR_PSTATE_I wrpr %r0, 0x1781, %pstate mondo_20_121: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3e8] %asi .word 0x9d950013 ! 155: WRPR_WSTATE_R wrpr %r20, %r19, %wstate .word 0x8d902d53 ! 156: WRPR_PSTATE_I wrpr %r0, 0x0d53, %pstate .word 0x91d020b5 ! 157: Tcc_I ta icc_or_xcc, %r0 + 181 setx 0x2ecbeb1c08b38ba0, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_123: .word 0x39400001 ! 158: FBPUGE fbuge,a,pn %fcc0, .word 0xc36d0012 ! 159: PREFETCH_R prefetch [%r20 + %r18], #one_read fpinit_20_124: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x91a009a4 ! 160: FDIVs fdivs %f0, %f4, %f8 splash_hpstate_20_125: ta T_CHANGE_NONHPRIV .word 0x20800001 ! 1: BN bn,a .word 0x81983691 ! 161: WRHPR_HPSTATE_I wrhpr %r0, 0x1691, %hpstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xe05fc000 ! 162: LDX_R ldx [%r31 + %r0], %r16 nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_126 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_126: ta T_CHANGE_NONHPRIV .word 0xe1e7e008 ! 163: CASA_R casa [%r31] %asi, %r8, %r16 nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_127 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_127: ta T_CHANGE_NONHPRIV .word 0xe1e7e00b ! 164: CASA_R casa [%r31] %asi, %r11, %r16 pmu_20_128: nop ta T_CHANGE_PRIV setx 0xfffff786fffff8a9, %g1, %g7 .word 0xa3800007 ! 165: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_20_129: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 166: WR_TICK_CMPR_REG_R wr %r0, %r17, %- ceter_20_130: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa9410000 ! 167: RDTICK rd %tick, %r20 jmptr_20_131: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 168: JMPL_R jmpl %r27 + %r0, %r27 .word 0x9b69c012 ! 169: SDIVX_R sdivx %r7, %r18, %r13 splash_cmpr_20_132: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 .word 0xb3800011 ! 170: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xd01fc000 ! 171: LDD_R ldd [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_133 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_133 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610040, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_133: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 172: RDPC rd %pc, %r16 jmptr_20_134: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 173: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe09fd140 ! 174: LDDA_R ldda [%r31, %r0] 0x8a, %r16 setx 0x99e0c1c07ee5761d, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_135: .word 0x39400001 ! 175: FBPUGE fbuge,a,pn %fcc0, splash_cmpr_20_136: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 176: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe0d7e168 ! 177: LDSHA_I ldsha [%r31, + 0x0168] %asi, %r16 splash_cmpr_20_137: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 178: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_20_138: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r18, [%r0+0x3d8] %asi .word 0x9d94c014 ! 179: WRPR_WSTATE_R wrpr %r19, %r20, %wstate change_to_randtl_20_139: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_20_139: .word 0x8f902000 ! 180: WRPR_TL_I wrpr %r0, 0x0000, %tl jmptr_20_140: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 181: JMPL_R jmpl %r27 + %r0, %r27 .word 0x91944013 ! 182: WRPR_PIL_R wrpr %r17, %r19, %pil donret_20_142: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_142-donret_20_142-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x004eaa7b | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1f02, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) retry donretarg_20_142: .word 0xa7a409d0 ! 183: FDIVd fdivd %f16, %f16, %f50 .word 0xe6c7e0a8 ! 184: LDSWA_I ldswa [%r31, + 0x00a8] %asi, %r19 .word 0xc1bfc3e0 ! 185: STDFA_R stda %f0, [%r0, %r31] .word 0xe6cfe1e8 ! 186: LDSBA_I ldsba [%r31, + 0x01e8] %asi, %r19 splash_cmpr_20_143: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 187: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x96850010 ! 188: ADDcc_R addcc %r20, %r16, %r11 ibp_20_144: nop ta T_CHANGE_NONHPRIV .word 0xc1bfd920 ! 189: STDFA_R stda %f0, [%r0, %r31] ceter_20_145: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x99410000 ! 190: RDTICK rd %tick, %r12 ceter_20_146: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x9b410000 ! 191: RDTICK rd %tick, %r13 setx 0x869b6a62eb12be5f, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_147: .word 0x39400001 ! 192: FBPUGE fbuge,a,pn %fcc0, invtsb_20_148: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 193: FBL fbl,a .word 0xa9a00172 ! 194: FABSq dis not found .word 0xe6c7e138 ! 195: LDSWA_I ldswa [%r31, + 0x0138] %asi, %r19 splash_lsu_20_150: nop ta T_CHANGE_HPRIV set 0x72d75940, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 196: FBPULE fbule,a,pn %fcc0, .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_20_151: ta T_CHANGE_NONPRIV ! macro .word 0xe65fe108 ! 198: LDX_I ldx [%r31 + 0x0108], %r19 splash_hpstate_20_152: ta T_CHANGE_NONHPRIV .word 0x2d400001 ! 1: FBPG fbg,a,pn %fcc0, .word 0x81983417 ! 199: WRHPR_HPSTATE_I wrhpr %r0, 0x1417, %hpstate .word 0x9753c000 ! 200: RDPR_FQ .word 0xd31fe1a0 ! 1: LDDF_I ldd [%r31, 0x01a0], %f9 .word 0x9f8030d4 ! 201: SIR sir 0x10d4 mondo_20_153: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r3, [%r0+0x3c8] %asi .word 0x9d910010 ! 202: WRPR_WSTATE_R wrpr %r4, %r16, %wstate jmptr_20_154: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 203: JMPL_R jmpl %r27 + %r0, %r27 brlez,a,pt %r9, skip_20_155 .word 0xc36a3ccf ! 1: PREFETCH_I prefetch [%r8 + 0xfffffccf], #one_read .align 2048 skip_20_155: .word 0xc36d3508 ! 204: PREFETCH_I prefetch [%r20 + 0xfffff508], #one_read pmu_20_156: nop ta T_CHANGE_PRIV setx 0xfffff88efffffae8, %g1, %g7 .word 0xa3800007 ! 205: WR_PERF_COUNTER_R wr %r0, %r7, %- setx 0xa8e93279d0b401c4, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_157: .word 0x39400001 ! 206: FBPUGE fbuge,a,pn %fcc0, .word 0xe677e14a ! 207: STX_I stx %r19, [%r31 + 0x014a] brcommon2_20_158: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xd9110005 ! 1: LDQF_R - [%r4, %r5], %f12 ba,a .+8 jmpl %r27+0, %r27 .word 0xe1bfe140 ! 208: STDFA_I stda %f16, [0x0140, %r31] .word 0x9afc8010 ! 209: SDIVcc_R sdivcc %r18, %r16, %r13 .word 0xd897e028 ! 210: LDUHA_I lduha [%r31, + 0x0028] %asi, %r12 .word 0x3c800001 ! 211: BPOS bpos,a change_to_randtl_20_159: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_20_159: .word 0x8f902000 ! 212: WRPR_TL_I wrpr %r0, 0x0000, %tl tagged_20_160: tsubcctv %r12, 0x1b85, %r9 .word 0xd807e090 ! 213: LDUW_I lduw [%r31 + 0x0090], %r12 br_badelay1_20_161: .word 0x34800001 ! 1: BG bg,a .word 0xd937c012 ! 1: STQF_R - %f12, [%r18, %r31] .word 0x99b7c4c8 ! 1: FCMPNE32 fcmpne32 %d62, %d8, %r12 normalw .word 0xa7458000 ! 214: RD_SOFTINT_REG rd %softint, %r19 pmu_20_162: nop setx 0xfffff30bfffff1d8, %g1, %g7 .word 0xa3800007 ! 215: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 216: WRTICK_R wr %r0, %r17, %tick pmu_20_164: nop ta T_CHANGE_PRIV setx 0xfffffd2cfffff4db, %g1, %g7 .word 0xa3800007 ! 217: WR_PERF_COUNTER_R wr %r0, %r7, %- otherw mov 0x32, %r30 .word 0x91d0001e ! 218: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xe1bfda00 ! 219: STDFA_R stda %f16, [%r0, %r31] .word 0xc1bfdc00 ! 220: STDFA_R stda %f0, [%r0, %r31] .word 0xc1bfe040 ! 221: STDFA_I stda %f0, [0x0040, %r31] setx 0x2530778fd122f4ea, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_165: .word 0x39400001 ! 222: FBPUGE fbuge,a,pn %fcc0, br_longdelay1_20_166: .word 0x30800001 ! 1: BA ba,a .word 0xbfefc000 ! 223: RESTORE_R restore %r31, %r0, %r31 nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_167 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_167: ta T_CHANGE_NONHPRIV .word 0xe1e7e012 ! 224: CASA_R casa [%r31] %asi, %r18, %r16 jmptr_20_168: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 225: JMPL_R jmpl %r27 + %r0, %r27 setx 0xa0e0c6333a4adb01, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_169: .word 0x39400001 ! 226: FBPUGE fbuge,a,pn %fcc0, mondo_20_170: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3d8] %asi .word 0x9d948003 ! 227: WRPR_WSTATE_R wrpr %r18, %r3, %wstate splash_cmpr_20_171: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 228: WR_TICK_CMPR_REG_R wr %r0, %r17, %- pmu_20_172: nop ta T_CHANGE_PRIV setx 0xfffff2ecfffff8f5, %g1, %g7 .word 0xa3800007 ! 229: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_20_173: nop ta T_CHANGE_HPRIV set 0xd69b57f2, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 230: FBPULE fbule,a,pn %fcc0, mondo_20_174: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3d8] %asi .word 0x9d944007 ! 231: WRPR_WSTATE_R wrpr %r17, %r7, %wstate memptr_20_175: set 0x60340000, %r31 .word 0x85847bcc ! 232: WRCCR_I wr %r17, 0x1bcc, %ccr mondo_20_176: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r13, [%r0+0x3c0] %asi .word 0x9d908002 ! 233: WRPR_WSTATE_R wrpr %r2, %r2, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_177)+32, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_177)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_177: .word 0xa984b7ef ! 234: WR_SET_SOFTINT_I wr %r18, 0x17ef, %set_softint splash_lsu_20_178: nop ta T_CHANGE_HPRIV set 0x224786a9, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 235: FBPULE fbule,a,pn %fcc0, pmu_20_179: nop setx 0xfffff48dfffff56a, %g1, %g7 .word 0xa3800007 ! 236: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_20_180: nop ta T_CHANGE_HPRIV set 0x5ecc6f49, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 237: FBPULE fbule,a,pn %fcc0, splash_cmpr_20_181: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 238: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe057e048 ! 239: LDSH_I ldsh [%r31 + 0x0048], %r16 donret_20_182: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_182-donret_20_182-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d9a480 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1fcf, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) retry donretarg_20_182: .word 0xe0ffe024 ! 240: SWAPA_I swapa %r16, [%r31 + 0x0024] %asi .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_20_183: ta T_CHANGE_NONPRIV ! macro .word 0xc1bfe160 ! 242: STDFA_I stda %f0, [0x0160, %r31] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_184)+24, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_184)&0xffffffff) +24, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_184: .word 0xa9823f16 ! 243: WR_SET_SOFTINT_I wr %r8, 0x1f16, %set_softint unsupttte_20_185: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xa1b08491 ! 244: FCMPLE32 fcmple32 %d2, %d48, %r16 .word 0x2a800001 ! 245: BCS bcs,a nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_186 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_186 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100c0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_186: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 246: RDPC rd %pc, %r11 setx 0xa0c40def4c65cf8d, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_187: .word 0x39400001 ! 247: FBPUGE fbuge,a,pn %fcc0, pmu_20_188: nop setx 0xfffffa94fffff3ce, %g1, %g7 .word 0xa3800007 ! 248: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_20_189: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 249: WR_STICK_CMPR_REG_R wr %r0, %r17, %- donret_20_190: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_190-donret_20_190-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00289e03 | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x7cf, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (20) retry donretarg_20_190: .word 0xa9a289c7 ! 250: FDIVd fdivd %f10, %f38, %f20 memptr_20_191: set 0x60340000, %r31 .word 0x8581f44d ! 251: WRCCR_I wr %r7, 0x144d, %ccr .word 0xe49fdc40 ! 252: LDDA_R ldda [%r31, %r0] 0xe2, %r18 invtsb_20_192: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 253: FBL fbl,a nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_193 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_193 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_193: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 254: RDPC rd %pc, %r19 splash_lsu_20_194: nop ta T_CHANGE_HPRIV set 0xb06ec3df, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 255: FBPULE fbule,a,pn %fcc0, .word 0x9153c000 ! 256: RDPR_FQ vahole_20_195: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xe83fe0a0 ! 257: STD_I std %r20, [%r31 + 0x00a0] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_196) + 40, 16, 16)) -> intp(2,0,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_196)&0xffffffff) + 40, 16, 16)) -> intp(2,0,3) #else setx 0x0e550a4b6ed2bf74, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_196: .word 0x39400001 ! 258: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_197 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_197: ta T_CHANGE_NONHPRIV .word 0xe9e7e014 ! 259: CASA_R casa [%r31] %asi, %r20, %r20 .word 0xe8c7e1a8 ! 260: LDSWA_I ldswa [%r31, + 0x01a8] %asi, %r20 vahole_20_198: nop ta T_CHANGE_NONHPRIV setx vahole_target3, %r18, %r27 jmpl %r27+0, %r27 .word 0x87ac0a48 ! 261: FCMPd fcmpd %fcc, %f16, %f8 .word 0xd697e068 ! 262: LDUHA_I lduha [%r31, + 0x0068] %asi, %r11 .word 0xd73fc000 ! 263: STDF_R std %f11, [%r0, %r31] .word 0xd68fe110 ! 264: LDUBA_I lduba [%r31, + 0x0110] %asi, %r11 pmu_20_199: nop setx 0xfffff284fffff20d, %g1, %g7 .word 0xa3800007 ! 265: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 266: WRTICK_R wr %r0, %r17, %tick vahole_20_201: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0x95a0c9b3 ! 267: FDIVs fdivs %f3, %f19, %f10 .word 0x29400001 ! 1: FBPL fbl,a,pn %fcc0, .word 0x8d902f7f ! 268: WRPR_PSTATE_I wrpr %r0, 0x0f7f, %pstate .word 0xe097e0f0 ! 269: LDUHA_I lduha [%r31, + 0x00f0] %asi, %r16 nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_203 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_203: ta T_CHANGE_NONHPRIV .word 0xe1e7e00c ! 270: CASA_R casa [%r31] %asi, %r12, %r16 .word 0xe07fe010 ! 271: SWAP_I swap %r16, [%r31 + 0x0010] .word 0x28780001 ! 272: BPLEU cwp_20_204: set user_data_start, %o7 .word 0x93902003 ! 273: WRPR_CWP_I wrpr %r0, 0x0003, %cwp pmu_20_205: nop ta T_CHANGE_PRIV setx 0xfffff686fffffea5, %g1, %g7 .word 0xa3800007 ! 274: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_20_206: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3e0] %asi .word 0x9d934011 ! 275: WRPR_WSTATE_R wrpr %r13, %r17, %wstate br_badelay3_20_207: .word 0x32800001 ! 1: BNE bne,a .word 0x34800001 ! 1: BG bg,a .word 0xa9a0054d ! 1: FSQRTd fsqrt .word 0xa3a28830 ! 276: FADDs fadds %f10, %f16, %f17 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_20_208: ta T_CHANGE_NONPRIV ! macro .word 0x89800011 ! 278: WRTICK_R wr %r0, %r17, %tick mondo_20_210: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r1, [%r0+0x3c0] %asi .word 0x9d944004 ! 279: WRPR_WSTATE_R wrpr %r17, %r4, %wstate donret_20_211: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_211-donret_20_211-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00659b85 | (0x58 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1505, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (20) done donretarg_20_211: .word 0xd86fe1d5 ! 280: LDSTUB_I ldstub %r12, [%r31 + 0x01d5] donret_20_212: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_212-donret_20_212-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0049a58e | (0x82 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x111f, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (20) retry donretarg_20_212: .word 0x99a309c1 ! 281: FDIVd fdivd %f12, %f32, %f12 brcommon1_20_213: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xe9e7c029 ! 1: CASA_I casa [%r31] 0x 1, %r9, %r20 ba,a .+8 jmpl %r27+0, %r27 .word 0x95a049c4 ! 282: FDIVd fdivd %f32, %f4, %f10 .word 0xc19fe1c0 ! 283: LDDFA_I ldda [%r31, 0x01c0], %f0 .word 0x8d9037af ! 284: WRPR_PSTATE_I wrpr %r0, 0x17af, %pstate splash_cmpr_20_215: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 285: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_20_216: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 286: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_20_217: ta T_CHANGE_NONPRIV ! macro .word 0x2d400001 ! 1: FBPG fbg,a,pn %fcc0, .word 0x8d9035a7 ! 288: WRPR_PSTATE_I wrpr %r0, 0x15a7, %pstate splash_lsu_20_219: nop ta T_CHANGE_HPRIV set 0xb6059e1f, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 289: FBPULE fbule,a,pn %fcc0, donret_20_220: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_220-donret_20_220-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00905cf1 | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1486, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) .word 0x3c800001 ! 1: BPOS bpos,a retry donretarg_20_220: .word 0xd66fe1ff ! 290: LDSTUB_I ldstub %r11, [%r31 + 0x01ff] .word 0x93d020b5 ! 291: Tcc_I tne icc_or_xcc, %r0 + 181 setx 0x693e3c632af50f6c, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_221: .word 0x39400001 ! 292: FBPUGE fbuge,a,pn %fcc0, brcommon3_20_222: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd737e010 ! 1: STQF_I - %f11, [0x0010, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd7e7e012 ! 293: CASA_R casa [%r31] %asi, %r18, %r11 .word 0xd6d7e128 ! 294: LDSHA_I ldsha [%r31, + 0x0128] %asi, %r11 pmu_20_223: nop ta T_CHANGE_PRIV setx 0xfffff15bfffff2b0, %g1, %g7 .word 0xa3800007 ! 295: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x99a00171 ! 296: FABSq dis not found #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_225)+0, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_225)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_225: .word 0xa984f0ef ! 297: WR_SET_SOFTINT_I wr %r19, 0x10ef, %set_softint memptr_20_226: set 0x60140000, %r31 .word 0x8584aab2 ! 298: WRCCR_I wr %r18, 0x0ab2, %ccr mondo_20_227: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r13, [%r0+0x3e8] %asi .word 0x9d928011 ! 299: WRPR_WSTATE_R wrpr %r10, %r17, %wstate .word 0xd297e170 ! 300: LDUHA_I lduha [%r31, + 0x0170] %asi, %r9 vahole_20_228: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0x99a4c9d3 ! 301: FDIVd fdivd %f50, %f50, %f12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_229)+48, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_229)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_229: .word 0xa984a0ee ! 302: WR_SET_SOFTINT_I wr %r18, 0x00ee, %set_softint .word 0x8d903bb7 ! 303: WRPR_PSTATE_I wrpr %r0, 0x1bb7, %pstate vahole_20_231: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xe91fc009 ! 304: LDDF_R ldd [%r31, %r9], %f20 trapasi_20_232: nop mov 0x8, %r1 ! (VA for ASI 0x4c) .word 0xe8d04980 ! 305: LDSHA_R ldsha [%r1, %r0] 0x4c, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_233)+0, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_233)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_233: .word 0xa98477df ! 306: WR_SET_SOFTINT_I wr %r17, 0x17df, %set_softint #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_234) + 48, 16, 16)) -> intp(0,0,28) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_234)&0xffffffff) + 48, 16, 16)) -> intp(0,0,28) #else setx 0x373392c1d1268766, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_234: .word 0x39400001 ! 307: FBPUGE fbuge,a,pn %fcc0, .word 0xe83fc000 ! 308: STD_R std %r20, [%r31 + %r0] pmu_20_235: nop ta T_CHANGE_PRIV setx 0xfffff7bffffff3be, %g1, %g7 .word 0xa3800007 ! 309: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_236 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_236 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_236: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 310: RDPC rd %pc, %r17 nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_237 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_237: ta T_CHANGE_NONHPRIV .word 0xd1e7e012 ! 311: CASA_R casa [%r31] %asi, %r18, %r8 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_20_238: ta T_CHANGE_NONPRIV ! macro nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_239 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_239: ta T_CHANGE_NONHPRIV .word 0xd1e7e013 ! 313: CASA_R casa [%r31] %asi, %r19, %r8 .word 0xd1e7c028 ! 1: CASA_I casa [%r31] 0x 1, %r8, %r8 .word 0x9f802958 ! 314: SIR sir 0x0958 .word 0x93d02033 ! 315: Tcc_I tne icc_or_xcc, %r0 + 51 splash_cmpr_20_240: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 316: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_20_241: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r7, [%r0+0x3e8] %asi .word 0x9d940007 ! 317: WRPR_WSTATE_R wrpr %r16, %r7, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xd05fc000 ! 318: LDX_R ldx [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_242 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_242: ta T_CHANGE_NONHPRIV .word 0xd1e7e00b ! 319: CASA_R casa [%r31] %asi, %r11, %r8 br_longdelay1_20_243: .word 0x20800001 ! 1: BN bn,a .word 0xbfefc000 ! 320: RESTORE_R restore %r31, %r0, %r31 splash_cmpr_20_244: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 321: WR_TICK_CMPR_REG_R wr %r0, %r17, %- pmu_20_245: nop ta T_CHANGE_PRIV setx 0xfffff4b2fffff3a1, %g1, %g7 .word 0xa3800007 ! 322: WR_PERF_COUNTER_R wr %r0, %r7, %- pmu_20_246: nop setx 0xfffffaa4fffffceb, %g1, %g7 .word 0xa3800007 ! 323: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xd127c000 ! 324: STF_R st %f8, [%r0, %r31] .word 0x89800011 ! 325: WRTICK_R wr %r0, %r17, %tick .word 0x9ba00172 ! 326: FABSq dis not found mondo_20_249: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r1, [%r0+0x3e0] %asi .word 0x9d92c001 ! 327: WRPR_WSTATE_R wrpr %r11, %r1, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_250) + 8, 16, 16)) -> intp(0,0,4) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_250)&0xffffffff) + 8, 16, 16)) -> intp(0,0,4) #else setx 0xa7e621cc0b9fb2ef, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_250: .word 0x39400001 ! 328: FBPUGE fbuge,a,pn %fcc0, donret_20_251: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_251-donret_20_251-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00415a35 | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xf73, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (20) .word 0x3f400001 ! 1: FBPO fbo,a,pn %fcc0, done donretarg_20_251: .word 0xa3a349d0 ! 329: FDIVd fdivd %f44, %f16, %f48 .word 0xd4c7e000 ! 330: LDSWA_I ldswa [%r31, + 0x0000] %asi, %r10 .word 0xe1bfe180 ! 331: STDFA_I stda %f16, [0x0180, %r31] nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xd45fc000 ! 332: LDX_R ldx [%r31 + %r0], %r10 br_badelay3_20_252: .word 0x20800001 ! 1: BN bn,a .word 0xdb5dae7f ! Random illegal ? .word 0xa7a00553 ! 1: FSQRTd fsqrt .word 0xa3a48823 ! 333: FADDs fadds %f18, %f3, %f17 splash_hpstate_20_253: .word 0x3c800001 ! 1: BPOS bpos,a .word 0x81982dc5 ! 334: WRHPR_HPSTATE_I wrhpr %r0, 0x0dc5, %hpstate mondo_20_254: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r1, [%r0+0x3c8] %asi .word 0x9d908006 ! 335: WRPR_WSTATE_R wrpr %r2, %r6, %wstate .word 0xe31fc011 ! 1: LDDF_R ldd [%r31, %r17], %f17 .word 0x9f803e71 ! 336: SIR sir 0x1e71 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_20_255: ta T_CHANGE_NONHPRIV ! macro .word 0xe277e000 ! 338: STX_I stx %r17, [%r31 + 0x0000] pmu_20_256: nop ta T_CHANGE_PRIV setx 0xfffff457fffff601, %g1, %g7 .word 0xa3800007 ! 339: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xe327c000 ! 340: STF_R st %f17, [%r0, %r31] otherw mov 0x31, %r30 .word 0x91d0001e ! 341: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xe227e0d8 ! 342: STW_I stw %r17, [%r31 + 0x00d8] setx 0x27556a6762a1daab, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_257: .word 0x39400001 ! 343: FBPUGE fbuge,a,pn %fcc0, jmptr_20_258: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 344: JMPL_R jmpl %r27 + %r0, %r27 donret_20_259: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_259-donret_20_259-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0042c1cb | (0x8b << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xccd, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) .word 0x2ec8c001 ! 1: BRGEZ brgez,a,pt %r3, done donretarg_20_259: .word 0xa9a4c9c9 ! 345: FDIVd fdivd %f50, %f40, %f20 jmptr_20_260: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 346: JMPL_R jmpl %r27 + %r0, %r27 .word 0x95a00163 ! 347: FABSq dis not found .word 0x94c12c76 ! 348: ADDCcc_I addccc %r4, 0x0c76, %r10 mondo_20_262: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r7, [%r0+0x3d0] %asi .word 0x9d90c00a ! 349: WRPR_WSTATE_R wrpr %r3, %r10, %wstate .word 0x35400001 ! 1: FBPUE fbue,a,pn %fcc0, .word 0x8d903d3c ! 350: WRPR_PSTATE_I wrpr %r0, 0x1d3c, %pstate .word 0xe19fe0e0 ! 351: LDDFA_I ldda [%r31, 0x00e0], %f16 .word 0x89800011 ! 352: WRTICK_R wr %r0, %r17, %tick .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_20_265: ta T_CHANGE_NONHPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_266) + 32, 16, 16)) -> intp(0,0,4) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_266)&0xffffffff) + 32, 16, 16)) -> intp(0,0,4) #else setx 0x0809df1e93cdb108, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_266: .word 0x39400001 ! 354: FBPUGE fbuge,a,pn %fcc0, vahole_20_267: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe69fe1e0 ! 355: LDDA_I ldda [%r31, + 0x01e0] %asi, %r19 .word 0xe19fe0a0 ! 356: LDDFA_I ldda [%r31, 0x00a0], %f16 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_268)+40, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_268)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_268: .word 0xa981a1a6 ! 357: WR_SET_SOFTINT_I wr %r6, 0x01a6, %set_softint setx 0x7dee86617e586102, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_269: .word 0x39400001 ! 358: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_270 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_270 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610010, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_270: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 359: RDPC rd %pc, %r20 .word 0x89800011 ! 360: WRTICK_R wr %r0, %r17, %tick br_longdelay1_20_272: .word 0x32800001 ! 1: BNE bne,a .word 0xbfefc000 ! 361: RESTORE_R restore %r31, %r0, %r31 fpinit_20_273: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x91a009a4 ! 362: FDIVs fdivs %f0, %f4, %f8 jmptr_20_274: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 363: JMPL_R jmpl %r27 + %r0, %r27 ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 364: MEMBAR membar #LoadLoad | #Lookaside intveclr_20_276: nop ta T_CHANGE_HPRIV setx 0xe0b986416522f1b5, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 365: FBPLG fblg,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_277 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_277 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100a0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_277: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 366: RDPC rd %pc, %r11 brcommon3_20_278: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd937c00d ! 1: STQF_R - %f12, [%r13, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd91fc010 ! 367: LDDF_R ldd [%r31, %r16], %f12 .word 0xd827e165 ! 368: STW_I stw %r12, [%r31 + 0x0165] .word 0xd8c7e050 ! 369: LDSWA_I ldswa [%r31, + 0x0050] %asi, %r12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_279)+32, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_279)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_279: .word 0xa980aa89 ! 370: WR_SET_SOFTINT_I wr %r2, 0x0a89, %set_softint nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_280 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_280 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100e0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_280: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 371: RDPC rd %pc, %r19 .word 0xd4cfe0a8 ! 372: LDSBA_I ldsba [%r31, + 0x00a8] %asi, %r10 splash_cmpr_20_281: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 373: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_282 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_282: ta T_CHANGE_NONHPRIV .word 0xd5e7e009 ! 374: CASA_R casa [%r31] %asi, %r9, %r10 br_badelay2_20_283: .word 0x93a209d2 ! 1: FDIVd fdivd %f8, %f18, %f40 pdist %f28, %f10, %f18 .word 0x99b40301 ! 375: ALIGNADDRESS alignaddr %r16, %r1, %r12 .word 0xe19fe100 ! 376: LDDFA_I ldda [%r31, 0x0100], %f16 .word 0xc30fc00a ! 1: LDXFSR_R ld-fsr [%r31, %r10], %f1 .word 0x9f802b9a ! 377: SIR sir 0x0b9a .word 0xc1bfdc00 ! 378: STDFA_R stda %f0, [%r0, %r31] .word 0xa8dd000d ! 379: SMULcc_R smulcc %r20, %r13, %r20 brlz,a,pt %r19, skip_20_284 fbg skip_20_284 .align 2048 skip_20_284: .word 0xe9e7c020 ! 380: CASA_I casa [%r31] 0x 1, %r0, %r20 nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_285 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_285 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_285: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 381: RDPC rd %pc, %r17 brcommon3_20_286: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xdb37c012 ! 1: STQF_R - %f13, [%r18, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xdb3fc014 ! 382: STDF_R std %f13, [%r20, %r31] .word 0x28800001 ! 383: BLEU bleu,a .word 0xdb1fe1a0 ! 384: LDDF_I ldd [%r31, 0x01a0], %f13 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_288) + 8, 16, 16)) -> intp(6,0,4) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_288)&0xffffffff) + 8, 16, 16)) -> intp(6,0,4) #else setx 0x2b0d077d5329150c, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_288: .word 0x39400001 ! 385: FBPUGE fbuge,a,pn %fcc0, tagged_20_289: taddcctv %r3, 0x1d4d, %r17 .word 0xda07e198 ! 386: LDUW_I lduw [%r31 + 0x0198], %r13 ibp_20_290: nop .word 0xc1bfda00 ! 387: STDFA_R stda %f0, [%r0, %r31] cwp_20_291: set user_data_start, %o7 .word 0x93902000 ! 388: WRPR_CWP_I wrpr %r0, 0x0000, %cwp pmu_20_292: nop ta T_CHANGE_PRIV setx 0xfffff140fffff67f, %g1, %g7 .word 0xa3800007 ! 389: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_20_293: ta T_CHANGE_NONPRIV ! macro ceter_20_294: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0x95410000 ! 391: RDTICK rd %tick, %r10 cwp_20_295: set user_data_start, %o7 .word 0x93902000 ! 392: WRPR_CWP_I wrpr %r0, 0x0000, %cwp splash_lsu_20_296: nop ta T_CHANGE_HPRIV set 0x4f501005, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 393: FBPULE fbule,a,pn %fcc0, intveclr_20_297: nop ta T_CHANGE_HPRIV setx 0x550347884561ba7e, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 394: FBPLG fblg,a,pn %fcc0, nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe25fc000 ! 395: LDX_R ldx [%r31 + %r0], %r17 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_20_298: ta T_CHANGE_NONPRIV ! macro dvapa_20_299: nop ta T_CHANGE_HPRIV mov 0xbd6, %r20 mov 0x14, %r19 sllx %r20, 23, %r20 or %r19, %r20, %r19 stxa %r19, [%g0] ASI_LSU_CONTROL mov 0x38, %r18 stxa %r31, [%r18]0x58 ta T_CHANGE_NONHPRIV .word 0xe31fe110 ! 397: LDDF_I ldd [%r31, 0x0110], %f17 mondo_20_300: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r11, [%r0+0x3c0] %asi .word 0x9d950001 ! 398: WRPR_WSTATE_R wrpr %r20, %r1, %wstate .word 0xe19fd920 ! 399: LDDFA_R ldda [%r31, %r0], %f16 splash_decr_20_301: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r14, [%r1] 0x45 .word 0xa7840013 ! 400: WR_GRAPHICS_STATUS_REG_R wr %r16, %r19, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_302) + 0, 16, 16)) -> intp(5,0,1) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_302)&0xffffffff) + 0, 16, 16)) -> intp(5,0,1) #else setx 0x13c70b920b4455e5, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_302: .word 0x39400001 ! 401: FBPUGE fbuge,a,pn %fcc0, brcommon2_20_303: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xa5a00550 ! 1: FSQRTd fsqrt ba,a .+8 jmpl %r27+0, %r27 .word 0xc1bfe1a0 ! 402: STDFA_I stda %f0, [0x01a0, %r31] nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_304 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00161fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_304: ta T_CHANGE_NONHPRIV .word 0xd3e7e00a ! 403: CASA_R casa [%r31] %asi, %r10, %r9 pmu_20_305: nop setx 0xfffff0b3fffffab6, %g1, %g7 .word 0xa3800007 ! 404: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_20_306: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 405: JMPL_R jmpl %r27 + %r0, %r27 .word 0x89800011 ! 406: WRTICK_R wr %r0, %r17, %tick #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_308) + 48, 16, 16)) -> intp(3,0,5) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_308)&0xffffffff) + 48, 16, 16)) -> intp(3,0,5) #else setx 0xd23f188784f0b496, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_308: .word 0x39400001 ! 407: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_20_309: .word 0x81983d91 ! 408: WRHPR_HPSTATE_I wrhpr %r0, 0x1d91, %hpstate br_badelay2_20_310: .word 0xa1a489d2 ! 1: FDIVd fdivd %f18, %f18, %f16 pdist %f20, %f4, %f28 .word 0xa5b4c304 ! 409: ALIGNADDRESS alignaddr %r19, %r4, %r18 splash_cmpr_20_311: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 410: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x20, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_20_312 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_20_312: ta T_CHANGE_NONHPRIV .word 0xe5e7e008 ! 411: CASA_R casa [%r31] %asi, %r8, %r18 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_313)+8, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_313)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_313: .word 0xa982fa72 ! 412: WR_SET_SOFTINT_I wr %r11, 0x1a72, %set_softint memptr_20_314: set 0x60540000, %r31 .word 0x8582ab30 ! 413: WRCCR_I wr %r10, 0x0b30, %ccr .word 0x9191c007 ! 414: WRPR_PIL_R wrpr %r7, %r7, %pil .word 0xe497c032 ! 1: LDUHA_R lduha [%r31, %r18] 0x01, %r18 .word 0x9f802865 ! 415: SIR sir 0x0865 nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_316 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_316 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_316: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 416: RDPC rd %pc, %r17 intveclr_20_317: nop ta T_CHANGE_HPRIV setx 0xc91d96a726a4af62, %r1, %r28 stxa %r28, [%g0] 0x72 ta T_CHANGE_NONHPRIV .word 0x25400001 ! 417: FBPLG fblg,a,pn %fcc0, splash_cmpr_20_318: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 418: WR_TICK_CMPR_REG_R wr %r0, %r17, %- setx 0x82ad2ffbf2490b7c, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_319: .word 0x39400001 ! 419: FBPUGE fbuge,a,pn %fcc0, .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_20_320: ta T_CHANGE_NONHPRIV ! macro mondo_20_321: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r18, [%r0+0x3e8] %asi .word 0x9d950003 ! 421: WRPR_WSTATE_R wrpr %r20, %r3, %wstate splash_lsu_20_322: nop ta T_CHANGE_HPRIV set 0x7fc8a7eb, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 422: FBPULE fbule,a,pn %fcc0, .word 0x3a780001 ! 423: BPCC .word 0xda3fe0ab ! 424: STD_I std %r13, [%r31 + 0x00ab] .word 0x91d020b4 ! 425: Tcc_I ta icc_or_xcc, %r0 + 180 otherw mov 0x30, %r30 .word 0x91d0001e ! 426: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0x22800001 ! 1: BE be,a .word 0x8d902c0c ! 427: WRPR_PSTATE_I wrpr %r0, 0x0c0c, %pstate br_badelay2_20_324: .word 0x32800001 ! 1: BNE bne,a allclean .word 0xa9b0430b ! 428: ALIGNADDRESS alignaddr %r1, %r11, %r20 vahole_20_325: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xd69fc034 ! 429: LDDA_R ldda [%r31, %r20] 0x01, %r11 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_20_326) + 56, 16, 16)) -> intp(5,0,24) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_20_326)&0xffffffff) + 56, 16, 16)) -> intp(5,0,24) #else setx 0x3d030e1c688cf288, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_20_326: .word 0x39400001 ! 430: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_20_327: ta T_CHANGE_NONHPRIV .word 0x819834d1 ! 431: WRHPR_HPSTATE_I wrhpr %r0, 0x14d1, %hpstate splash_htba_20_328: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 432: WRHPR_HTBA_R wrhpr %r0, %r12, %htba .word 0xd607c000 ! 433: LDUW_R lduw [%r31 + %r0], %r11 .word 0xa5b50551 ! 434: FCMPEQ16 fcmpeq16 %d20, %d48, %r18 donret_20_329: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_329-donret_20_329-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00fc2af5 | (0x82 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xc49, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (20) done donretarg_20_329: .word 0xd8ffe0d4 ! 435: SWAPA_I swapa %r12, [%r31 + 0x00d4] %asi .word 0xa1a40d23 ! 436: FsMULd fsmuld %f16, %f34, %f16 splash_tba_20_330: ta T_CHANGE_PRIV setx 0x00000004003a0000, %r11, %r12 .word 0x8b90000c ! 437: WRPR_TBA_R wrpr %r0, %r12, %tba nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xe25fc000 ! 438: LDX_R ldx [%r31 + %r0], %r17 nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xe25fc000 ! 439: LDX_R ldx [%r31 + %r0], %r17 donret_20_331: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_331-donret_20_331-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x004da436 | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x96, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (20) .word 0x24c8c001 ! 1: BRLEZ brlez,a,pt %r3, done donretarg_20_331: .word 0xe26fe0d6 ! 440: LDSTUB_I ldstub %r17, [%r31 + 0x00d6] donret_20_332: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_332-donret_20_332-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00665569 | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xd44, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) retry donretarg_20_332: .word 0x9ba4c9c7 ! 441: FDIVd fdivd %f50, %f38, %f44 setx 0xcc19be796bcca753, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_20_333: .word 0x39400001 ! 442: FBPUGE fbuge,a,pn %fcc0, .word 0xe88fe1b8 ! 443: LDUBA_I lduba [%r31, + 0x01b8] %asi, %r20 .word 0xe937e150 ! 444: STQF_I - %f20, [0x0150, %r31] ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 445: MEMBAR membar #LoadLoad | #Lookaside .word 0xa1702d5d ! 446: POPC_I popc 0x0d5d, %r16 brcommon2_20_336: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xe1108007 ! 1: LDQF_R - [%r2, %r7], %f16 ba,a .+8 jmpl %r27+0, %r27 .word 0xc19fdf20 ! 447: LDDFA_R ldda [%r31, %r0], %f0 .word 0xa44ac004 ! 448: MULX_R mulx %r11, %r4, %r18 splash_lsu_20_337: nop ta T_CHANGE_HPRIV set 0x7c0f9714, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 449: FBPULE fbule,a,pn %fcc0, mondo_20_338: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r17, [%r0+0x3e0] %asi .word 0x9d948014 ! 450: WRPR_WSTATE_R wrpr %r18, %r20, %wstate .word 0x89800011 ! 451: WRTICK_R wr %r0, %r17, %tick splash_hpstate_20_340: ta T_CHANGE_NONHPRIV .word 0x38800001 ! 1: BGU bgu,a .word 0x81983c9b ! 452: WRHPR_HPSTATE_I wrhpr %r0, 0x1c9b, %hpstate pmu_20_341: nop ta T_CHANGE_PRIV setx 0xfffff056fffffe56, %g1, %g7 .word 0xa3800007 ! 453: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x83d02035 ! 454: Tcc_I te icc_or_xcc, %r0 + 53 .word 0x93a409b4 ! 455: FDIVs fdivs %f16, %f20, %f9 .word 0xe73fc000 ! 456: STDF_R std %f19, [%r0, %r31] cwp_20_342: set user_data_start, %o7 .word 0x93902006 ! 457: WRPR_CWP_I wrpr %r0, 0x0006, %cwp jmptr_20_343: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 458: JMPL_R jmpl %r27 + %r0, %r27 jmptr_20_344: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 459: JMPL_R jmpl %r27 + %r0, %r27 jmptr_20_345: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 460: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe73fc014 ! 461: STDF_R std %f19, [%r20, %r31] brcommon1_20_347: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xa7702120 ! 1: POPC_I popc 0x0120, %r19 ba,a .+8 jmpl %r27+0, %r27 .word 0xa1a2c9cd ! 462: FDIVd fdivd %f42, %f44, %f16 .word 0x89800011 ! 463: WRTICK_R wr %r0, %r17, %tick ceter_20_349: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa5410000 ! 464: RDTICK rd %tick, %r18 splash_cmpr_20_350: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 465: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xa2818013 ! 466: ADDcc_R addcc %r6, %r19, %r17 .word 0xd28008a0 ! 467: LDUWA_R lduwa [%r0, %r0] 0x45, %r9 memptr_20_351: set user_data_start, %r31 .word 0x8581a839 ! 468: WRCCR_I wr %r6, 0x0839, %ccr .word 0xd27fe1f0 ! 469: SWAP_I swap %r9, [%r31 + 0x01f0] .word 0xc3efc032 ! 1: PREFETCHA_R prefetcha [%r31, %r18] 0x01, #one_read .word 0x9f802861 ! 470: SIR sir 0x0861 .word 0x9191400b ! 471: WRPR_PIL_R wrpr %r5, %r11, %pil .word 0x28780001 ! 472: BPLEU jmptr_20_353: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 473: JMPL_R jmpl %r27 + %r0, %r27 .word 0xc3ecc030 ! 474: PREFETCHA_R prefetcha [%r19, %r16] 0x01, #one_read unsupttte_20_355: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x9ba489c8 ! 475: FDIVd fdivd %f18, %f8, %f44 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_20_356)+24, 16, 16)) -> intp(mask2tid(0x20),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_20_356)&0xffffffff) +24, 16, 16)) -> intp(mask2tid(0x20),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_20_356: .word 0xa9832e60 ! 476: WR_SET_SOFTINT_I wr %r12, 0x0e60, %set_softint trapasi_20_357: nop mov 0x20, %r1 ! (VA for ASI 0x4c) .word 0xd8904980 ! 477: LDUHA_R lduha [%r1, %r0] 0x4c, %r12 .word 0xc19fe080 ! 478: LDDFA_I ldda [%r31, 0x0080], %f0 donret_20_358: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_358-donret_20_358-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d4f573 | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x4cd, %htstate ta T_CHANGE_NONPRIV ! rand=0 (20) retry donretarg_20_358: .word 0xd8ffe0cc ! 479: SWAPA_I swapa %r12, [%r31 + 0x00cc] %asi invtsb_20_359: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 480: FBL fbl,a mondo_20_360: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r3, [%r0+0x3d0] %asi .word 0x9d940010 ! 481: WRPR_WSTATE_R wrpr %r16, %r16, %wstate .word 0xc19fdb60 ! 482: LDDFA_R ldda [%r31, %r0], %f0 br_badelay1_20_361: .word 0x3e800001 ! 1: BVC bvc,a .word 0xd937c014 ! 1: STQF_R - %f12, [%r20, %r31] .word 0x87afca54 ! 1: FCMPd fcmpd %fcc, %f62, %f20 normalw .word 0xa1458000 ! 483: RD_SOFTINT_REG rd %softint, %r16 .word 0xdbe7c032 ! 1: CASA_I casa [%r31] 0x 1, %r18, %r13 .word 0x9f8021a3 ! 484: SIR sir 0x01a3 .word 0xdb27e0e0 ! 485: STF_I st %f13, [0x00e0, %r31] .word 0xda0fc000 ! 486: LDUB_R ldub [%r31 + %r0], %r13 .word 0x26800001 ! 487: BL bl,a pmu_20_362: nop setx 0xfffff871fffff968, %g1, %g7 .word 0xa3800007 ! 488: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8d9034d1 ! 489: WRPR_PSTATE_I wrpr %r0, 0x14d1, %pstate fbug,a,pn %fcc0, skip_20_364 .word 0x87ac0a42 ! 1: FCMPd fcmpd %fcc, %f16, %f2 .align 32 skip_20_364: .word 0xc30fc000 ! 490: LDXFSR_R ld-fsr [%r31, %r0], %f1 donret_20_365: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_20_365-donret_20_365-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0034a198 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x517, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (20) done donretarg_20_365: .word 0xdaffe13c ! 491: SWAPA_I swapa %r13, [%r31 + 0x013c] %asi .word 0xdb27e0f4 ! 492: STF_I st %f13, [0x00f4, %r31] .word 0xdaffc02b ! 493: SWAPA_R swapa %r13, [%r31 + %r11] 0x01 splash_cmpr_20_366: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 494: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xda5fc000 ! 495: LDX_R ldx [%r31 + %r0], %r13 .word 0x9bb7c7cd ! 1: PDIST pdistn %d62, %d44, %d44 .word 0x9f80249a ! 496: SIR sir 0x049a pmu_20_367: nop ta T_CHANGE_PRIV setx 0xfffffc31fffff36b, %g1, %g7 .word 0xa3800007 ! 497: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x20+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_20_368 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_20_368 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610060, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_20_368: ta T_CHANGE_NONHPRIV .word 0x9b414000 ! 498: RDPC rd %pc, %r13 change_to_randtl_20_369: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_20_369: .word 0x8f902000 ! 499: WRPR_TL_I wrpr %r0, 0x0000, %tl .word 0xe737c000 ! 500: STQF_R - %f19, [%r0, %r31] mondo_20_370: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r19, [%r0+0x3c0] %asi .word 0x9d90c00d ! 501: WRPR_WSTATE_R wrpr %r3, %r13, %wstate nop nop ta T_CHANGE_PRIV wrpr %g0, %g0, %gl nop nop setx join_lbl_0_0, %g1, %g2 jmp %g2 nop fork_lbl_0_5: ta T_CHANGE_NONHPRIV br_longdelay1_10_0: .word 0x2ecb0001 ! 1: BRGEZ brgez,a,pt %r12, .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xc36fe134 ! 2: PREFETCH_I prefetch [%r31 + 0x0134], #one_read nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_2 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_2: ta T_CHANGE_NONHPRIV .word 0xe7e7e011 ! 3: CASA_R casa [%r31] %asi, %r17, %r19 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_10_3: ta T_CHANGE_NONHPRIV ! macro .word 0xa782c011 ! 5: WR_GRAPHICS_STATUS_REG_R wr %r11, %r17, %- .word 0x87ab0ac5 ! 6: FCMPEd fcmped %fcc, %f12, %f36 setx vahole_target1, %r18, %r27 .word 0xe6bfc034 ! 7: STDA_R stda %r19, [%r31 + %r20] 0x01 memptr_10_6: set user_data_start, %r31 .word 0x8582b46a ! 8: WRCCR_I wr %r10, 0x146a, %ccr .word 0x2e780001 ! 9: BPVS ceter_10_7: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0xa9410000 ! 10: RDTICK rd %tick, %r20 splash_lsu_10_8: nop ta T_CHANGE_HPRIV set 0x10b1cc51, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 11: FBPULE fbule,a,pn %fcc0, brcommon1_10_9: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd06fe000 ! 1: LDSTUB_I ldstub %r8, [%r31 + 0x0000] ba,a .+8 jmpl %r27+0, %r27 .word 0x95a449d3 ! 12: FDIVd fdivd %f48, %f50, %f10 .word 0x22800001 ! 13: BE be,a pmu_10_10: nop setx 0xfffffd80fffffb3e, %g1, %g7 .word 0xa3800007 ! 14: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x32780001 ! 15: BPNE pmu_10_11: nop ta T_CHANGE_PRIV setx 0xfffffc40fffffba9, %g1, %g7 .word 0xa3800007 ! 16: WR_PERF_COUNTER_R wr %r0, %r7, %- ibp_10_12: nop .word 0xc19fde00 ! 17: LDDFA_R ldda [%r31, %r0], %f0 ibp_10_13: nop .word 0xe1bfdf20 ! 18: STDFA_R stda %f16, [%r0, %r31] .word 0xd65fe198 ! 19: LDX_I ldx [%r31 + 0x0198], %r11 .word 0xd727e1ce ! 20: STF_I st %f11, [0x01ce, %r31] .word 0x81580000 ! 21: FLUSHW flushw #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_14) + 48, 16, 16)) -> intp(5,0,20) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_14)&0xffffffff) + 48, 16, 16)) -> intp(5,0,20) #else setx 0xcb2245389f2771a0, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_14: .word 0x39400001 ! 22: FBPUGE fbuge,a,pn %fcc0, donret_10_15: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_15-donret_10_15-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0096ed84 | (0x4f << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x513, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) done donretarg_10_15: .word 0xd6ffe17b ! 23: SWAPA_I swapa %r11, [%r31 + 0x017b] %asi set 0x10b, %l3 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT .word 0x9bb507c4 ! 24: PDIST pdistn %d20, %d4, %d44 .word 0xe1bfc3e0 ! 25: STDFA_R stda %f16, [%r0, %r31] pmu_10_16: nop ta T_CHANGE_PRIV setx 0xfffffe4dfffff999, %g1, %g7 .word 0xa3800007 ! 26: WR_PERF_COUNTER_R wr %r0, %r7, %- setx vahole_target1, %r18, %r27 .word 0xd03fe120 ! 27: STD_I std %r8, [%r31 + 0x0120] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_18)+0, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_18)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_18: .word 0xa98173e8 ! 28: WR_SET_SOFTINT_I wr %r5, 0x13e8, %set_softint .word 0xa5a0016a ! 29: FABSq dis not found donret_10_20: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_20-donret_10_20-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00729101 | (4 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xf98, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (10) .word 0x37400001 ! 1: FBPGE fbge,a,pn %fcc0, retry donretarg_10_20: .word 0xe2ffe0cc ! 30: SWAPA_I swapa %r17, [%r31 + 0x00cc] %asi .word 0xa781800c ! 31: WR_GRAPHICS_STATUS_REG_R wr %r6, %r12, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_22) + 32, 16, 16)) -> intp(6,0,22) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_22)&0xffffffff) + 32, 16, 16)) -> intp(6,0,22) #else setx 0x780da242da59efda, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_22: .word 0x39400001 ! 32: FBPUGE fbuge,a,pn %fcc0, memptr_10_23: set 0x60340000, %r31 .word 0x8582b274 ! 33: WRCCR_I wr %r10, 0x1274, %ccr .word 0xc3e8c032 ! 34: PREFETCHA_R prefetcha [%r3, %r18] 0x01, #one_read brcommon3_10_25: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c029 ! 1: CASA_I casa [%r31] 0x 1, %r9, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xc32fc011 ! 35: STXFSR_R st-sfr %f1, [%r17, %r31] jmptr_10_26: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 36: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_10_27: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 37: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_10_28: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 38: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_10_29: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3e0] %asi .word 0x9d948011 ! 39: WRPR_WSTATE_R wrpr %r18, %r17, %wstate brcommon3_10_30: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd26fe040 ! 1: LDSTUB_I ldstub %r9, [%r31 + 0x0040] ba,a .+8 jmpl %r27+0, %r27 .word 0xc32fc008 ! 40: STXFSR_R st-sfr %f1, [%r8, %r31] .word 0xd2dfe0f8 ! 41: LDXA_I ldxa [%r31, + 0x00f8] %asi, %r9 .word 0xd327e085 ! 42: STF_I st %f9, [0x0085, %r31] setx 0xcfd835b6afb2cbbe, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_31: .word 0x39400001 ! 43: FBPUGE fbuge,a,pn %fcc0, mondo_10_32: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3d8] %asi .word 0x9d91c009 ! 44: WRPR_WSTATE_R wrpr %r7, %r9, %wstate ceter_10_33: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa7410000 ! 45: RDTICK rd %tick, %r19 .word 0x91948013 ! 46: WRPR_PIL_R wrpr %r18, %r19, %pil splash_tba_10_35: ta T_CHANGE_PRIV setx 0x0000000000380000, %r11, %r12 .word 0x8b90000c ! 47: WRPR_TBA_R wrpr %r0, %r12, %tba mondo_10_36: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3c8] %asi .word 0x9d914012 ! 48: WRPR_WSTATE_R wrpr %r5, %r18, %wstate .word 0x9f8022d3 ! 49: SIR sir 0x02d3 br_longdelay2_10_37: .word 0x34800001 ! 1: BG bg,a .word 0xa3a7c9d4 ! 50: FDIVd fdivd %f62, %f20, %f48 splash_cmpr_10_38: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 51: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_39 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_39: ta T_CHANGE_NONHPRIV .word 0xe3e7e00d ! 52: CASA_R casa [%r31] %asi, %r13, %r17 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_40)+48, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_40)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_40: .word 0xa9832864 ! 53: WR_SET_SOFTINT_I wr %r12, 0x0864, %set_softint jmptr_10_41: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 54: JMPL_R jmpl %r27 + %r0, %r27 donret_10_42: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_42-donret_10_42-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00970562 | (0x8b << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xe11, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) retry donretarg_10_42: .word 0xe26fe0a5 ! 55: LDSTUB_I ldstub %r17, [%r31 + 0x00a5] nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_43 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_43 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_43: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 56: RDPC rd %pc, %r20 splash_hpstate_10_44: .word 0x8198218d ! 57: WRHPR_HPSTATE_I wrhpr %r0, 0x018d, %hpstate .word 0x3e800001 ! 1: BVC bvc,a .word 0x8d903c8d ! 58: WRPR_PSTATE_I wrpr %r0, 0x1c8d, %pstate mondo_10_46: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3e0] %asi .word 0x9d940012 ! 59: WRPR_WSTATE_R wrpr %r16, %r18, %wstate mondo_10_47: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r17, [%r0+0x3e8] %asi .word 0x9d908005 ! 60: WRPR_WSTATE_R wrpr %r2, %r5, %wstate splash_hpstate_10_48: ta T_CHANGE_NONHPRIV .word 0x819830c7 ! 61: WRHPR_HPSTATE_I wrhpr %r0, 0x10c7, %hpstate .word 0xd31fe090 ! 62: LDDF_I ldd [%r31, 0x0090], %f9 setx vahole_target2, %r18, %r27 .word 0xc1bfe1e0 ! 63: STDFA_I stda %f0, [0x01e0, %r31] brcommon1_10_50: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c034 ! 1: CASA_I casa [%r31] 0x 1, %r20, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0x9f803d97 ! 64: SIR sir 0x1d97 splash_hpstate_10_51: ta T_CHANGE_NONHPRIV .word 0x81983a17 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x1a17, %hpstate .word 0x8d90362a ! 66: WRPR_PSTATE_I wrpr %r0, 0x162a, %pstate .word 0xe19fde00 ! 67: LDDFA_R ldda [%r31, %r0], %f16 br_badelay1_10_54: .word 0x2ec84001 ! 1: BRGEZ brgez,a,pt %r1, .word 0xd337e160 ! 1: STQF_I - %f9, [0x0160, %r31] .word 0x87afca51 ! 1: FCMPd fcmpd %fcc, %f62, %f48 normalw .word 0xa3458000 ! 68: RD_SOFTINT_REG rd %softint, %r17 .word 0xd82fe10f ! 69: STB_I stb %r12, [%r31 + 0x010f] donret_10_55: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_55-donret_10_55-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0050867c | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1b01, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) .word 0x23400001 ! 1: FBPNE fbne,a,pn %fcc0, done donretarg_10_55: .word 0x9ba089cd ! 70: FDIVd fdivd %f2, %f44, %f44 nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_56 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_56: ta T_CHANGE_NONHPRIV .word 0xe7e7e00d ! 71: CASA_R casa [%r31] %asi, %r13, %r19 .word 0xe19fe140 ! 72: LDDFA_I ldda [%r31, 0x0140], %f16 mondo_10_57: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r18, [%r0+0x3d8] %asi .word 0x9d94c00a ! 73: WRPR_WSTATE_R wrpr %r19, %r10, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe65fc000 ! 74: LDX_R ldx [%r31 + %r0], %r19 .word 0xe727c000 ! 75: STF_R st %f19, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_58 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_58: ta T_CHANGE_NONHPRIV .word 0xe7e7e00b ! 76: CASA_R casa [%r31] %asi, %r11, %r19 .word 0x2a800001 ! 77: BCS bcs,a nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe65fc000 ! 78: LDX_R ldx [%r31 + %r0], %r19 .word 0x9153c000 ! 79: RDPR_FQ donret_10_59: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_59-donret_10_59-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00516fb9 | (28 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1545, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) done donretarg_10_59: .word 0x9ba409d3 ! 80: FDIVd fdivd %f16, %f50, %f44 .word 0xda8fe090 ! 81: LDUBA_I lduba [%r31, + 0x0090] %asi, %r13 .word 0xe19fdf20 ! 82: LDDFA_R ldda [%r31, %r0], %f16 change_to_randtl_10_60: ta T_CHANGE_PRIV ! macro done_change_to_randtl_10_60: .word 0x8f902001 ! 83: WRPR_TL_I wrpr %r0, 0x0001, %tl splash_cmpr_10_61: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 84: WR_TICK_CMPR_REG_R wr %r0, %r17, %- jmptr_10_62: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 85: JMPL_R jmpl %r27 + %r0, %r27 mondo_10_63: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3c8] %asi .word 0x9d94c003 ! 86: WRPR_WSTATE_R wrpr %r19, %r3, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_64)+0, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_64)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_64: .word 0xa98424f6 ! 87: WR_SET_SOFTINT_I wr %r16, 0x04f6, %set_softint .word 0xdb37e082 ! 88: STQF_I - %f13, [0x0082, %r31] mondo_10_65: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r17, [%r0+0x3d0] %asi .word 0x9d948014 ! 89: WRPR_WSTATE_R wrpr %r18, %r20, %wstate .word 0xda0fc000 ! 90: LDUB_R ldub [%r31 + %r0], %r13 memptr_10_66: set user_data_start, %r31 .word 0x8584e9f5 ! 91: WRCCR_I wr %r19, 0x09f5, %ccr jmptr_10_67: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 92: JMPL_R jmpl %r27 + %r0, %r27 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_10_68: ta T_CHANGE_NONPRIV ! macro otherw mov 0x34, %r30 .word 0x93d0001e ! 94: Tcc_R tne icc_or_xcc, %r0 + %r30 setx vahole_target0, %r18, %r27 .word 0xdb1fc00b ! 95: LDDF_R ldd [%r31, %r11], %f13 pmu_10_70: nop setx 0xfffffc55fffff347, %g1, %g7 .word 0xa3800007 ! 96: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_10_71: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 97: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_10_72: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 98: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_hpstate_10_73: .word 0x819828de ! 99: WRHPR_HPSTATE_I wrhpr %r0, 0x08de, %hpstate donret_10_74: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_74-donret_10_74-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0005456b | (20 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1605, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) .word 0x33400001 ! 1: FBPE fbe,a,pn %fcc0, retry donretarg_10_74: .word 0xda6fe193 ! 100: LDSTUB_I ldstub %r13, [%r31 + 0x0193] change_to_randtl_10_75: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_10_75: .word 0x8f902000 ! 101: WRPR_TL_I wrpr %r0, 0x0000, %tl .word 0x9ba0c9c7 ! 102: FDIVd fdivd %f34, %f38, %f44 .word 0x8d903f7d ! 103: WRPR_PSTATE_I wrpr %r0, 0x1f7d, %pstate intveclr_10_78: nop ta T_CHANGE_HPRIV setx 0x50045632e22f1db2, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 104: FBPLG fblg,a,pn %fcc0, donret_10_79: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_79-donret_10_79-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x007b56d2 | (0x8b << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xddf, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) done donretarg_10_79: .word 0x95a509d4 ! 105: FDIVd fdivd %f20, %f20, %f10 .word 0xe4d7e0a0 ! 106: LDSHA_I ldsha [%r31, + 0x00a0] %asi, %r18 tagged_10_80: tsubcctv %r17, 0x142d, %r17 .word 0xe407e190 ! 107: LDUW_I lduw [%r31 + 0x0190], %r18 nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_81 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_81 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610050, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_81: ta T_CHANGE_NONHPRIV .word 0xa5414000 ! 108: RDPC rd %pc, %r18 splash_lsu_10_82: nop ta T_CHANGE_HPRIV set 0x760da187, %r2 mov 0x1, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 109: FBPULE fbule,a,pn %fcc0, splash_cmpr_10_83: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 110: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_htba_10_84: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 111: WRHPR_HTBA_R wrhpr %r0, %r12, %htba mondo_10_85: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r6, [%r0+0x3d0] %asi .word 0x9d94800a ! 112: WRPR_WSTATE_R wrpr %r18, %r10, %wstate .word 0xc1bfd960 ! 113: STDFA_R stda %f0, [%r0, %r31] .word 0xc19fde00 ! 114: LDDFA_R ldda [%r31, %r0], %f0 splash_cmpr_10_86: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 115: WR_STICK_CMPR_REG_R wr %r0, %r17, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_87)+32, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_87)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_87: .word 0xa98461de ! 116: WR_SET_SOFTINT_I wr %r17, 0x01de, %set_softint brcommon3_10_88: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd137c009 ! 1: STQF_R - %f8, [%r9, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd097c033 ! 117: LDUHA_R lduha [%r31, %r19] 0x01, %r8 .word 0x26cc0001 ! 1: BRLZ brlz,a,pt %r16, .word 0x8d903fd9 ! 118: WRPR_PSTATE_I wrpr %r0, 0x1fd9, %pstate .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_10_90: ta T_CHANGE_NONPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_91)+32, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_91)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_91: .word 0xa980f742 ! 120: WR_SET_SOFTINT_I wr %r3, 0x1742, %set_softint splash_cmpr_10_92: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 .word 0xb3800011 ! 121: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x91a00172 ! 122: FABSq dis not found ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 123: MEMBAR membar #LoadLoad | #Lookaside splash_cmpr_10_95: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 124: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe1bfda00 ! 125: STDFA_R stda %f16, [%r0, %r31] jmptr_10_96: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 126: JMPL_R jmpl %r27 + %r0, %r27 setx 0x4021df01bdcf8e2e, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_97: .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, pmu_10_98: nop ta T_CHANGE_PRIV setx 0xfffff45cfffffc50, %g1, %g7 .word 0xa3800007 ! 128: WR_PERF_COUNTER_R wr %r0, %r7, %- donret_10_99: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_99-donret_10_99-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x005cafa6 | (4 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1717, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) done donretarg_10_99: .word 0x99a049c4 ! 129: FDIVd fdivd %f32, %f4, %f12 pmu_10_100: nop setx 0xfffff611ffffff0f, %g1, %g7 .word 0xa3800007 ! 130: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_10_101: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r13, [%r0+0x3e8] %asi .word 0x9d950007 ! 131: WRPR_WSTATE_R wrpr %r20, %r7, %wstate nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_102 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_102: ta T_CHANGE_NONHPRIV .word 0xd9e7e00b ! 132: CASA_R casa [%r31] %asi, %r11, %r12 .word 0xe1bfdc00 ! 133: STDFA_R stda %f16, [%r0, %r31] splash_tba_10_103: ta T_CHANGE_PRIV setx 0x0000000000380000, %r11, %r12 .word 0x8b90000c ! 134: WRPR_TBA_R wrpr %r0, %r12, %tba splash_lsu_10_104: nop ta T_CHANGE_HPRIV set 0xfe91ae99, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 135: FBPULE fbule,a,pn %fcc0, setx 0xc6faa98eb99c7282, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_105: .word 0x39400001 ! 136: FBPUGE fbuge,a,pn %fcc0, change_to_randtl_10_106: ta T_CHANGE_PRIV ! macro done_change_to_randtl_10_106: .word 0x8f902000 ! 137: WRPR_TL_I wrpr %r0, 0x0000, %tl nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_107 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_107 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_107: ta T_CHANGE_NONHPRIV .word 0x99414000 ! 138: RDPC rd %pc, %r12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_108)+48, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_108)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_108: .word 0xa9826c76 ! 139: WR_SET_SOFTINT_I wr %r9, 0x0c76, %set_softint br_badelay1_10_109: .word 0xe5e7c033 ! 1: CASA_I casa [%r31] 0x 1, %r19, %r18 .word 0xd9307382 ! 1: STQF_I - %f12, [0x1382, %r1] .word 0xdbe7c02c ! 1: CASA_I casa [%r31] 0x 1, %r12, %r13 normalw .word 0xa5458000 ! 140: RD_SOFTINT_REG rd %softint, %r18 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_10_110: ta T_CHANGE_NONHPRIV ! macro setx vahole_target1, %r18, %r27 .word 0xa7b44493 ! 142: FCMPLE32 fcmple32 %d48, %d50, %r19 nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_112 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_112 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_112: ta T_CHANGE_NONHPRIV .word 0x9b414000 ! 143: RDPC rd %pc, %r13 .word 0xd91fe020 ! 144: LDDF_I ldd [%r31, 0x0020], %f12 setx 0xc2bb670f0d77b2b4, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_113: .word 0x39400001 ! 145: FBPUGE fbuge,a,pn %fcc0, .word 0xa0d1c009 ! 146: UMULcc_R umulcc %r7, %r9, %r16 splash_cmpr_10_114: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 147: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_10_115: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r9, [%r0+0x3c8] %asi .word 0x9d928014 ! 148: WRPR_WSTATE_R wrpr %r10, %r20, %wstate change_to_randtl_10_116: ta T_CHANGE_PRIV ! macro done_change_to_randtl_10_116: .word 0x8f902000 ! 149: WRPR_TL_I wrpr %r0, 0x0000, %tl change_to_randtl_10_117: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_10_117: .word 0x8f902002 ! 150: WRPR_TL_I wrpr %r0, 0x0002, %tl #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_118) + 48, 16, 16)) -> intp(5,0,2) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_118)&0xffffffff) + 48, 16, 16)) -> intp(5,0,2) #else setx 0xe299edc47e273fd2, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_118: .word 0x39400001 ! 151: FBPUGE fbuge,a,pn %fcc0, memptr_10_119: set 0x60340000, %r31 .word 0x8584f6d2 ! 152: WRCCR_I wr %r19, 0x16d2, %ccr nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe05fc000 ! 153: LDX_R ldx [%r31 + %r0], %r16 .word 0x8d902d89 ! 154: WRPR_PSTATE_I wrpr %r0, 0x0d89, %pstate mondo_10_121: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r12, [%r0+0x3c8] %asi .word 0x9d90c003 ! 155: WRPR_WSTATE_R wrpr %r3, %r3, %wstate .word 0x8d902743 ! 156: WRPR_PSTATE_I wrpr %r0, 0x0743, %pstate .word 0x91d02035 ! 157: Tcc_I ta icc_or_xcc, %r0 + 53 setx 0x7bead1f9b9fd19da, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_123: .word 0x39400001 ! 158: FBPUGE fbuge,a,pn %fcc0, .word 0xc36d0011 ! 159: PREFETCH_R prefetch [%r20 + %r17], #one_read fpinit_10_124: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x87a80a44 ! 160: FCMPd fcmpd %fcc, %f0, %f4 splash_hpstate_10_125: ta T_CHANGE_NONHPRIV .word 0x3f400001 ! 1: FBPO fbo,a,pn %fcc0, .word 0x81982d8c ! 161: WRHPR_HPSTATE_I wrhpr %r0, 0x0d8c, %hpstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe05fc000 ! 162: LDX_R ldx [%r31 + %r0], %r16 nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_126 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_126: ta T_CHANGE_NONHPRIV .word 0xe1e7e011 ! 163: CASA_R casa [%r31] %asi, %r17, %r16 nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_127 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_127: ta T_CHANGE_NONHPRIV .word 0xe1e7e008 ! 164: CASA_R casa [%r31] %asi, %r8, %r16 pmu_10_128: nop ta T_CHANGE_PRIV setx 0xfffff5c3fffff82d, %g1, %g7 .word 0xa3800007 ! 165: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_10_129: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 166: WR_STICK_CMPR_REG_R wr %r0, %r17, %- ceter_10_130: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa3410000 ! 167: RDTICK rd %tick, %r17 jmptr_10_131: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 168: JMPL_R jmpl %r27 + %r0, %r27 .word 0xa56a4012 ! 169: SDIVX_R sdivx %r9, %r18, %r18 splash_cmpr_10_132: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 .word 0xaf800011 ! 170: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xd01fc000 ! 171: LDD_R ldd [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_133 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_133 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610080, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_133: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 172: RDPC rd %pc, %r20 jmptr_10_134: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 173: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe09fd140 ! 174: LDDA_R ldda [%r31, %r0] 0x8a, %r16 setx 0x1935ca90dcf5ef83, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_135: .word 0x39400001 ! 175: FBPUGE fbuge,a,pn %fcc0, splash_cmpr_10_136: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 176: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe0d7e0f8 ! 177: LDSHA_I ldsha [%r31, + 0x00f8] %asi, %r16 splash_cmpr_10_137: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 178: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_10_138: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r4, [%r0+0x3c8] %asi .word 0x9d940013 ! 179: WRPR_WSTATE_R wrpr %r16, %r19, %wstate change_to_randtl_10_139: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_10_139: .word 0x8f902000 ! 180: WRPR_TL_I wrpr %r0, 0x0000, %tl jmptr_10_140: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 181: JMPL_R jmpl %r27 + %r0, %r27 .word 0x9195000d ! 182: WRPR_PIL_R wrpr %r20, %r13, %pil donret_10_142: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_142-donret_10_142-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00c8d450 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1715, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) retry donretarg_10_142: .word 0x95a409c8 ! 183: FDIVd fdivd %f16, %f8, %f10 .word 0xe6c7e1e0 ! 184: LDSWA_I ldswa [%r31, + 0x01e0] %asi, %r19 .word 0xc1bfde00 ! 185: STDFA_R stda %f0, [%r0, %r31] .word 0xe6cfe1e8 ! 186: LDSBA_I ldsba [%r31, + 0x01e8] %asi, %r19 splash_cmpr_10_143: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 187: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x9a828003 ! 188: ADDcc_R addcc %r10, %r3, %r13 ibp_10_144: nop ta T_CHANGE_NONHPRIV .word 0xe19fd960 ! 189: LDDFA_R ldda [%r31, %r0], %f16 ceter_10_145: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa9410000 ! 190: RDTICK rd %tick, %r20 ceter_10_146: nop ta T_CHANGE_HPRIV mov 4, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa1410000 ! 191: RDTICK rd %tick, %r16 setx 0x01809d2bbc4f12a7, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_147: .word 0x39400001 ! 192: FBPUGE fbuge,a,pn %fcc0, .word 0x29800001 ! 193: FBL fbl,a .word 0x91a00173 ! 194: FABSq dis not found .word 0xe6c7e100 ! 195: LDSWA_I ldswa [%r31, + 0x0100] %asi, %r19 splash_lsu_10_150: nop ta T_CHANGE_HPRIV set 0x3379da30, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 196: FBPULE fbule,a,pn %fcc0, .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_10_151: ta T_CHANGE_NONPRIV ! macro .word 0xe65fe1f0 ! 198: LDX_I ldx [%r31 + 0x01f0], %r19 splash_hpstate_10_152: ta T_CHANGE_NONHPRIV .word 0x2e800001 ! 1: BVS bvs,a .word 0x81982015 ! 199: WRHPR_HPSTATE_I wrhpr %r0, 0x0015, %hpstate .word 0x9353c000 ! 200: RDPR_FQ .word 0x9f803fb5 ! 201: SIR sir 0x1fb5 mondo_10_153: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3e0] %asi .word 0x9d940011 ! 202: WRPR_WSTATE_R wrpr %r16, %r17, %wstate jmptr_10_154: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 203: JMPL_R jmpl %r27 + %r0, %r27 .word 0x24c8c001 ! 204: BRLEZ brlez,a,pt %r3, pmu_10_156: nop ta T_CHANGE_PRIV setx 0xfffff702ffffffbe, %g1, %g7 .word 0xa3800007 ! 205: WR_PERF_COUNTER_R wr %r0, %r7, %- setx 0xb2c9a0a7760df14a, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_157: .word 0x39400001 ! 206: FBPUGE fbuge,a,pn %fcc0, .word 0xe677e088 ! 207: STX_I stx %r19, [%r31 + 0x0088] brcommon2_10_158: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xa7a7c973 ! 1: FMULq dis not found ba,a .+8 jmpl %r27+0, %r27 .word 0xc19fe1e0 ! 208: LDDFA_I ldda [%r31, 0x01e0], %f0 .word 0xa2fc4014 ! 209: SDIVcc_R sdivcc %r17, %r20, %r17 .word 0xd897e068 ! 210: LDUHA_I lduha [%r31, + 0x0068] %asi, %r12 .word 0x3c800001 ! 211: BPOS bpos,a change_to_randtl_10_159: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_10_159: .word 0x8f902002 ! 212: WRPR_TL_I wrpr %r0, 0x0002, %tl tagged_10_160: tsubcctv %r7, 0x1fed, %r11 .word 0xd807e0dc ! 213: LDUW_I lduw [%r31 + 0x00dc], %r12 br_badelay1_10_161: .word 0x3b400001 ! 1: FBPLE fble,a,pn %fcc0, .word 0xd937c013 ! 1: STQF_R - %f12, [%r19, %r31] .word 0xd83fc012 ! 1: STD_R std %r12, [%r31 + %r18] normalw .word 0xa1458000 ! 214: RD_SOFTINT_REG rd %softint, %r16 pmu_10_162: nop setx 0xfffff4cafffffca6, %g1, %g7 .word 0xa3800007 ! 215: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 216: WRTICK_R wr %r0, %r17, %tick pmu_10_164: nop ta T_CHANGE_PRIV setx 0xfffff112fffff989, %g1, %g7 .word 0xa3800007 ! 217: WR_PERF_COUNTER_R wr %r0, %r7, %- otherw mov 0xb5, %r30 .word 0x91d0001e ! 218: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xc1bfc3e0 ! 219: STDFA_R stda %f0, [%r0, %r31] .word 0xc1bfc2c0 ! 220: STDFA_R stda %f0, [%r0, %r31] .word 0xc1bfe0c0 ! 221: STDFA_I stda %f0, [0x00c0, %r31] setx 0xd05f7fc9c9820ecd, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_165: .word 0x39400001 ! 222: FBPUGE fbuge,a,pn %fcc0, br_longdelay1_10_166: .word 0x24800001 ! 1: BLE ble,a .word 0xbfefc000 ! 223: RESTORE_R restore %r31, %r0, %r31 nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_167 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_167: ta T_CHANGE_NONHPRIV .word 0xe1e7e011 ! 224: CASA_R casa [%r31] %asi, %r17, %r16 jmptr_10_168: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 225: JMPL_R jmpl %r27 + %r0, %r27 setx 0xed4e4d2aeb6de012, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_169: .word 0x39400001 ! 226: FBPUGE fbuge,a,pn %fcc0, mondo_10_170: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r17, [%r0+0x3e0] %asi .word 0x9d90c00a ! 227: WRPR_WSTATE_R wrpr %r3, %r10, %wstate splash_cmpr_10_171: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 228: WR_STICK_CMPR_REG_R wr %r0, %r17, %- pmu_10_172: nop ta T_CHANGE_PRIV setx 0xfffff992fffff4e1, %g1, %g7 .word 0xa3800007 ! 229: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_10_173: nop ta T_CHANGE_HPRIV set 0xb5cc2436, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 230: FBPULE fbule,a,pn %fcc0, mondo_10_174: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3e0] %asi .word 0x9d92c00a ! 231: WRPR_WSTATE_R wrpr %r11, %r10, %wstate memptr_10_175: set 0x60740000, %r31 .word 0x8582addf ! 232: WRCCR_I wr %r10, 0x0ddf, %ccr mondo_10_176: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r6, [%r0+0x3e0] %asi .word 0x9d95000d ! 233: WRPR_WSTATE_R wrpr %r20, %r13, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_177)+24, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_177)&0xffffffff) +24, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_177: .word 0xa98469ca ! 234: WR_SET_SOFTINT_I wr %r17, 0x09ca, %set_softint splash_lsu_10_178: nop ta T_CHANGE_HPRIV set 0x7ba63b1e, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 235: FBPULE fbule,a,pn %fcc0, pmu_10_179: nop setx 0xffffff18fffff753, %g1, %g7 .word 0xa3800007 ! 236: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_10_180: nop ta T_CHANGE_HPRIV set 0x01b5858f, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 237: FBPULE fbule,a,pn %fcc0, splash_cmpr_10_181: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 238: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe057e0d0 ! 239: LDSH_I ldsh [%r31 + 0x00d0], %r16 donret_10_182: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_182-donret_10_182-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x001c6e1c | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1d9d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) retry donretarg_10_182: .word 0xe0ffe016 ! 240: SWAPA_I swapa %r16, [%r31 + 0x0016] %asi .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_10_183: ta T_CHANGE_NONPRIV ! macro .word 0xc1bfe0a0 ! 242: STDFA_I stda %f0, [0x00a0, %r31] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_184)+40, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_184)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_184: .word 0xa980b57a ! 243: WR_SET_SOFTINT_I wr %r2, 0x157a, %set_softint .word 0x87ab4a53 ! 244: FCMPd fcmpd %fcc, %f44, %f50 .word 0x2a800001 ! 245: BCS bcs,a nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_186 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_186 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610000, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_186: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 246: RDPC rd %pc, %r19 setx 0xe9577a6dcaeff96d, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_187: .word 0x39400001 ! 247: FBPUGE fbuge,a,pn %fcc0, pmu_10_188: nop setx 0xfffff9a8fffff6ca, %g1, %g7 .word 0xa3800007 ! 248: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_10_189: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 249: WR_TICK_CMPR_REG_R wr %r0, %r17, %- donret_10_190: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_190-donret_10_190-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00e1175e | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1c55, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (10) retry donretarg_10_190: .word 0xa5a4c9ca ! 250: FDIVd fdivd %f50, %f10, %f18 memptr_10_191: set 0x60340000, %r31 .word 0x8580e060 ! 251: WRCCR_I wr %r3, 0x0060, %ccr .word 0xe49fc240 ! 252: LDDA_R ldda [%r31, %r0] 0x12, %r18 .word 0x29800001 ! 253: FBL fbl,a nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_193 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_193 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610060, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_193: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 254: RDPC rd %pc, %r20 splash_lsu_10_194: nop ta T_CHANGE_HPRIV set 0x756f1ae0, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 255: FBPULE fbule,a,pn %fcc0, .word 0x9953c000 ! 256: RDPR_FQ setx vahole_target2, %r18, %r27 .word 0xe91fe170 ! 257: LDDF_I ldd [%r31, 0x0170], %f20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_196) + 40, 16, 16)) -> intp(0,0,7) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_196)&0xffffffff) + 40, 16, 16)) -> intp(0,0,7) #else setx 0xf1ac696d70211ca6, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_196: .word 0x39400001 ! 258: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_197 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_197: ta T_CHANGE_NONHPRIV .word 0xe9e7e013 ! 259: CASA_R casa [%r31] %asi, %r19, %r20 .word 0xe8c7e068 ! 260: LDSWA_I ldswa [%r31, + 0x0068] %asi, %r20 setx vahole_target3, %r18, %r27 .word 0x9bb2c7d4 ! 261: PDIST pdistn %d42, %d20, %d44 .word 0xd697e048 ! 262: LDUHA_I lduha [%r31, + 0x0048] %asi, %r11 .word 0xd73fc000 ! 263: STDF_R std %f11, [%r0, %r31] .word 0xd68fe100 ! 264: LDUBA_I lduba [%r31, + 0x0100] %asi, %r11 pmu_10_199: nop setx 0xfffff382fffff9f4, %g1, %g7 .word 0xa3800007 ! 265: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 266: WRTICK_R wr %r0, %r17, %tick setx vahole_target1, %r18, %r27 .word 0x95b10486 ! 267: FCMPLE32 fcmple32 %d4, %d6, %r10 .word 0x29400001 ! 1: FBPL fbl,a,pn %fcc0, .word 0x8d90350f ! 268: WRPR_PSTATE_I wrpr %r0, 0x150f, %pstate .word 0xe097e128 ! 269: LDUHA_I lduha [%r31, + 0x0128] %asi, %r16 nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_203 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_203: ta T_CHANGE_NONHPRIV .word 0xe1e7e00d ! 270: CASA_R casa [%r31] %asi, %r13, %r16 .word 0xe07fe1e0 ! 271: SWAP_I swap %r16, [%r31 + 0x01e0] .word 0x28780001 ! 272: BPLEU cwp_10_204: set user_data_start, %o7 .word 0x93902004 ! 273: WRPR_CWP_I wrpr %r0, 0x0004, %cwp pmu_10_205: nop ta T_CHANGE_PRIV setx 0xfffff4a8fffff702, %g1, %g7 .word 0xa3800007 ! 274: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_10_206: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r1, [%r0+0x3c8] %asi .word 0x9d90c014 ! 275: WRPR_WSTATE_R wrpr %r3, %r20, %wstate br_badelay3_10_207: .word 0x32800001 ! 1: BNE bne,a .word 0x34800001 ! 1: BG bg,a .word 0xa9a0054a ! 1: FSQRTd fsqrt .word 0x91a40830 ! 276: FADDs fadds %f16, %f16, %f8 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_10_208: ta T_CHANGE_NONPRIV ! macro .word 0x89800011 ! 278: WRTICK_R wr %r0, %r17, %tick mondo_10_210: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3c0] %asi .word 0x9d904013 ! 279: WRPR_WSTATE_R wrpr %r1, %r19, %wstate donret_10_211: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_211-donret_10_211-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x003ec246 | (28 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xc45, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (10) done donretarg_10_211: .word 0xd86fe06e ! 280: LDSTUB_I ldstub %r12, [%r31 + 0x006e] donret_10_212: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_212-donret_10_212-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0082a39a | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x496, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (10) retry donretarg_10_212: .word 0x99a409d3 ! 281: FDIVd fdivd %f16, %f50, %f12 brcommon1_10_213: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xe9e7c031 ! 1: CASA_I casa [%r31] 0x 1, %r17, %r20 ba,a .+8 jmpl %r27+0, %r27 .word 0x93703194 ! 282: POPC_I popc 0x1194, %r9 .word 0xe19fe080 ! 283: LDDFA_I ldda [%r31, 0x0080], %f16 .word 0x8d903539 ! 284: WRPR_PSTATE_I wrpr %r0, 0x1539, %pstate splash_cmpr_10_215: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 285: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_10_216: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 286: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_10_217: ta T_CHANGE_NONPRIV ! macro .word 0x32800001 ! 1: BNE bne,a .word 0x8d902895 ! 288: WRPR_PSTATE_I wrpr %r0, 0x0895, %pstate splash_lsu_10_219: nop ta T_CHANGE_HPRIV set 0x718fbdc8, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 289: FBPULE fbule,a,pn %fcc0, donret_10_220: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_220-donret_10_220-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00ff4f63 | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x84e, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) .word 0x38800001 ! 1: BGU bgu,a retry donretarg_10_220: .word 0xd66fe0ed ! 290: LDSTUB_I ldstub %r11, [%r31 + 0x00ed] .word 0x91d02035 ! 291: Tcc_I ta icc_or_xcc, %r0 + 53 setx 0x3e089e7962cbadf3, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_221: .word 0x39400001 ! 292: FBPUGE fbuge,a,pn %fcc0, brcommon3_10_222: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd737e100 ! 1: STQF_I - %f11, [0x0100, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd697c033 ! 293: LDUHA_R lduha [%r31, %r19] 0x01, %r11 .word 0xd6d7e050 ! 294: LDSHA_I ldsha [%r31, + 0x0050] %asi, %r11 pmu_10_223: nop ta T_CHANGE_PRIV setx 0xfffff128fffffdd0, %g1, %g7 .word 0xa3800007 ! 295: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xa1a00174 ! 296: FABSq dis not found #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_225)+56, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_225)&0xffffffff) +56, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_225: .word 0xa981afb4 ! 297: WR_SET_SOFTINT_I wr %r6, 0x0fb4, %set_softint memptr_10_226: set 0x60740000, %r31 .word 0x8582f779 ! 298: WRCCR_I wr %r11, 0x1779, %ccr mondo_10_227: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3d8] %asi .word 0x9d90c004 ! 299: WRPR_WSTATE_R wrpr %r3, %r4, %wstate .word 0xd297e0c8 ! 300: LDUHA_I lduha [%r31, + 0x00c8] %asi, %r9 setx vahole_target2, %r18, %r27 .word 0x87ac0a4d ! 301: FCMPd fcmpd %fcc, %f16, %f44 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_229)+24, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_229)&0xffffffff) +24, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_229: .word 0xa9846b73 ! 302: WR_SET_SOFTINT_I wr %r17, 0x0b73, %set_softint .word 0x8d903301 ! 303: WRPR_PSTATE_I wrpr %r0, 0x1301, %pstate setx vahole_target0, %r18, %r27 .word 0xe8bfc031 ! 304: STDA_R stda %r20, [%r31 + %r17] 0x01 trapasi_10_232: nop mov 0x18, %r1 ! (VA for ASI 0x4c) .word 0xe8884980 ! 305: LDUBA_R lduba [%r1, %r0] 0x4c, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_233)+0, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_233)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_233: .word 0xa9847b9a ! 306: WR_SET_SOFTINT_I wr %r17, 0x1b9a, %set_softint #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_234) + 24, 16, 16)) -> intp(5,0,5) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_234)&0xffffffff) + 24, 16, 16)) -> intp(5,0,5) #else setx 0x07cba0aae0777f03, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_234: .word 0x39400001 ! 307: FBPUGE fbuge,a,pn %fcc0, .word 0xe83fc000 ! 308: STD_R std %r20, [%r31 + %r0] pmu_10_235: nop ta T_CHANGE_PRIV setx 0xfffff58afffff72f, %g1, %g7 .word 0xa3800007 ! 309: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_236 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_236 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_236: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 310: RDPC rd %pc, %r19 nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_237 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_237: ta T_CHANGE_NONHPRIV .word 0xd1e7e011 ! 311: CASA_R casa [%r31] %asi, %r17, %r8 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_10_238: ta T_CHANGE_NONPRIV ! macro nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_239 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_239: ta T_CHANGE_NONHPRIV .word 0xd1e7e010 ! 313: CASA_R casa [%r31] %asi, %r16, %r8 .word 0x9f802b60 ! 314: SIR sir 0x0b60 .word 0x91d020b3 ! 315: Tcc_I ta icc_or_xcc, %r0 + 179 splash_cmpr_10_240: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 316: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_10_241: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3d0] %asi .word 0x9d920007 ! 317: WRPR_WSTATE_R wrpr %r8, %r7, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xd05fc000 ! 318: LDX_R ldx [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_242 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00161fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_242: ta T_CHANGE_NONHPRIV .word 0xd1e7e014 ! 319: CASA_R casa [%r31] %asi, %r20, %r8 br_longdelay1_10_243: .word 0x35400001 ! 1: FBPUE fbue,a,pn %fcc0, .word 0xbfefc000 ! 320: RESTORE_R restore %r31, %r0, %r31 splash_cmpr_10_244: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 321: WR_TICK_CMPR_REG_R wr %r0, %r17, %- pmu_10_245: nop ta T_CHANGE_PRIV setx 0xfffffabafffff313, %g1, %g7 .word 0xa3800007 ! 322: WR_PERF_COUNTER_R wr %r0, %r7, %- pmu_10_246: nop setx 0xfffffc2bfffffd61, %g1, %g7 .word 0xa3800007 ! 323: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xd127c000 ! 324: STF_R st %f8, [%r0, %r31] .word 0x89800011 ! 325: WRTICK_R wr %r0, %r17, %tick .word 0x9ba00171 ! 326: FABSq dis not found mondo_10_249: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3c8] %asi .word 0x9d94c011 ! 327: WRPR_WSTATE_R wrpr %r19, %r17, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_250) + 48, 16, 16)) -> intp(6,0,17) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_250)&0xffffffff) + 48, 16, 16)) -> intp(6,0,17) #else setx 0xafeea9bc011b3b42, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_250: .word 0x39400001 ! 328: FBPUGE fbuge,a,pn %fcc0, donret_10_251: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_251-donret_10_251-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x005e5fa2 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xdd5, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (10) .word 0x30800001 ! 1: BA ba,a done donretarg_10_251: .word 0xa1a489d2 ! 329: FDIVd fdivd %f18, %f18, %f16 .word 0xd4c7e008 ! 330: LDSWA_I ldswa [%r31, + 0x0008] %asi, %r10 .word 0xe1bfe0e0 ! 331: STDFA_I stda %f16, [0x00e0, %r31] nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xd45fc000 ! 332: LDX_R ldx [%r31 + %r0], %r10 br_badelay3_10_252: .word 0x20800001 ! 1: BN bn,a .word 0xe578d806 ! Random illegal ? .word 0x99a00554 ! 1: FSQRTd fsqrt .word 0xa5a24832 ! 333: FADDs fadds %f9, %f18, %f18 splash_hpstate_10_253: .word 0x2acb0001 ! 1: BRNZ brnz,a,pt %r12, .word 0x81983a4b ! 334: WRHPR_HPSTATE_I wrhpr %r0, 0x1a4b, %hpstate mondo_10_254: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3c8] %asi .word 0x9d950005 ! 335: WRPR_WSTATE_R wrpr %r20, %r5, %wstate .word 0x9f803b8a ! 336: SIR sir 0x1b8a .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_10_255: ta T_CHANGE_NONHPRIV ! macro .word 0xe277e0e0 ! 338: STX_I stx %r17, [%r31 + 0x00e0] pmu_10_256: nop ta T_CHANGE_PRIV setx 0xfffff5b9fffff990, %g1, %g7 .word 0xa3800007 ! 339: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xe327c000 ! 340: STF_R st %f17, [%r0, %r31] otherw mov 0x30, %r30 .word 0x83d0001e ! 341: Tcc_R te icc_or_xcc, %r0 + %r30 .word 0xe227e1e2 ! 342: STW_I stw %r17, [%r31 + 0x01e2] setx 0xf147c530a577dc66, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_257: .word 0x39400001 ! 343: FBPUGE fbuge,a,pn %fcc0, jmptr_10_258: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 344: JMPL_R jmpl %r27 + %r0, %r27 donret_10_259: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_259-donret_10_259-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0081c6ec | (0x82 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x715, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) .word 0x20800001 ! 1: BN bn,a done donretarg_10_259: .word 0x95a149d3 ! 345: FDIVd fdivd %f36, %f50, %f10 jmptr_10_260: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 346: JMPL_R jmpl %r27 + %r0, %r27 .word 0xa3a00167 ! 347: FABSq dis not found .word 0x96c0f5cb ! 348: ADDCcc_I addccc %r3, 0xfffff5cb, %r11 mondo_10_262: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r2, [%r0+0x3e8] %asi .word 0x9d928013 ! 349: WRPR_WSTATE_R wrpr %r10, %r19, %wstate .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0x8d903218 ! 350: WRPR_PSTATE_I wrpr %r0, 0x1218, %pstate .word 0xe19fe0e0 ! 351: LDDFA_I ldda [%r31, 0x00e0], %f16 .word 0x89800011 ! 352: WRTICK_R wr %r0, %r17, %tick .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_10_265: ta T_CHANGE_NONHPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_266) + 56, 16, 16)) -> intp(7,0,7) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_266)&0xffffffff) + 56, 16, 16)) -> intp(7,0,7) #else setx 0x7122ac1e27db9ea9, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_266: .word 0x39400001 ! 354: FBPUGE fbuge,a,pn %fcc0, setx vahole_target1, %r18, %r27 .word 0xe63fe090 ! 355: STD_I std %r19, [%r31 + 0x0090] .word 0xc19fe080 ! 356: LDDFA_I ldda [%r31, 0x0080], %f0 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_268)+40, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_268)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_268: .word 0xa9842312 ! 357: WR_SET_SOFTINT_I wr %r16, 0x0312, %set_softint setx 0x7186f64451a600ba, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_269: .word 0x39400001 ! 358: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_270 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_270 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610070, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_270: ta T_CHANGE_NONHPRIV .word 0x95414000 ! 359: RDPC rd %pc, %r10 .word 0x89800011 ! 360: WRTICK_R wr %r0, %r17, %tick br_longdelay1_10_272: .word 0x32800001 ! 1: BNE bne,a .word 0x9d97c000 ! 361: WRPR_WSTATE_R wrpr %r31, %r0, %wstate fpinit_10_273: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0xc3e8376b ! 362: PREFETCHA_I prefetcha [%r0, + 0xfffff76b] %asi, #one_read jmptr_10_274: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 363: JMPL_R jmpl %r27 + %r0, %r27 ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 364: MEMBAR membar #LoadLoad | #Lookaside intveclr_10_276: nop ta T_CHANGE_HPRIV setx 0xaa830dec8669510d, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 365: FBPLG fblg,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_277 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_277 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610050, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_277: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 366: RDPC rd %pc, %r16 brcommon3_10_278: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd937c00c ! 1: STQF_R - %f12, [%r12, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd89fe060 ! 367: LDDA_I ldda [%r31, + 0x0060] %asi, %r12 .word 0xd827e1fe ! 368: STW_I stw %r12, [%r31 + 0x01fe] .word 0xd8c7e1d8 ! 369: LDSWA_I ldswa [%r31, + 0x01d8] %asi, %r12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_279)+16, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_279)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_279: .word 0xa9826f1c ! 370: WR_SET_SOFTINT_I wr %r9, 0x0f1c, %set_softint nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_280 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_280 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100e0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_280: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 371: RDPC rd %pc, %r16 .word 0xd4cfe050 ! 372: LDSBA_I ldsba [%r31, + 0x0050] %asi, %r10 splash_cmpr_10_281: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 373: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_282 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_282: ta T_CHANGE_NONHPRIV .word 0xd5e7e00c ! 374: CASA_R casa [%r31] %asi, %r12, %r10 br_badelay2_10_283: .word 0xa1a409d2 ! 1: FDIVd fdivd %f16, %f18, %f16 pdist %f8, %f8, %f26 .word 0x91b14314 ! 375: ALIGNADDRESS alignaddr %r5, %r20, %r8 .word 0xe19fe1e0 ! 376: LDDFA_I ldda [%r31, 0x01e0], %f16 .word 0x9f802663 ! 377: SIR sir 0x0663 .word 0xe1bfdb60 ! 378: STDFA_R stda %f16, [%r0, %r31] .word 0x92d98013 ! 379: SMULcc_R smulcc %r6, %r19, %r9 .word 0xc32fc000 ! 380: STXFSR_R st-sfr %f1, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_285 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_285 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610000, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_285: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 381: RDPC rd %pc, %r19 brcommon3_10_286: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xdb37c00d ! 1: STQF_R - %f13, [%r13, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xdadfc02b ! 382: LDXA_R ldxa [%r31, %r11] 0x01, %r13 .word 0x28800001 ! 383: BLEU bleu,a .word 0xda9fc028 ! 384: LDDA_R ldda [%r31, %r8] 0x01, %r13 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_288) + 8, 16, 16)) -> intp(3,0,29) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_288)&0xffffffff) + 8, 16, 16)) -> intp(3,0,29) #else setx 0x998e5d24d51a20b0, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_288: .word 0x39400001 ! 385: FBPUGE fbuge,a,pn %fcc0, tagged_10_289: taddcctv %r12, 0x120d, %r3 .word 0xda07e077 ! 386: LDUW_I lduw [%r31 + 0x0077], %r13 ibp_10_290: nop .word 0xe1bfe060 ! 387: STDFA_I stda %f16, [0x0060, %r31] cwp_10_291: set user_data_start, %o7 .word 0x93902000 ! 388: WRPR_CWP_I wrpr %r0, 0x0000, %cwp pmu_10_292: nop ta T_CHANGE_PRIV setx 0xfffffa40fffff169, %g1, %g7 .word 0xa3800007 ! 389: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_10_293: ta T_CHANGE_NONPRIV ! macro ceter_10_294: nop ta T_CHANGE_HPRIV mov 1, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0x99410000 ! 391: RDTICK rd %tick, %r12 cwp_10_295: set user_data_start, %o7 .word 0x93902003 ! 392: WRPR_CWP_I wrpr %r0, 0x0003, %cwp splash_lsu_10_296: nop ta T_CHANGE_HPRIV set 0xafa600e7, %r2 mov 0x1, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 393: FBPULE fbule,a,pn %fcc0, intveclr_10_297: nop ta T_CHANGE_HPRIV setx 0xd9d83f052326f7e9, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 394: FBPLG fblg,a,pn %fcc0, nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe25fc000 ! 395: LDX_R ldx [%r31 + %r0], %r17 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_10_298: ta T_CHANGE_NONPRIV ! macro dvapa_10_299: nop ta T_CHANGE_HPRIV mov 0xde9, %r20 mov 0xc, %r19 sllx %r20, 23, %r20 or %r19, %r20, %r19 stxa %r19, [%g0] ASI_LSU_CONTROL mov 0x38, %r18 stxa %r31, [%r18]0x58 ta T_CHANGE_NONHPRIV .word 0xe3e7e011 ! 397: CASA_R casa [%r31] %asi, %r17, %r17 mondo_10_300: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r1, [%r0+0x3e0] %asi .word 0x9d904008 ! 398: WRPR_WSTATE_R wrpr %r1, %r8, %wstate .word 0xc19fdc00 ! 399: LDDFA_R ldda [%r31, %r0], %f0 .word 0xa7834001 ! 400: WR_GRAPHICS_STATUS_REG_R wr %r13, %r1, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_302) + 48, 16, 16)) -> intp(7,0,13) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_302)&0xffffffff) + 48, 16, 16)) -> intp(7,0,13) #else setx 0x9d10fbf2d4f832d9, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_302: .word 0x39400001 ! 401: FBPUGE fbuge,a,pn %fcc0, brcommon2_10_303: nop setx common_target, %r12, %r27 ba,a .+12 .word 0x9f802040 ! 1: SIR sir 0x0040 ba,a .+8 jmpl %r27+0, %r27 .word 0xe1bfe1e0 ! 402: STDFA_I stda %f16, [0x01e0, %r31] nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_304 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_304: ta T_CHANGE_NONHPRIV .word 0xd3e7e012 ! 403: CASA_R casa [%r31] %asi, %r18, %r9 pmu_10_305: nop setx 0xfffffb1afffff5da, %g1, %g7 .word 0xa3800007 ! 404: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_10_306: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 405: JMPL_R jmpl %r27 + %r0, %r27 .word 0x89800011 ! 406: WRTICK_R wr %r0, %r17, %tick #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_308) + 16, 16, 16)) -> intp(4,0,31) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_308)&0xffffffff) + 16, 16, 16)) -> intp(4,0,31) #else setx 0xa0a8271189614a58, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_308: .word 0x39400001 ! 407: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_10_309: .word 0x81983d5e ! 408: WRHPR_HPSTATE_I wrhpr %r0, 0x1d5e, %hpstate br_badelay2_10_310: .word 0x91a1c9c9 ! 1: FDIVd fdivd %f38, %f40, %f8 pdist %f22, %f22, %f18 .word 0x99b20312 ! 409: ALIGNADDRESS alignaddr %r8, %r18, %r12 splash_cmpr_10_311: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 410: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x10, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_10_312 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_10_312: ta T_CHANGE_NONHPRIV .word 0xe5e7e00d ! 411: CASA_R casa [%r31] %asi, %r13, %r18 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_313)+40, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_313)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_313: .word 0xa98469f5 ! 412: WR_SET_SOFTINT_I wr %r17, 0x09f5, %set_softint memptr_10_314: set 0x60140000, %r31 .word 0x85846e7b ! 413: WRCCR_I wr %r17, 0x0e7b, %ccr .word 0x91948011 ! 414: WRPR_PIL_R wrpr %r18, %r17, %pil .word 0x9f803728 ! 415: SIR sir 0x1728 nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_316 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_316 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100d0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_316: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 416: RDPC rd %pc, %r11 intveclr_10_317: nop ta T_CHANGE_HPRIV setx 0xda0f04fada17cce2, %r1, %r28 stxa %r28, [%g0] 0x72 ta T_CHANGE_NONHPRIV .word 0x25400001 ! 417: FBPLG fblg,a,pn %fcc0, splash_cmpr_10_318: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 418: WR_TICK_CMPR_REG_R wr %r0, %r17, %- setx 0xc751b1d6d49f5582, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_319: .word 0x39400001 ! 419: FBPUGE fbuge,a,pn %fcc0, .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_10_320: ta T_CHANGE_NONHPRIV ! macro mondo_10_321: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r11, [%r0+0x3c0] %asi .word 0x9d940005 ! 421: WRPR_WSTATE_R wrpr %r16, %r5, %wstate splash_lsu_10_322: nop ta T_CHANGE_HPRIV set 0xb6820d7a, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 422: FBPULE fbule,a,pn %fcc0, .word 0x3a780001 ! 423: BPCC .word 0xda3fe0c2 ! 424: STD_I std %r13, [%r31 + 0x00c2] .word 0x91d02032 ! 425: Tcc_I ta icc_or_xcc, %r0 + 50 otherw mov 0x32, %r30 .word 0x83d0001e ! 426: Tcc_R te icc_or_xcc, %r0 + %r30 .word 0x3c800001 ! 1: BPOS bpos,a .word 0x8d903f51 ! 427: WRPR_PSTATE_I wrpr %r0, 0x1f51, %pstate br_badelay2_10_324: .word 0x32800001 ! 1: BNE bne,a allclean .word 0x9bb50310 ! 428: ALIGNADDRESS alignaddr %r20, %r16, %r13 setx vahole_target0, %r18, %r27 .word 0xd6bfc02c ! 429: STDA_R stda %r11, [%r31 + %r12] 0x01 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_10_326) + 40, 16, 16)) -> intp(5,0,18) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_10_326)&0xffffffff) + 40, 16, 16)) -> intp(5,0,18) #else setx 0x737e0ec8dba8c6b6, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_10_326: .word 0x39400001 ! 430: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_10_327: ta T_CHANGE_NONHPRIV .word 0x81983d8f ! 431: WRHPR_HPSTATE_I wrhpr %r0, 0x1d8f, %hpstate splash_htba_10_328: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 432: WRHPR_HTBA_R wrhpr %r0, %r12, %htba .word 0xd607c000 ! 433: LDUW_R lduw [%r31 + %r0], %r11 .word 0x99b4054b ! 434: FCMPEQ16 fcmpeq16 %d16, %d42, %r12 donret_10_329: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_329-donret_10_329-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00c0c028 | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x17dd, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (10) done donretarg_10_329: .word 0xd8ffe1a9 ! 435: SWAPA_I swapa %r12, [%r31 + 0x01a9] %asi .word 0xa7a04d28 ! 436: FsMULd fsmuld %f1, %f8, %f50 splash_tba_10_330: ta T_CHANGE_PRIV setx 0x0000000000380000, %r11, %r12 .word 0x8b90000c ! 437: WRPR_TBA_R wrpr %r0, %r12, %tba nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe25fc000 ! 438: LDX_R ldx [%r31 + %r0], %r17 nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe25fc000 ! 439: LDX_R ldx [%r31 + %r0], %r17 donret_10_331: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_331-donret_10_331-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00f4932c | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1427, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (10) .word 0x22cc0001 ! 1: BRZ brz,a,pt %r16, done donretarg_10_331: .word 0xe26fe007 ! 440: LDSTUB_I ldstub %r17, [%r31 + 0x0007] donret_10_332: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_332-donret_10_332-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00650ca3 | (4 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x715, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) retry donretarg_10_332: .word 0x91a489c8 ! 441: FDIVd fdivd %f18, %f8, %f8 setx 0x9722ce3b6d53ea6d, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_10_333: .word 0x39400001 ! 442: FBPUGE fbuge,a,pn %fcc0, .word 0xe88fe0a8 ! 443: LDUBA_I lduba [%r31, + 0x00a8] %asi, %r20 .word 0xe937e014 ! 444: STQF_I - %f20, [0x0014, %r31] ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 445: MEMBAR membar #LoadLoad | #Lookaside .word 0x97b1c7d0 ! 446: PDIST pdistn %d38, %d16, %d42 brcommon2_10_336: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xa9b7c712 ! 1: FMULD8SUx16 fmuld8ulx16 %f31, %f18, %d20 ba,a .+8 jmpl %r27+0, %r27 .word 0xc19fd960 ! 447: LDDFA_R ldda [%r31, %r0], %f0 .word 0xa048c013 ! 448: MULX_R mulx %r3, %r19, %r16 splash_lsu_10_337: nop ta T_CHANGE_HPRIV set 0x0c784343, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 449: FBPULE fbule,a,pn %fcc0, mondo_10_338: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3d8] %asi .word 0x9d92c009 ! 450: WRPR_WSTATE_R wrpr %r11, %r9, %wstate .word 0x89800011 ! 451: WRTICK_R wr %r0, %r17, %tick splash_hpstate_10_340: ta T_CHANGE_NONHPRIV .word 0x26cd0001 ! 1: BRLZ brlz,a,pt %r20, .word 0x81982652 ! 452: WRHPR_HPSTATE_I wrhpr %r0, 0x0652, %hpstate pmu_10_341: nop ta T_CHANGE_PRIV setx 0xffffff68fffff48c, %g1, %g7 .word 0xa3800007 ! 453: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x91d02032 ! 454: Tcc_I ta icc_or_xcc, %r0 + 50 .word 0x95a409b2 ! 455: FDIVs fdivs %f16, %f18, %f10 .word 0xe73fc000 ! 456: STDF_R std %f19, [%r0, %r31] cwp_10_342: set user_data_start, %o7 .word 0x93902001 ! 457: WRPR_CWP_I wrpr %r0, 0x0001, %cwp jmptr_10_343: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 458: JMPL_R jmpl %r27 + %r0, %r27 jmptr_10_344: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 459: JMPL_R jmpl %r27 + %r0, %r27 jmptr_10_345: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 460: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe71fe020 ! 461: LDDF_I ldd [%r31, 0x0020], %f19 brcommon1_10_347: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xa77021c0 ! 1: POPC_I popc 0x01c0, %r19 ba,a .+8 jmpl %r27+0, %r27 .word 0x9f803f59 ! 462: SIR sir 0x1f59 .word 0x89800011 ! 463: WRTICK_R wr %r0, %r17, %tick ceter_10_349: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x95410000 ! 464: RDTICK rd %tick, %r10 splash_cmpr_10_350: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 465: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xa0818012 ! 466: ADDcc_R addcc %r6, %r18, %r16 .word 0xd2800a80 ! 467: LDUWA_R lduwa [%r0, %r0] 0x54, %r9 memptr_10_351: set user_data_start, %r31 .word 0x858470a6 ! 468: WRCCR_I wr %r17, 0x10a6, %ccr .word 0xd27fe040 ! 469: SWAP_I swap %r9, [%r31 + 0x0040] .word 0x9f803f9d ! 470: SIR sir 0x1f9d .word 0x91914012 ! 471: WRPR_PIL_R wrpr %r5, %r18, %pil .word 0x28780001 ! 472: BPLEU jmptr_10_353: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 473: JMPL_R jmpl %r27 + %r0, %r27 .word 0x87aa8a50 ! 474: FCMPd fcmpd %fcc, %f10, %f16 .word 0xa5a449a1 ! 475: FDIVs fdivs %f17, %f1, %f18 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_10_356)+16, 16, 16)) -> intp(mask2tid(0x10),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_10_356)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x10),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_10_356: .word 0xa9813407 ! 476: WR_SET_SOFTINT_I wr %r4, 0x1407, %set_softint trapasi_10_357: nop mov 0x20, %r1 ! (VA for ASI 0x4c) .word 0xd8884980 ! 477: LDUBA_R lduba [%r1, %r0] 0x4c, %r12 .word 0xe19fe160 ! 478: LDDFA_I ldda [%r31, 0x0160], %f16 donret_10_358: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_358-donret_10_358-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00e852b0 | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xe88, %htstate ta T_CHANGE_NONPRIV ! rand=0 (10) retry donretarg_10_358: .word 0xd8ffe146 ! 479: SWAPA_I swapa %r12, [%r31 + 0x0146] %asi .word 0x29800001 ! 480: FBL fbl,a mondo_10_360: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r6, [%r0+0x3c8] %asi .word 0x9d90c012 ! 481: WRPR_WSTATE_R wrpr %r3, %r18, %wstate .word 0xc19fdc00 ! 482: LDDFA_R ldda [%r31, %r0], %f0 br_badelay1_10_361: .word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, .word 0xd937c013 ! 1: STQF_R - %f12, [%r19, %r31] .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, normalw .word 0xa7458000 ! 483: RD_SOFTINT_REG rd %softint, %r19 .word 0x9f80254e ! 484: SIR sir 0x054e .word 0xdb27e051 ! 485: STF_I st %f13, [0x0051, %r31] .word 0xda0fc000 ! 486: LDUB_R ldub [%r31 + %r0], %r13 .word 0x26800001 ! 487: BL bl,a pmu_10_362: nop setx 0xfffff99afffff679, %g1, %g7 .word 0xa3800007 ! 488: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8d902789 ! 489: WRPR_PSTATE_I wrpr %r0, 0x0789, %pstate .word 0xda3fc000 ! 490: STD_R std %r13, [%r31 + %r0] donret_10_365: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_10_365-donret_10_365-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x007e9ba1 | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1d1f, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (10) done donretarg_10_365: .word 0xdaffe170 ! 491: SWAPA_I swapa %r13, [%r31 + 0x0170] %asi .word 0xdb27e113 ! 492: STF_I st %f13, [0x0113, %r31] .word 0xdaffc02b ! 493: SWAPA_R swapa %r13, [%r31 + %r11] 0x01 splash_cmpr_10_366: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 494: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xda5fc000 ! 495: LDX_R ldx [%r31 + %r0], %r13 .word 0x9f802ba5 ! 496: SIR sir 0x0ba5 pmu_10_367: nop ta T_CHANGE_PRIV setx 0xfffff2fafffff2c7, %g1, %g7 .word 0xa3800007 ! 497: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x10+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_10_368 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_10_368 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100a0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_10_368: ta T_CHANGE_NONHPRIV .word 0x91414000 ! 498: RDPC rd %pc, %r8 change_to_randtl_10_369: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_10_369: .word 0x8f902000 ! 499: WRPR_TL_I wrpr %r0, 0x0000, %tl .word 0xe737c000 ! 500: STQF_R - %f19, [%r0, %r31] mondo_10_370: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r5, [%r0+0x3d8] %asi .word 0x9d914013 ! 501: WRPR_WSTATE_R wrpr %r5, %r19, %wstate nop nop ta T_CHANGE_PRIV wrpr %g0, %g0, %gl nop nop setx join_lbl_0_0, %g1, %g2 jmp %g2 nop fork_lbl_0_4: ta T_CHANGE_NONHPRIV br_longdelay1_8_0: .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate fbge,a,pn %fcc0, skip_8_1 fbo skip_8_1 .align 1024 skip_8_1: .word 0xe63fc000 ! 2: STD_R std %r19, [%r31 + %r0] nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_2 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_2: ta T_CHANGE_NONHPRIV .word 0xe7e7e013 ! 3: CASA_R casa [%r31] %asi, %r19, %r19 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_8_3: ta T_CHANGE_NONHPRIV ! macro .word 0xa7814014 ! 5: WR_GRAPHICS_STATUS_REG_R wr %r5, %r20, %- .word 0x87ac0ac8 ! 6: FCMPEd fcmped %fcc, %f16, %f8 vahole_8_5: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe71fc011 ! 7: LDDF_R ldd [%r31, %r17], %f19 memptr_8_6: set user_data_start, %r31 .word 0x8584681e ! 8: WRCCR_I wr %r17, 0x081e, %ccr .word 0x2e780001 ! 9: BPVS ceter_8_7: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0x99410000 ! 10: RDTICK rd %tick, %r12 splash_lsu_8_8: nop ta T_CHANGE_HPRIV set 0x61eeb1cc, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 11: FBPULE fbule,a,pn %fcc0, brcommon1_8_9: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd06fe0c0 ! 1: LDSTUB_I ldstub %r8, [%r31 + 0x00c0] ba,a .+8 jmpl %r27+0, %r27 .word 0x99a449cb ! 12: FDIVd fdivd %f48, %f42, %f12 .word 0x22800001 ! 13: BE be,a pmu_8_10: nop setx 0xfffff9aafffff720, %g1, %g7 .word 0xa3800007 ! 14: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x32780001 ! 15: BPNE pmu_8_11: nop ta T_CHANGE_PRIV setx 0xfffff39bfffffda3, %g1, %g7 .word 0xa3800007 ! 16: WR_PERF_COUNTER_R wr %r0, %r7, %- ibp_8_12: nop .word 0xc19fdf20 ! 17: LDDFA_R ldda [%r31, %r0], %f0 ibp_8_13: nop .word 0xe19fdc00 ! 18: LDDFA_R ldda [%r31, %r0], %f16 .word 0xd65fe158 ! 19: LDX_I ldx [%r31 + 0x0158], %r11 .word 0xd727e190 ! 20: STF_I st %f11, [0x0190, %r31] .word 0x81580000 ! 21: FLUSHW flushw #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_14) + 56, 16, 16)) -> intp(0,0,6) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_14)&0xffffffff) + 56, 16, 16)) -> intp(0,0,6) #else setx 0x69dd84cdcada6b75, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_14: .word 0x39400001 ! 22: FBPUGE fbuge,a,pn %fcc0, donret_8_15: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_15-donret_8_15-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x003f3122 | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x16d6, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) done donretarg_8_15: .word 0xd6ffe1c0 ! 23: SWAPA_I swapa %r11, [%r31 + 0x01c0] %asi set 0x1b37, %l3 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT .word 0x9bb087d3 ! 24: PDIST pdistn %d2, %d50, %d44 .word 0xc1bfdf20 ! 25: STDFA_R stda %f0, [%r0, %r31] pmu_8_16: nop ta T_CHANGE_PRIV setx 0xfffff9a9fffffaec, %g1, %g7 .word 0xa3800007 ! 26: WR_PERF_COUNTER_R wr %r0, %r7, %- vahole_8_17: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xd11fe040 ! 27: LDDF_I ldd [%r31, 0x0040], %f8 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_18)+16, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_18)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_18: .word 0xa9853b30 ! 28: WR_SET_SOFTINT_I wr %r20, 0x1b30, %set_softint .word 0xa5a00170 ! 29: FABSq dis not found donret_8_20: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_20-donret_8_20-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0088279f | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x218, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (8) .word 0x37400001 ! 1: FBPGE fbge,a,pn %fcc0, retry donretarg_8_20: .word 0xe2ffe058 ! 30: SWAPA_I swapa %r17, [%r31 + 0x0058] %asi .word 0xa7808011 ! 31: WR_GRAPHICS_STATUS_REG_R wr %r2, %r17, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_22) + 48, 16, 16)) -> intp(3,0,27) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_22)&0xffffffff) + 48, 16, 16)) -> intp(3,0,27) #else setx 0x4af81cf6b7f81e8f, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_22: .word 0x39400001 ! 32: FBPUGE fbuge,a,pn %fcc0, memptr_8_23: set 0x60740000, %r31 .word 0x8581745f ! 33: WRCCR_I wr %r5, 0x145f, %ccr unsupttte_8_24: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xc3ec4026 ! 34: PREFETCHA_R prefetcha [%r17, %r6] 0x01, #one_read brcommon3_8_25: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c02d ! 1: CASA_I casa [%r31] 0x 1, %r13, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xd3e7e011 ! 35: CASA_R casa [%r31] %asi, %r17, %r9 jmptr_8_26: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 36: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_8_27: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 37: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_8_28: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 38: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_8_29: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3d0] %asi .word 0x9d930011 ! 39: WRPR_WSTATE_R wrpr %r12, %r17, %wstate brcommon3_8_30: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd26fe160 ! 1: LDSTUB_I ldstub %r9, [%r31 + 0x0160] ba,a .+8 jmpl %r27+0, %r27 .word 0xd2bfc029 ! 40: STDA_R stda %r9, [%r31 + %r9] 0x01 .word 0xd2dfe050 ! 41: LDXA_I ldxa [%r31, + 0x0050] %asi, %r9 .word 0xd327e03c ! 42: STF_I st %f9, [0x003c, %r31] setx 0x1d8994de613145d8, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_31: .word 0x39400001 ! 43: FBPUGE fbuge,a,pn %fcc0, mondo_8_32: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r20, [%r0+0x3c0] %asi .word 0x9d944005 ! 44: WRPR_WSTATE_R wrpr %r17, %r5, %wstate ceter_8_33: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa1410000 ! 45: RDTICK rd %tick, %r16 .word 0x91944004 ! 46: WRPR_PIL_R wrpr %r17, %r4, %pil splash_tba_8_35: ta T_CHANGE_PRIV setx 0x00000000003a0000, %r11, %r12 .word 0x8b90000c ! 47: WRPR_TBA_R wrpr %r0, %r12, %tba mondo_8_36: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r12, [%r0+0x3c0] %asi .word 0x9d940014 ! 48: WRPR_WSTATE_R wrpr %r16, %r20, %wstate .word 0x9f803478 ! 49: SIR sir 0x1478 br_longdelay2_8_37: .word 0x22c84001 ! 1: BRZ brz,a,pt %r1, .word 0xa3a7c9ca ! 50: FDIVd fdivd %f62, %f10, %f48 splash_cmpr_8_38: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 51: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_39 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00161fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_39: ta T_CHANGE_NONHPRIV .word 0xe3e7e00b ! 52: CASA_R casa [%r31] %asi, %r11, %r17 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_40)+48, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_40)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_40: .word 0xa9853198 ! 53: WR_SET_SOFTINT_I wr %r20, 0x1198, %set_softint jmptr_8_41: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 54: JMPL_R jmpl %r27 + %r0, %r27 donret_8_42: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_42-donret_8_42-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00f58c84 | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x134d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) retry donretarg_8_42: .word 0xe26fe126 ! 55: LDSTUB_I ldstub %r17, [%r31 + 0x0126] nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_43 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_43 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100c0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_43: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 56: RDPC rd %pc, %r20 splash_hpstate_8_44: .word 0x81983495 ! 57: WRHPR_HPSTATE_I wrhpr %r0, 0x1495, %hpstate .word 0x26800001 ! 1: BL bl,a .word 0x8d902061 ! 58: WRPR_PSTATE_I wrpr %r0, 0x0061, %pstate mondo_8_46: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r3, [%r0+0x3e8] %asi .word 0x9d92000b ! 59: WRPR_WSTATE_R wrpr %r8, %r11, %wstate mondo_8_47: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r17, [%r0+0x3c8] %asi .word 0x9d904006 ! 60: WRPR_WSTATE_R wrpr %r1, %r6, %wstate splash_hpstate_8_48: ta T_CHANGE_NONHPRIV .word 0x8198280f ! 61: WRHPR_HPSTATE_I wrhpr %r0, 0x080f, %hpstate .word 0xd31fe178 ! 62: LDDF_I ldd [%r31, 0x0178], %f9 vahole_8_49: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xc1bfe1a0 ! 63: STDFA_I stda %f0, [0x01a0, %r31] brcommon1_8_50: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c02d ! 1: CASA_I casa [%r31] 0x 1, %r13, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xa7b0c7c8 ! 64: PDIST pdistn %d34, %d8, %d50 splash_hpstate_8_51: ta T_CHANGE_NONHPRIV .word 0x81982747 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x0747, %hpstate .word 0x8d903440 ! 66: WRPR_PSTATE_I wrpr %r0, 0x1440, %pstate .word 0xc19fe100 ! 67: LDDFA_I ldda [%r31, 0x0100], %f0 br_badelay1_8_54: .word 0x30800001 ! 1: BA ba,a .word 0xd337e0b0 ! 1: STQF_I - %f9, [0x00b0, %r31] .word 0x93b7c4cc ! 1: FCMPNE32 fcmpne32 %d62, %d12, %r9 normalw .word 0x95458000 ! 68: RD_SOFTINT_REG rd %softint, %r10 .word 0xd82fe006 ! 69: STB_I stb %r12, [%r31 + 0x0006] donret_8_55: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_55-donret_8_55-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0020667a | (0x4f << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x18df, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) .word 0x2cccc001 ! 1: BRGZ brgz,a,pt %r19, done donretarg_8_55: .word 0x97a489d2 ! 70: FDIVd fdivd %f18, %f18, %f42 nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_56 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_56: ta T_CHANGE_NONHPRIV .word 0xe7e7e012 ! 71: CASA_R casa [%r31] %asi, %r18, %r19 .word 0xc19fe1a0 ! 72: LDDFA_I ldda [%r31, 0x01a0], %f0 mondo_8_57: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r6, [%r0+0x3d8] %asi .word 0x9d91c011 ! 73: WRPR_WSTATE_R wrpr %r7, %r17, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe65fc000 ! 74: LDX_R ldx [%r31 + %r0], %r19 .word 0xe727c000 ! 75: STF_R st %f19, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_58 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_58: ta T_CHANGE_NONHPRIV .word 0xe7e7e012 ! 76: CASA_R casa [%r31] %asi, %r18, %r19 .word 0x2a800001 ! 77: BCS bcs,a nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe65fc000 ! 78: LDX_R ldx [%r31 + %r0], %r19 .word 0xa953c000 ! 79: RDPR_FQ donret_8_59: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_59-donret_8_59-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x000a0b44 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1793, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) done donretarg_8_59: .word 0xa9a049cd ! 80: FDIVd fdivd %f32, %f44, %f20 .word 0xda8fe0e0 ! 81: LDUBA_I lduba [%r31, + 0x00e0] %asi, %r13 .word 0xe19fda00 ! 82: LDDFA_R ldda [%r31, %r0], %f16 change_to_randtl_8_60: ta T_CHANGE_PRIV ! macro done_change_to_randtl_8_60: .word 0x8f902000 ! 83: WRPR_TL_I wrpr %r0, 0x0000, %tl splash_cmpr_8_61: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 84: WR_TICK_CMPR_REG_R wr %r0, %r17, %- jmptr_8_62: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 85: JMPL_R jmpl %r27 + %r0, %r27 mondo_8_63: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r11, [%r0+0x3d8] %asi .word 0x9d918012 ! 86: WRPR_WSTATE_R wrpr %r6, %r18, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_64)+40, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_64)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_64: .word 0xa98461f9 ! 87: WR_SET_SOFTINT_I wr %r17, 0x01f9, %set_softint .word 0xdb37e078 ! 88: STQF_I - %f13, [0x0078, %r31] mondo_8_65: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r8, [%r0+0x3d8] %asi .word 0x9d94400a ! 89: WRPR_WSTATE_R wrpr %r17, %r10, %wstate .word 0xda0fc000 ! 90: LDUB_R ldub [%r31 + %r0], %r13 memptr_8_66: set user_data_start, %r31 .word 0x8582f032 ! 91: WRCCR_I wr %r11, 0x1032, %ccr jmptr_8_67: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 92: JMPL_R jmpl %r27 + %r0, %r27 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_68: ta T_CHANGE_NONPRIV ! macro otherw mov 0xb0, %r30 .word 0x91d0001e ! 94: Tcc_R ta icc_or_xcc, %r0 + %r30 vahole_8_69: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xda9fc033 ! 95: LDDA_R ldda [%r31, %r19] 0x01, %r13 pmu_8_70: nop setx 0xfffff26afffffb7e, %g1, %g7 .word 0xa3800007 ! 96: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_8_71: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 97: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_8_72: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 98: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_hpstate_8_73: .word 0x81983cd7 ! 99: WRHPR_HPSTATE_I wrhpr %r0, 0x1cd7, %hpstate donret_8_74: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_74-donret_8_74-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00398578 | (4 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x9ce, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) .word 0x2ecd0001 ! 1: BRGEZ brgez,a,pt %r20, retry donretarg_8_74: .word 0xda6fe09f ! 100: LDSTUB_I ldstub %r13, [%r31 + 0x009f] change_to_randtl_8_75: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_8_75: .word 0x8f902000 ! 101: WRPR_TL_I wrpr %r0, 0x0000, %tl unsupttte_8_76: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xa1a049c7 ! 102: FDIVd fdivd %f32, %f38, %f16 .word 0x8d9028ab ! 103: WRPR_PSTATE_I wrpr %r0, 0x08ab, %pstate intveclr_8_78: nop ta T_CHANGE_HPRIV setx 0xfc19fa23b4abf672, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 104: FBPLG fblg,a,pn %fcc0, donret_8_79: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_79-donret_8_79-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0082de9a | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xf6d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) done donretarg_8_79: .word 0xa3a489d3 ! 105: FDIVd fdivd %f18, %f50, %f48 .word 0xe4d7e1d8 ! 106: LDSHA_I ldsha [%r31, + 0x01d8] %asi, %r18 tagged_8_80: tsubcctv %r7, 0x1868, %r16 .word 0xe407e135 ! 107: LDUW_I lduw [%r31 + 0x0135], %r18 nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_81 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_81 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610080, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_81: ta T_CHANGE_NONHPRIV .word 0x95414000 ! 108: RDPC rd %pc, %r10 splash_lsu_8_82: nop ta T_CHANGE_HPRIV set 0xc0641729, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 109: FBPULE fbule,a,pn %fcc0, splash_cmpr_8_83: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 110: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_htba_8_84: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 111: WRHPR_HTBA_R wrhpr %r0, %r12, %htba mondo_8_85: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r20, [%r0+0x3d0] %asi .word 0x9d910012 ! 112: WRPR_WSTATE_R wrpr %r4, %r18, %wstate .word 0xc1bfdf20 ! 113: STDFA_R stda %f0, [%r0, %r31] .word 0xe19fc2c0 ! 114: LDDFA_R ldda [%r31, %r0], %f16 splash_cmpr_8_86: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 115: WR_STICK_CMPR_REG_R wr %r0, %r17, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_87)+0, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_87)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_87: .word 0xa9832005 ! 116: WR_SET_SOFTINT_I wr %r12, 0x0005, %set_softint brcommon3_8_88: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd137c013 ! 1: STQF_R - %f8, [%r19, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd09fc034 ! 117: LDDA_R ldda [%r31, %r20] 0x01, %r8 .word 0x2a800001 ! 1: BCS bcs,a .word 0x8d903359 ! 118: WRPR_PSTATE_I wrpr %r0, 0x1359, %pstate .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_90: ta T_CHANGE_NONPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_91)+16, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_91)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_91: .word 0xa984fae3 ! 120: WR_SET_SOFTINT_I wr %r19, 0x1ae3, %set_softint splash_cmpr_8_92: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 .word 0xaf800011 ! 121: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xa7a00162 ! 122: FABSq dis not found ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 123: MEMBAR membar #LoadLoad | #Lookaside splash_cmpr_8_95: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 124: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xc1bfdb60 ! 125: STDFA_R stda %f0, [%r0, %r31] jmptr_8_96: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 126: JMPL_R jmpl %r27 + %r0, %r27 setx 0x5c5019c401e35f25, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_97: .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, pmu_8_98: nop ta T_CHANGE_PRIV setx 0xfffffb1afffff9f8, %g1, %g7 .word 0xa3800007 ! 128: WR_PERF_COUNTER_R wr %r0, %r7, %- donret_8_99: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_99-donret_8_99-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x003c52dd | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x316, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) done donretarg_8_99: .word 0x99a449c4 ! 129: FDIVd fdivd %f48, %f4, %f12 pmu_8_100: nop setx 0xfffff7b9ffffff09, %g1, %g7 .word 0xa3800007 ! 130: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_8_101: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3d0] %asi .word 0x9d92000d ! 131: WRPR_WSTATE_R wrpr %r8, %r13, %wstate nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_102 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_102: ta T_CHANGE_NONHPRIV .word 0xd9e7e008 ! 132: CASA_R casa [%r31] %asi, %r8, %r12 .word 0xc1bfc3e0 ! 133: STDFA_R stda %f0, [%r0, %r31] splash_tba_8_103: ta T_CHANGE_PRIV setx 0x00000000003a0000, %r11, %r12 .word 0x8b90000c ! 134: WRPR_TBA_R wrpr %r0, %r12, %tba splash_lsu_8_104: nop ta T_CHANGE_HPRIV set 0xaa20c85c, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 135: FBPULE fbule,a,pn %fcc0, setx 0x6a2079cf9c40dbaf, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_105: .word 0x39400001 ! 136: FBPUGE fbuge,a,pn %fcc0, change_to_randtl_8_106: ta T_CHANGE_PRIV ! macro done_change_to_randtl_8_106: .word 0x8f902001 ! 137: WRPR_TL_I wrpr %r0, 0x0001, %tl nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_107 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_107 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_107: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 138: RDPC rd %pc, %r17 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_108)+48, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_108)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_108: .word 0xa9846ea7 ! 139: WR_SET_SOFTINT_I wr %r17, 0x0ea7, %set_softint br_badelay1_8_109: .word 0xc36fe040 ! 1: PREFETCH_I prefetch [%r31 + 0x0040], #one_read .word 0xd5352d5b ! 1: STQF_I - %f10, [0x0d5b, %r20] .word 0x87afca48 ! 1: FCMPd fcmpd %fcc, %f62, %f8 normalw .word 0x99458000 ! 140: RD_SOFTINT_REG rd %softint, %r12 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_110: ta T_CHANGE_NONHPRIV ! macro vahole_8_111: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0x937039f9 ! 142: POPC_I popc 0x19f9, %r9 nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_112 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_112 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100c0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_112: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 143: RDPC rd %pc, %r11 .word 0xd91fe1f0 ! 144: LDDF_I ldd [%r31, 0x01f0], %f12 setx 0xf9242e0fa3a6ef82, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_113: .word 0x39400001 ! 145: FBPUGE fbuge,a,pn %fcc0, .word 0xa2d1800b ! 146: UMULcc_R umulcc %r6, %r11, %r17 splash_cmpr_8_114: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 147: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_8_115: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r6, [%r0+0x3c8] %asi .word 0x9d94c00b ! 148: WRPR_WSTATE_R wrpr %r19, %r11, %wstate change_to_randtl_8_116: ta T_CHANGE_PRIV ! macro done_change_to_randtl_8_116: .word 0x8f902001 ! 149: WRPR_TL_I wrpr %r0, 0x0001, %tl change_to_randtl_8_117: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_8_117: .word 0x8f902001 ! 150: WRPR_TL_I wrpr %r0, 0x0001, %tl #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_118) + 32, 16, 16)) -> intp(0,0,6) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_118)&0xffffffff) + 32, 16, 16)) -> intp(0,0,6) #else setx 0xc17b9475912f5465, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_118: .word 0x39400001 ! 151: FBPUGE fbuge,a,pn %fcc0, memptr_8_119: set 0x60740000, %r31 .word 0x858421bd ! 152: WRCCR_I wr %r16, 0x01bd, %ccr nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe05fc000 ! 153: LDX_R ldx [%r31 + %r0], %r16 .word 0x8d902cfa ! 154: WRPR_PSTATE_I wrpr %r0, 0x0cfa, %pstate mondo_8_121: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3e0] %asi .word 0x9d90c012 ! 155: WRPR_WSTATE_R wrpr %r3, %r18, %wstate .word 0x8d903147 ! 156: WRPR_PSTATE_I wrpr %r0, 0x1147, %pstate .word 0x91d02033 ! 157: Tcc_I ta icc_or_xcc, %r0 + 51 setx 0x2b29454f1a01ccfc, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_123: .word 0x39400001 ! 158: FBPUGE fbuge,a,pn %fcc0, .word 0xc36b4008 ! 159: PREFETCH_R prefetch [%r13 + %r8], #one_read fpinit_8_124: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x87a80a44 ! 160: FCMPd fcmpd %fcc, %f0, %f4 splash_hpstate_8_125: ta T_CHANGE_NONHPRIV .word 0x35400001 ! 1: FBPUE fbue,a,pn %fcc0, .word 0x819837df ! 161: WRHPR_HPSTATE_I wrhpr %r0, 0x17df, %hpstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe05fc000 ! 162: LDX_R ldx [%r31 + %r0], %r16 nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_126 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_126: ta T_CHANGE_NONHPRIV .word 0xe1e7e012 ! 163: CASA_R casa [%r31] %asi, %r18, %r16 nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_127 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_127: ta T_CHANGE_NONHPRIV .word 0xe1e7e014 ! 164: CASA_R casa [%r31] %asi, %r20, %r16 pmu_8_128: nop ta T_CHANGE_PRIV setx 0xfffffbcffffffaa9, %g1, %g7 .word 0xa3800007 ! 165: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_8_129: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 166: WR_STICK_CMPR_REG_R wr %r0, %r17, %- ceter_8_130: nop ta T_CHANGE_HPRIV mov 6, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x93410000 ! 167: RDTICK rd %tick, %r9 jmptr_8_131: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 168: JMPL_R jmpl %r27 + %r0, %r27 .word 0xa768c014 ! 169: SDIVX_R sdivx %r3, %r20, %r19 splash_cmpr_8_132: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 .word 0xb3800011 ! 170: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xd01fc000 ! 171: LDD_R ldd [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_133 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_133 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_133: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 172: RDPC rd %pc, %r16 jmptr_8_134: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 173: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe09fd040 ! 174: LDDA_R ldda [%r31, %r0] 0x82, %r16 setx 0x1fc81410f930ee25, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_135: .word 0x39400001 ! 175: FBPUGE fbuge,a,pn %fcc0, splash_cmpr_8_136: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 176: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe0d7e1c0 ! 177: LDSHA_I ldsha [%r31, + 0x01c0] %asi, %r16 splash_cmpr_8_137: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 178: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_8_138: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r19, [%r0+0x3c8] %asi .word 0x9d94000d ! 179: WRPR_WSTATE_R wrpr %r16, %r13, %wstate change_to_randtl_8_139: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_8_139: .word 0x8f902000 ! 180: WRPR_TL_I wrpr %r0, 0x0000, %tl jmptr_8_140: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 181: JMPL_R jmpl %r27 + %r0, %r27 .word 0x9194c002 ! 182: WRPR_PIL_R wrpr %r19, %r2, %pil donret_8_142: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_142-donret_8_142-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00b2d670 | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1648, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) retry donretarg_8_142: .word 0x97a309d2 ! 183: FDIVd fdivd %f12, %f18, %f42 .word 0xe6c7e130 ! 184: LDSWA_I ldswa [%r31, + 0x0130] %asi, %r19 .word 0xe1bfda00 ! 185: STDFA_R stda %f16, [%r0, %r31] .word 0xe6cfe0a8 ! 186: LDSBA_I ldsba [%r31, + 0x00a8] %asi, %r19 splash_cmpr_8_143: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 187: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xa6814012 ! 188: ADDcc_R addcc %r5, %r18, %r19 ibp_8_144: nop ta T_CHANGE_NONHPRIV .word 0xc19fe0c0 ! 189: LDDFA_I ldda [%r31, 0x00c0], %f0 ceter_8_145: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa5410000 ! 190: RDTICK rd %tick, %r18 ceter_8_146: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x91410000 ! 191: RDTICK rd %tick, %r8 setx 0x28534d2129d754eb, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_147: .word 0x39400001 ! 192: FBPUGE fbuge,a,pn %fcc0, .word 0x29800001 ! 193: FBL fbl,a .word 0xa3a0016b ! 194: FABSq dis not found .word 0xe6c7e1a0 ! 195: LDSWA_I ldswa [%r31, + 0x01a0] %asi, %r19 splash_lsu_8_150: nop ta T_CHANGE_HPRIV set 0x4335c248, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 196: FBPULE fbule,a,pn %fcc0, .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_151: ta T_CHANGE_NONPRIV ! macro .word 0xe65fe1f0 ! 198: LDX_I ldx [%r31 + 0x01f0], %r19 splash_hpstate_8_152: ta T_CHANGE_NONHPRIV .word 0x2aca4001 ! 1: BRNZ brnz,a,pt %r9, .word 0x819834c5 ! 199: WRHPR_HPSTATE_I wrhpr %r0, 0x14c5, %hpstate .word 0xa353c000 ! 200: RDPR_FQ .word 0x9f803f48 ! 201: SIR sir 0x1f48 mondo_8_153: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3c0] %asi .word 0x9d90c006 ! 202: WRPR_WSTATE_R wrpr %r3, %r6, %wstate jmptr_8_154: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 203: JMPL_R jmpl %r27 + %r0, %r27 brgz,pn %r5, skip_8_155 .word 0x87acca53 ! 1: FCMPd fcmpd %fcc, %f50, %f50 .align 2048 skip_8_155: .word 0x9ba4c9d3 ! 204: FDIVd fdivd %f50, %f50, %f44 pmu_8_156: nop ta T_CHANGE_PRIV setx 0xfffff9b7fffffe79, %g1, %g7 .word 0xa3800007 ! 205: WR_PERF_COUNTER_R wr %r0, %r7, %- setx 0xeb2364d95f00e926, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_157: .word 0x39400001 ! 206: FBPUGE fbuge,a,pn %fcc0, .word 0xe677e0da ! 207: STX_I stx %r19, [%r31 + 0x00da] brcommon2_8_158: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xd110c014 ! 1: LDQF_R - [%r3, %r20], %f8 ba,a .+8 jmpl %r27+0, %r27 .word 0xe1bfe080 ! 208: STDFA_I stda %f16, [0x0080, %r31] .word 0xa6fcc00c ! 209: SDIVcc_R sdivcc %r19, %r12, %r19 .word 0xd897e160 ! 210: LDUHA_I lduha [%r31, + 0x0160] %asi, %r12 .word 0x3c800001 ! 211: BPOS bpos,a change_to_randtl_8_159: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_8_159: .word 0x8f902001 ! 212: WRPR_TL_I wrpr %r0, 0x0001, %tl tagged_8_160: tsubcctv %r19, 0x14cf, %r17 .word 0xd807e1f2 ! 213: LDUW_I lduw [%r31 + 0x01f2], %r12 br_badelay1_8_161: .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, .word 0xd937c008 ! 1: STQF_R - %f12, [%r8, %r31] .word 0x87afca52 ! 1: FCMPd fcmpd %fcc, %f62, %f18 normalw .word 0x95458000 ! 214: RD_SOFTINT_REG rd %softint, %r10 pmu_8_162: nop setx 0xfffff284fffff7ed, %g1, %g7 .word 0xa3800007 ! 215: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 216: WRTICK_R wr %r0, %r17, %tick pmu_8_164: nop ta T_CHANGE_PRIV setx 0xfffffcbefffff3c9, %g1, %g7 .word 0xa3800007 ! 217: WR_PERF_COUNTER_R wr %r0, %r7, %- otherw mov 0xb1, %r30 .word 0x91d0001e ! 218: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xe1bfd960 ! 219: STDFA_R stda %f16, [%r0, %r31] .word 0xe1bfdc00 ! 220: STDFA_R stda %f16, [%r0, %r31] .word 0xc1bfe1a0 ! 221: STDFA_I stda %f0, [0x01a0, %r31] setx 0xad2763f52d762e5d, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_165: .word 0x39400001 ! 222: FBPUGE fbuge,a,pn %fcc0, br_longdelay1_8_166: .word 0x34800001 ! 1: BG bg,a .word 0xbfe7c000 ! 223: SAVE_R save %r31, %r0, %r31 nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_167 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00161fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_167: ta T_CHANGE_NONHPRIV .word 0xe1e7e013 ! 224: CASA_R casa [%r31] %asi, %r19, %r16 jmptr_8_168: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 225: JMPL_R jmpl %r27 + %r0, %r27 setx 0x5d7682297f0d44f9, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_169: .word 0x39400001 ! 226: FBPUGE fbuge,a,pn %fcc0, mondo_8_170: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r1, [%r0+0x3c0] %asi .word 0x9d94c012 ! 227: WRPR_WSTATE_R wrpr %r19, %r18, %wstate splash_cmpr_8_171: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 228: WR_STICK_CMPR_REG_R wr %r0, %r17, %- pmu_8_172: nop ta T_CHANGE_PRIV setx 0xfffff97bfffff138, %g1, %g7 .word 0xa3800007 ! 229: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_8_173: nop ta T_CHANGE_HPRIV set 0xab7c0853, %r2 mov 0x1, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 230: FBPULE fbule,a,pn %fcc0, mondo_8_174: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3c8] %asi .word 0x9d930006 ! 231: WRPR_WSTATE_R wrpr %r12, %r6, %wstate memptr_8_175: set 0x60740000, %r31 .word 0x8584e3ab ! 232: WRCCR_I wr %r19, 0x03ab, %ccr mondo_8_176: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3c8] %asi .word 0x9d944012 ! 233: WRPR_WSTATE_R wrpr %r17, %r18, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_177)+48, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_177)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_177: .word 0xa98327c9 ! 234: WR_SET_SOFTINT_I wr %r12, 0x07c9, %set_softint splash_lsu_8_178: nop ta T_CHANGE_HPRIV set 0x3417233e, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 235: FBPULE fbule,a,pn %fcc0, pmu_8_179: nop setx 0xfffff3d9fffffdfd, %g1, %g7 .word 0xa3800007 ! 236: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_8_180: nop ta T_CHANGE_HPRIV set 0x87d05510, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 237: FBPULE fbule,a,pn %fcc0, splash_cmpr_8_181: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 238: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe057e178 ! 239: LDSH_I ldsh [%r31 + 0x0178], %r16 donret_8_182: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_182-donret_8_182-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00b8f643 | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x121e, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) retry donretarg_8_182: .word 0xe0ffe154 ! 240: SWAPA_I swapa %r16, [%r31 + 0x0154] %asi .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_183: ta T_CHANGE_NONPRIV ! macro .word 0xc1bfe1e0 ! 242: STDFA_I stda %f0, [0x01e0, %r31] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_184)+40, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_184)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_184: .word 0xa983221f ! 243: WR_SET_SOFTINT_I wr %r12, 0x021f, %set_softint unsupttte_8_185: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x97a509c9 ! 244: FDIVd fdivd %f20, %f40, %f42 .word 0x2a800001 ! 245: BCS bcs,a nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_186 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_186 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610050, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_186: ta T_CHANGE_NONHPRIV .word 0xa9414000 ! 246: RDPC rd %pc, %r20 setx 0x88646b9a2bd631f0, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_187: .word 0x39400001 ! 247: FBPUGE fbuge,a,pn %fcc0, pmu_8_188: nop setx 0xfffffc07fffff475, %g1, %g7 .word 0xa3800007 ! 248: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_8_189: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 249: WR_STICK_CMPR_REG_R wr %r0, %r17, %- donret_8_190: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_190-donret_8_190-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00914cba | (28 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x4d, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (8) retry donretarg_8_190: .word 0x93a089cd ! 250: FDIVd fdivd %f2, %f44, %f40 memptr_8_191: set 0x60140000, %r31 .word 0x85806e15 ! 251: WRCCR_I wr %r1, 0x0e15, %ccr .word 0xe49fc3c0 ! 252: LDDA_R ldda [%r31, %r0] 0x1e, %r18 .word 0x29800001 ! 253: FBL fbl,a nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_193 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_193 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_193: ta T_CHANGE_NONHPRIV .word 0x93414000 ! 254: RDPC rd %pc, %r9 splash_lsu_8_194: nop ta T_CHANGE_HPRIV set 0xae413231, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 255: FBPULE fbule,a,pn %fcc0, .word 0xa153c000 ! 256: RDPR_FQ vahole_8_195: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xe91fc012 ! 257: LDDF_R ldd [%r31, %r18], %f20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_196) + 48, 16, 16)) -> intp(3,0,4) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_196)&0xffffffff) + 48, 16, 16)) -> intp(3,0,4) #else setx 0x04e7abdfe7c61367, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_196: .word 0x39400001 ! 258: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_197 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_197: ta T_CHANGE_NONHPRIV .word 0xe9e7e014 ! 259: CASA_R casa [%r31] %asi, %r20, %r20 .word 0xe8c7e0e8 ! 260: LDSWA_I ldswa [%r31, + 0x00e8] %asi, %r20 vahole_8_198: nop ta T_CHANGE_NONHPRIV setx vahole_target3, %r18, %r27 jmpl %r27+0, %r27 .word 0x9bb50487 ! 261: FCMPLE32 fcmple32 %d20, %d38, %r13 .word 0xd697e1c0 ! 262: LDUHA_I lduha [%r31, + 0x01c0] %asi, %r11 .word 0xd73fc000 ! 263: STDF_R std %f11, [%r0, %r31] .word 0xd68fe1c8 ! 264: LDUBA_I lduba [%r31, + 0x01c8] %asi, %r11 pmu_8_199: nop setx 0xfffff197fffff974, %g1, %g7 .word 0xa3800007 ! 265: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 266: WRTICK_R wr %r0, %r17, %tick vahole_8_201: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0x9ba089d2 ! 267: FDIVd fdivd %f2, %f18, %f44 .word 0x36800001 ! 1: BGE bge,a .word 0x8d903fe6 ! 268: WRPR_PSTATE_I wrpr %r0, 0x1fe6, %pstate .word 0xe097e168 ! 269: LDUHA_I lduha [%r31, + 0x0168] %asi, %r16 nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_203 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_203: ta T_CHANGE_NONHPRIV .word 0xe1e7e012 ! 270: CASA_R casa [%r31] %asi, %r18, %r16 .word 0xe07fe060 ! 271: SWAP_I swap %r16, [%r31 + 0x0060] .word 0x28780001 ! 272: BPLEU cwp_8_204: set user_data_start, %o7 .word 0x93902005 ! 273: WRPR_CWP_I wrpr %r0, 0x0005, %cwp pmu_8_205: nop ta T_CHANGE_PRIV setx 0xfffff138fffffdf2, %g1, %g7 .word 0xa3800007 ! 274: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_8_206: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3c0] %asi .word 0x9d904011 ! 275: WRPR_WSTATE_R wrpr %r1, %r17, %wstate br_badelay3_8_207: .word 0x32800001 ! 1: BNE bne,a .word 0x34800001 ! 1: BG bg,a .word 0x99a00546 ! 1: FSQRTd fsqrt .word 0xa7a48828 ! 276: FADDs fadds %f18, %f8, %f19 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_208: ta T_CHANGE_NONPRIV ! macro .word 0x89800011 ! 278: WRTICK_R wr %r0, %r17, %tick mondo_8_210: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3e0] %asi .word 0x9d940009 ! 279: WRPR_WSTATE_R wrpr %r16, %r9, %wstate donret_8_211: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_211-donret_8_211-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d3bb6f | (0x8a << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x145d, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (8) done donretarg_8_211: .word 0xd86fe1a8 ! 280: LDSTUB_I ldstub %r12, [%r31 + 0x01a8] donret_8_212: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_212-donret_8_212-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0057a756 | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x4de, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (8) retry donretarg_8_212: .word 0x9ba4c9c9 ! 281: FDIVd fdivd %f50, %f40, %f44 brcommon1_8_213: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xe9e7c028 ! 1: CASA_I casa [%r31] 0x 1, %r8, %r20 ba,a .+8 jmpl %r27+0, %r27 .word 0xa1a249b0 ! 282: FDIVs fdivs %f9, %f16, %f16 .word 0xc19fe120 ! 283: LDDFA_I ldda [%r31, 0x0120], %f0 .word 0x8d902cc9 ! 284: WRPR_PSTATE_I wrpr %r0, 0x0cc9, %pstate splash_cmpr_8_215: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 285: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_8_216: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 286: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_217: ta T_CHANGE_NONPRIV ! macro .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, .word 0x8d9038ef ! 288: WRPR_PSTATE_I wrpr %r0, 0x18ef, %pstate splash_lsu_8_219: nop ta T_CHANGE_HPRIV set 0xc00e5788, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 289: FBPULE fbule,a,pn %fcc0, donret_8_220: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_220-donret_8_220-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00638b57 | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x48d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) .word 0x37400001 ! 1: FBPGE fbge,a,pn %fcc0, retry donretarg_8_220: .word 0xd66fe09f ! 290: LDSTUB_I ldstub %r11, [%r31 + 0x009f] .word 0x91d02035 ! 291: Tcc_I ta icc_or_xcc, %r0 + 53 setx 0xafe6690405eff399, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_221: .word 0x39400001 ! 292: FBPUGE fbuge,a,pn %fcc0, brcommon3_8_222: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd737e090 ! 1: STQF_I - %f11, [0x0090, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd7e7e009 ! 293: CASA_R casa [%r31] %asi, %r9, %r11 .word 0xd6d7e1d8 ! 294: LDSHA_I ldsha [%r31, + 0x01d8] %asi, %r11 pmu_8_223: nop ta T_CHANGE_PRIV setx 0xffffff48fffff476, %g1, %g7 .word 0xa3800007 ! 295: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xa9a00163 ! 296: FABSq dis not found #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_225)+48, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_225)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_225: .word 0xa984f0c2 ! 297: WR_SET_SOFTINT_I wr %r19, 0x10c2, %set_softint memptr_8_226: set 0x60740000, %r31 .word 0x8584ea14 ! 298: WRCCR_I wr %r19, 0x0a14, %ccr mondo_8_227: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r6, [%r0+0x3d8] %asi .word 0x9d920007 ! 299: WRPR_WSTATE_R wrpr %r8, %r7, %wstate .word 0xd297e100 ! 300: LDUHA_I lduha [%r31, + 0x0100] %asi, %r9 vahole_8_228: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0x99a289ad ! 301: FDIVs fdivs %f10, %f13, %f12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_229)+8, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_229)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_229: .word 0xa981747f ! 302: WR_SET_SOFTINT_I wr %r5, 0x147f, %set_softint .word 0x8d903a4c ! 303: WRPR_PSTATE_I wrpr %r0, 0x1a4c, %pstate vahole_8_231: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xe897c02b ! 304: LDUHA_R lduha [%r31, %r11] 0x01, %r20 trapasi_8_232: nop mov 0x18, %r1 ! (VA for ASI 0x4c) .word 0xe8904980 ! 305: LDUHA_R lduha [%r1, %r0] 0x4c, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_233)+8, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_233)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_233: .word 0xa9806d41 ! 306: WR_SET_SOFTINT_I wr %r1, 0x0d41, %set_softint #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_234) + 0, 16, 16)) -> intp(0,0,8) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_234)&0xffffffff) + 0, 16, 16)) -> intp(0,0,8) #else setx 0x21df603e2866927a, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_234: .word 0x39400001 ! 307: FBPUGE fbuge,a,pn %fcc0, .word 0xe83fc000 ! 308: STD_R std %r20, [%r31 + %r0] pmu_8_235: nop ta T_CHANGE_PRIV setx 0xfffffcdafffff264, %g1, %g7 .word 0xa3800007 ! 309: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_236 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_236 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610010, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_236: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 310: RDPC rd %pc, %r11 nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_237 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_237: ta T_CHANGE_NONHPRIV .word 0xd1e7e008 ! 311: CASA_R casa [%r31] %asi, %r8, %r8 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_238: ta T_CHANGE_NONPRIV ! macro nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_239 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_239: ta T_CHANGE_NONHPRIV .word 0xd1e7e013 ! 313: CASA_R casa [%r31] %asi, %r19, %r8 .word 0x9f8032e9 ! 314: SIR sir 0x12e9 .word 0x91d02033 ! 315: Tcc_I ta icc_or_xcc, %r0 + 51 splash_cmpr_8_240: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 316: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_8_241: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r11, [%r0+0x3c0] %asi .word 0x9d948010 ! 317: WRPR_WSTATE_R wrpr %r18, %r16, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xd05fc000 ! 318: LDX_R ldx [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_242 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_242: ta T_CHANGE_NONHPRIV .word 0xd1e7e014 ! 319: CASA_R casa [%r31] %asi, %r20, %r8 br_longdelay1_8_243: .word 0x2d400001 ! 1: FBPG fbg,a,pn %fcc0, .word 0xbfefc000 ! 320: RESTORE_R restore %r31, %r0, %r31 splash_cmpr_8_244: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 321: WR_STICK_CMPR_REG_R wr %r0, %r17, %- pmu_8_245: nop ta T_CHANGE_PRIV setx 0xfffff955fffffeb2, %g1, %g7 .word 0xa3800007 ! 322: WR_PERF_COUNTER_R wr %r0, %r7, %- pmu_8_246: nop setx 0xfffffa0cfffff281, %g1, %g7 .word 0xa3800007 ! 323: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xd127c000 ! 324: STF_R st %f8, [%r0, %r31] .word 0x89800011 ! 325: WRTICK_R wr %r0, %r17, %tick .word 0xa5a00170 ! 326: FABSq dis not found mondo_8_249: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r1, [%r0+0x3c0] %asi .word 0x9d944004 ! 327: WRPR_WSTATE_R wrpr %r17, %r4, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_250) + 24, 16, 16)) -> intp(7,0,8) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_250)&0xffffffff) + 24, 16, 16)) -> intp(7,0,8) #else setx 0x831e48f336c95eea, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_250: .word 0x39400001 ! 328: FBPUGE fbuge,a,pn %fcc0, donret_8_251: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_251-donret_8_251-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00b0340d | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x667, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (8) .word 0x25400001 ! 1: FBPLG fblg,a,pn %fcc0, done donretarg_8_251: .word 0x95a0c9c7 ! 329: FDIVd fdivd %f34, %f38, %f10 .word 0xd4c7e018 ! 330: LDSWA_I ldswa [%r31, + 0x0018] %asi, %r10 .word 0xe1bfe120 ! 331: STDFA_I stda %f16, [0x0120, %r31] nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xd45fc000 ! 332: LDX_R ldx [%r31 + %r0], %r10 br_badelay3_8_252: .word 0x20800001 ! 1: BN bn,a .word 0x997c3548 ! Random illegal ? .word 0x9ba00551 ! 1: FSQRTd fsqrt .word 0x99a40834 ! 333: FADDs fadds %f16, %f20, %f12 splash_hpstate_8_253: .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, .word 0x81982c4d ! 334: WRHPR_HPSTATE_I wrhpr %r0, 0x0c4d, %hpstate mondo_8_254: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r17, [%r0+0x3e8] %asi .word 0x9d918013 ! 335: WRPR_WSTATE_R wrpr %r6, %r19, %wstate .word 0x9f803e3d ! 336: SIR sir 0x1e3d .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_8_255: ta T_CHANGE_NONHPRIV ! macro .word 0xe277e06a ! 338: STX_I stx %r17, [%r31 + 0x006a] pmu_8_256: nop ta T_CHANGE_PRIV setx 0xfffff314fffffddc, %g1, %g7 .word 0xa3800007 ! 339: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xe327c000 ! 340: STF_R st %f17, [%r0, %r31] otherw mov 0xb1, %r30 .word 0x91d0001e ! 341: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xe227e1c6 ! 342: STW_I stw %r17, [%r31 + 0x01c6] setx 0x0f5db33647c6787d, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_257: .word 0x39400001 ! 343: FBPUGE fbuge,a,pn %fcc0, jmptr_8_258: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 344: JMPL_R jmpl %r27 + %r0, %r27 donret_8_259: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_259-donret_8_259-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x005b14a2 | (0x4f << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xd13, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) .word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, done donretarg_8_259: .word 0x9ba309c7 ! 345: FDIVd fdivd %f12, %f38, %f44 jmptr_8_260: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 346: JMPL_R jmpl %r27 + %r0, %r27 .word 0xa1a0016a ! 347: FABSq dis not found .word 0xa4c36c60 ! 348: ADDCcc_I addccc %r13, 0x0c60, %r18 mondo_8_262: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3e8] %asi .word 0x9d94c010 ! 349: WRPR_WSTATE_R wrpr %r19, %r16, %wstate .word 0x2ecac001 ! 1: BRGEZ brgez,a,pt %r11, .word 0x8d902c03 ! 350: WRPR_PSTATE_I wrpr %r0, 0x0c03, %pstate .word 0xe19fe1a0 ! 351: LDDFA_I ldda [%r31, 0x01a0], %f16 .word 0x89800011 ! 352: WRTICK_R wr %r0, %r17, %tick .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_265: ta T_CHANGE_NONHPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_266) + 48, 16, 16)) -> intp(0,0,24) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_266)&0xffffffff) + 48, 16, 16)) -> intp(0,0,24) #else setx 0xd67d09c1588f23ae, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_266: .word 0x39400001 ! 354: FBPUGE fbuge,a,pn %fcc0, vahole_8_267: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe71fe1a0 ! 355: LDDF_I ldd [%r31, 0x01a0], %f19 .word 0xc19fe180 ! 356: LDDFA_I ldda [%r31, 0x0180], %f0 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_268)+32, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_268)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_268: .word 0xa9812b84 ! 357: WR_SET_SOFTINT_I wr %r4, 0x0b84, %set_softint setx 0x25fdec745e9889fb, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_269: .word 0x39400001 ! 358: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_270 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_270 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_270: ta T_CHANGE_NONHPRIV .word 0xa5414000 ! 359: RDPC rd %pc, %r18 .word 0x89800011 ! 360: WRTICK_R wr %r0, %r17, %tick br_longdelay1_8_272: .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, .word 0x9d97c000 ! 361: WRPR_WSTATE_R wrpr %r31, %r0, %wstate fpinit_8_273: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x89a009a4 ! 362: FDIVs fdivs %f0, %f4, %f4 jmptr_8_274: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 363: JMPL_R jmpl %r27 + %r0, %r27 ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 364: MEMBAR membar #LoadLoad | #Lookaside intveclr_8_276: nop ta T_CHANGE_HPRIV setx 0xb2b2550ef81af434, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 365: FBPLG fblg,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_277 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_277 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610000, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_277: ta T_CHANGE_NONHPRIV .word 0x91414000 ! 366: RDPC rd %pc, %r8 brcommon3_8_278: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd937c014 ! 1: STQF_R - %f12, [%r20, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd91fe040 ! 367: LDDF_I ldd [%r31, 0x0040], %f12 .word 0xd827e060 ! 368: STW_I stw %r12, [%r31 + 0x0060] .word 0xd8c7e1d8 ! 369: LDSWA_I ldswa [%r31, + 0x01d8] %asi, %r12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_279)+48, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_279)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_279: .word 0xa9852c4f ! 370: WR_SET_SOFTINT_I wr %r20, 0x0c4f, %set_softint nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_280 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_280 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610090, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_280: ta T_CHANGE_NONHPRIV .word 0x91414000 ! 371: RDPC rd %pc, %r8 .word 0xd4cfe108 ! 372: LDSBA_I ldsba [%r31, + 0x0108] %asi, %r10 splash_cmpr_8_281: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 373: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_282 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_282: ta T_CHANGE_NONHPRIV .word 0xd5e7e00c ! 374: CASA_R casa [%r31] %asi, %r12, %r10 br_badelay2_8_283: .word 0x9ba509c8 ! 1: FDIVd fdivd %f20, %f8, %f44 pdist %f28, %f16, %f30 .word 0x99b34314 ! 375: ALIGNADDRESS alignaddr %r13, %r20, %r12 .word 0xc19fe020 ! 376: LDDFA_I ldda [%r31, 0x0020], %f0 .word 0x9f803766 ! 377: SIR sir 0x1766 .word 0xe1bfde00 ! 378: STDFA_R stda %f16, [%r0, %r31] .word 0x9ad98004 ! 379: SMULcc_R smulcc %r6, %r4, %r13 brgez,pn %r17, skip_8_284 fbuge skip_8_284 .align 2048 skip_8_284: .word 0xc30fc000 ! 380: LDXFSR_R ld-fsr [%r31, %r0], %f1 nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_285 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_285 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100f0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_285: ta T_CHANGE_NONHPRIV .word 0xa5414000 ! 381: RDPC rd %pc, %r18 brcommon3_8_286: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xdb37c013 ! 1: STQF_R - %f13, [%r19, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xda9fe1d0 ! 382: LDDA_I ldda [%r31, + 0x01d0] %asi, %r13 .word 0x28800001 ! 383: BLEU bleu,a .word 0xdbe7e009 ! 384: CASA_R casa [%r31] %asi, %r9, %r13 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_288) + 0, 16, 16)) -> intp(5,0,13) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_288)&0xffffffff) + 0, 16, 16)) -> intp(5,0,13) #else setx 0x0aacfa858dd4e3df, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_288: .word 0x39400001 ! 385: FBPUGE fbuge,a,pn %fcc0, tagged_8_289: taddcctv %r0, 0x13a8, %r3 .word 0xda07e0ec ! 386: LDUW_I lduw [%r31 + 0x00ec], %r13 ibp_8_290: nop .word 0xe1bfdb60 ! 387: STDFA_R stda %f16, [%r0, %r31] cwp_8_291: set user_data_start, %o7 .word 0x93902003 ! 388: WRPR_CWP_I wrpr %r0, 0x0003, %cwp pmu_8_292: nop ta T_CHANGE_PRIV setx 0xfffffc84fffff34b, %g1, %g7 .word 0xa3800007 ! 389: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_293: ta T_CHANGE_NONPRIV ! macro ceter_8_294: nop ta T_CHANGE_HPRIV mov 6, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0x9b410000 ! 391: RDTICK rd %tick, %r13 cwp_8_295: set user_data_start, %o7 .word 0x93902006 ! 392: WRPR_CWP_I wrpr %r0, 0x0006, %cwp splash_lsu_8_296: nop ta T_CHANGE_HPRIV set 0x28a7fea5, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 393: FBPULE fbule,a,pn %fcc0, intveclr_8_297: nop ta T_CHANGE_HPRIV setx 0xe13df8717834e60e, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 394: FBPLG fblg,a,pn %fcc0, nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe25fc000 ! 395: LDX_R ldx [%r31 + %r0], %r17 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_8_298: ta T_CHANGE_NONPRIV ! macro dvapa_8_299: nop ta T_CHANGE_HPRIV mov 0xff1, %r20 mov 0xc, %r19 sllx %r20, 23, %r20 or %r19, %r20, %r19 stxa %r19, [%g0] ASI_LSU_CONTROL mov 0x38, %r18 stxa %r31, [%r18]0x58 ta T_CHANGE_NONHPRIV .word 0xe29fc034 ! 397: LDDA_R ldda [%r31, %r20] 0x01, %r17 mondo_8_300: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r19, [%r0+0x3e8] %asi .word 0x9d950012 ! 398: WRPR_WSTATE_R wrpr %r20, %r18, %wstate .word 0xe19fc2c0 ! 399: LDDFA_R ldda [%r31, %r0], %f16 .word 0xa7850012 ! 400: WR_GRAPHICS_STATUS_REG_R wr %r20, %r18, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_302) + 16, 16, 16)) -> intp(1,0,16) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_302)&0xffffffff) + 16, 16, 16)) -> intp(1,0,16) #else setx 0x21c9d5e08aaacde6, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_302: .word 0x39400001 ! 401: FBPUGE fbuge,a,pn %fcc0, brcommon2_8_303: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xa9a0054a ! 1: FSQRTd fsqrt ba,a .+8 jmpl %r27+0, %r27 .word 0xe1bfe0c0 ! 402: STDFA_I stda %f16, [0x00c0, %r31] nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_304 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_304: ta T_CHANGE_NONHPRIV .word 0xd3e7e00d ! 403: CASA_R casa [%r31] %asi, %r13, %r9 pmu_8_305: nop setx 0xfffff994fffff16a, %g1, %g7 .word 0xa3800007 ! 404: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_8_306: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 405: JMPL_R jmpl %r27 + %r0, %r27 .word 0x89800011 ! 406: WRTICK_R wr %r0, %r17, %tick #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_308) + 0, 16, 16)) -> intp(2,0,6) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_308)&0xffffffff) + 0, 16, 16)) -> intp(2,0,6) #else setx 0xfbb0a2438af442ae, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_308: .word 0x39400001 ! 407: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_8_309: .word 0x81982f1e ! 408: WRHPR_HPSTATE_I wrhpr %r0, 0x0f1e, %hpstate br_badelay2_8_310: .word 0xa1a209c4 ! 1: FDIVd fdivd %f8, %f4, %f16 pdist %f0, %f0, %f20 .word 0xa9b44314 ! 409: ALIGNADDRESS alignaddr %r17, %r20, %r20 splash_cmpr_8_311: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 410: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x8, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_8_312 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_8_312: ta T_CHANGE_NONHPRIV .word 0xe5e7e012 ! 411: CASA_R casa [%r31] %asi, %r18, %r18 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_313)+16, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_313)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_313: .word 0xa982a7a6 ! 412: WR_SET_SOFTINT_I wr %r10, 0x07a6, %set_softint memptr_8_314: set 0x60540000, %r31 .word 0x85847e34 ! 413: WRCCR_I wr %r17, 0x1e34, %ccr .word 0x91948002 ! 414: WRPR_PIL_R wrpr %r18, %r2, %pil .word 0x9f802092 ! 415: SIR sir 0x0092 nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_316 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_316 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_316: ta T_CHANGE_NONHPRIV .word 0x91414000 ! 416: RDPC rd %pc, %r8 intveclr_8_317: nop ta T_CHANGE_HPRIV setx 0x9c1dc798c4c47fab, %r1, %r28 stxa %r28, [%g0] 0x72 ta T_CHANGE_NONHPRIV .word 0x25400001 ! 417: FBPLG fblg,a,pn %fcc0, splash_cmpr_8_318: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 418: WR_STICK_CMPR_REG_R wr %r0, %r17, %- setx 0x281c45eb0ace5309, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_319: .word 0x39400001 ! 419: FBPUGE fbuge,a,pn %fcc0, .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_8_320: ta T_CHANGE_NONHPRIV ! macro mondo_8_321: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r19, [%r0+0x3d0] %asi .word 0x9d948003 ! 421: WRPR_WSTATE_R wrpr %r18, %r3, %wstate splash_lsu_8_322: nop ta T_CHANGE_HPRIV set 0xfc014757, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 422: FBPULE fbule,a,pn %fcc0, .word 0x3a780001 ! 423: BPCC .word 0xda3fe0c3 ! 424: STD_I std %r13, [%r31 + 0x00c3] .word 0x93d02033 ! 425: Tcc_I tne icc_or_xcc, %r0 + 51 otherw mov 0x32, %r30 .word 0x91d0001e ! 426: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0x22cc4001 ! 1: BRZ brz,a,pt %r17, .word 0x8d903c6c ! 427: WRPR_PSTATE_I wrpr %r0, 0x1c6c, %pstate br_badelay2_8_324: .word 0x32800001 ! 1: BNE bne,a allclean .word 0x99b4830a ! 428: ALIGNADDRESS alignaddr %r18, %r10, %r12 vahole_8_325: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xd69fc02d ! 429: LDDA_R ldda [%r31, %r13] 0x01, %r11 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_8_326) + 0, 16, 16)) -> intp(2,0,23) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_8_326)&0xffffffff) + 0, 16, 16)) -> intp(2,0,23) #else setx 0x0984d326b0150087, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_8_326: .word 0x39400001 ! 430: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_8_327: ta T_CHANGE_NONHPRIV .word 0x81983753 ! 431: WRHPR_HPSTATE_I wrhpr %r0, 0x1753, %hpstate splash_htba_8_328: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 432: WRHPR_HTBA_R wrhpr %r0, %r12, %htba .word 0xd607c000 ! 433: LDUW_R lduw [%r31 + %r0], %r11 .word 0xa9b40551 ! 434: FCMPEQ16 fcmpeq16 %d16, %d48, %r20 donret_8_329: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_329-donret_8_329-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00edd50e | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1f43, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (8) done donretarg_8_329: .word 0xd8ffe180 ! 435: SWAPA_I swapa %r12, [%r31 + 0x0180] %asi .word 0x93a4cd30 ! 436: FsMULd fsmuld %f19, %f16, %f40 splash_tba_8_330: ta T_CHANGE_PRIV setx 0x00000000003a0000, %r11, %r12 .word 0x8b90000c ! 437: WRPR_TBA_R wrpr %r0, %r12, %tba nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe25fc000 ! 438: LDX_R ldx [%r31 + %r0], %r17 nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe25fc000 ! 439: LDX_R ldx [%r31 + %r0], %r17 donret_8_331: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_331-donret_8_331-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0087767d | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1d07, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (8) .word 0x2a800001 ! 1: BCS bcs,a done donretarg_8_331: .word 0xe26fe1ba ! 440: LDSTUB_I ldstub %r17, [%r31 + 0x01ba] donret_8_332: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_332-donret_8_332-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00868444 | (20 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x16dc, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) retry donretarg_8_332: .word 0x9ba409d2 ! 441: FDIVd fdivd %f16, %f18, %f44 setx 0x530dedc5bf4e5a33, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_8_333: .word 0x39400001 ! 442: FBPUGE fbuge,a,pn %fcc0, .word 0xe88fe018 ! 443: LDUBA_I lduba [%r31, + 0x0018] %asi, %r20 .word 0xe937e178 ! 444: STQF_I - %f20, [0x0178, %r31] ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 445: MEMBAR membar #LoadLoad | #Lookaside .word 0x99a489c1 ! 446: FDIVd fdivd %f18, %f32, %f12 brcommon2_8_336: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xe1118013 ! 1: LDQF_R - [%r6, %r19], %f16 ba,a .+8 jmpl %r27+0, %r27 .word 0xe1bfe020 ! 447: STDFA_I stda %f16, [0x0020, %r31] .word 0x98494006 ! 448: MULX_R mulx %r5, %r6, %r12 splash_lsu_8_337: nop ta T_CHANGE_HPRIV set 0xac30cc53, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 449: FBPULE fbule,a,pn %fcc0, mondo_8_338: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r10, [%r0+0x3d8] %asi .word 0x9d948003 ! 450: WRPR_WSTATE_R wrpr %r18, %r3, %wstate .word 0x89800011 ! 451: WRTICK_R wr %r0, %r17, %tick splash_hpstate_8_340: ta T_CHANGE_NONHPRIV .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0x819837c7 ! 452: WRHPR_HPSTATE_I wrhpr %r0, 0x17c7, %hpstate pmu_8_341: nop ta T_CHANGE_PRIV setx 0xfffff22dffffff9d, %g1, %g7 .word 0xa3800007 ! 453: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x93d020b2 ! 454: Tcc_I tne icc_or_xcc, %r0 + 178 .word 0x95a189b4 ! 455: FDIVs fdivs %f6, %f20, %f10 .word 0xe73fc000 ! 456: STDF_R std %f19, [%r0, %r31] cwp_8_342: set user_data_start, %o7 .word 0x93902003 ! 457: WRPR_CWP_I wrpr %r0, 0x0003, %cwp jmptr_8_343: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 458: JMPL_R jmpl %r27 + %r0, %r27 jmptr_8_344: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 459: JMPL_R jmpl %r27 + %r0, %r27 jmptr_8_345: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 460: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe69fc028 ! 461: LDDA_R ldda [%r31, %r8] 0x01, %r19 brcommon1_8_347: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xa7702020 ! 1: POPC_I popc 0x0020, %r19 ba,a .+8 jmpl %r27+0, %r27 .word 0xa7a489a2 ! 462: FDIVs fdivs %f18, %f2, %f19 .word 0x89800011 ! 463: WRTICK_R wr %r0, %r17, %tick ceter_8_349: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x99410000 ! 464: RDTICK rd %tick, %r12 splash_cmpr_8_350: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 465: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x94848014 ! 466: ADDcc_R addcc %r18, %r20, %r10 .word 0xd28008a0 ! 467: LDUWA_R lduwa [%r0, %r0] 0x45, %r9 memptr_8_351: set user_data_start, %r31 .word 0x8580f24f ! 468: WRCCR_I wr %r3, 0x124f, %ccr .word 0xd27fe1d0 ! 469: SWAP_I swap %r9, [%r31 + 0x01d0] .word 0x9f802ea1 ! 470: SIR sir 0x0ea1 .word 0x91940014 ! 471: WRPR_PIL_R wrpr %r16, %r20, %pil .word 0x28780001 ! 472: BPLEU jmptr_8_353: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 473: JMPL_R jmpl %r27 + %r0, %r27 .word 0xa9b487d4 ! 474: PDIST pdistn %d18, %d20, %d20 unsupttte_8_355: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x99a449ca ! 475: FDIVd fdivd %f48, %f10, %f12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_8_356)+8, 16, 16)) -> intp(mask2tid(0x8),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_8_356)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x8),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_8_356: .word 0xa9852db4 ! 476: WR_SET_SOFTINT_I wr %r20, 0x0db4, %set_softint trapasi_8_357: nop mov 0x8, %r1 ! (VA for ASI 0x4c) .word 0xd8c04980 ! 477: LDSWA_R ldswa [%r1, %r0] 0x4c, %r12 .word 0xc19fe100 ! 478: LDDFA_I ldda [%r31, 0x0100], %f0 donret_8_358: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_358-donret_8_358-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x006271e2 | (0x4f << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1ecf, %htstate ta T_CHANGE_NONPRIV ! rand=0 (8) retry donretarg_8_358: .word 0xd8ffe0c9 ! 479: SWAPA_I swapa %r12, [%r31 + 0x00c9] %asi .word 0x29800001 ! 480: FBL fbl,a mondo_8_360: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r12, [%r0+0x3d8] %asi .word 0x9d92c011 ! 481: WRPR_WSTATE_R wrpr %r11, %r17, %wstate .word 0xc19fc2c0 ! 482: LDDFA_R ldda [%r31, %r0], %f0 br_badelay1_8_361: .word 0x32800001 ! 1: BNE bne,a .word 0xd937c012 ! 1: STQF_R - %f12, [%r18, %r31] .word 0xc36fe180 ! 1: PREFETCH_I prefetch [%r31 + 0x0180], #one_read normalw .word 0xa9458000 ! 483: RD_SOFTINT_REG rd %softint, %r20 .word 0x9f803b37 ! 484: SIR sir 0x1b37 .word 0xdb27e061 ! 485: STF_I st %f13, [0x0061, %r31] .word 0xda0fc000 ! 486: LDUB_R ldub [%r31 + %r0], %r13 .word 0x26800001 ! 487: BL bl,a pmu_8_362: nop setx 0xfffff52ffffff21b, %g1, %g7 .word 0xa3800007 ! 488: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8d903915 ! 489: WRPR_PSTATE_I wrpr %r0, 0x1915, %pstate brlez,a,pn %r20, skip_8_364 .word 0x95b1c4cb ! 1: FCMPNE32 fcmpne32 %d38, %d42, %r10 .align 32 skip_8_364: .word 0xc32fc000 ! 490: STXFSR_R st-sfr %f1, [%r0, %r31] donret_8_365: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_8_365-donret_8_365-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0072cbf6 | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x505, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (8) done donretarg_8_365: .word 0xdaffe140 ! 491: SWAPA_I swapa %r13, [%r31 + 0x0140] %asi .word 0xdb27e050 ! 492: STF_I st %f13, [0x0050, %r31] .word 0xdaffc028 ! 493: SWAPA_R swapa %r13, [%r31 + %r8] 0x01 splash_cmpr_8_366: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 494: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xda5fc000 ! 495: LDX_R ldx [%r31 + %r0], %r13 .word 0x9f80370d ! 496: SIR sir 0x170d pmu_8_367: nop ta T_CHANGE_PRIV setx 0xfffff4ebfffff1a7, %g1, %g7 .word 0xa3800007 ! 497: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x8+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_8_368 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_8_368 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_8_368: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 498: RDPC rd %pc, %r16 change_to_randtl_8_369: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_8_369: .word 0x8f902001 ! 499: WRPR_TL_I wrpr %r0, 0x0001, %tl .word 0xe737c000 ! 500: STQF_R - %f19, [%r0, %r31] mondo_8_370: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r1, [%r0+0x3c8] %asi .word 0x9d91c009 ! 501: WRPR_WSTATE_R wrpr %r7, %r9, %wstate nop nop ta T_CHANGE_PRIV wrpr %g0, %g0, %gl nop nop setx join_lbl_0_0, %g1, %g2 jmp %g2 nop fork_lbl_0_3: rd %asi, %r12 #ifdef XIR_RND_CORES setup_xir_4: setx 0xec431b359b86abe7, %r1, %r28 mov 0x30, %r17 stxa %r28, [%r17] 0x41 #endif setup_spu_4: wr %g0, 0x40, %asi !# allocate control word queue (e.g., setup head/tail/first/last registers) set CWQ_BASE, %l6 #ifndef SPC ldxa [%g0]0x63, %o2 and %o2, 0x38, %o2 sllx %o2, 5, %o2 !(CID*256) add %l6, %o3, %l6 #endif # 771 "diag.j" !# write base addr to first, head, and tail ptr !# first store to first 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 #ifndef SPC add %l5, %o2, %l5 #endif stxa %l5, [%g0 + ASI_SPU_CWQ_LAST] %asi !# set CWQ control word ([38:36] is strand ID ..) best_set_reg(0x206100f0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 !# write CWQ entry (%l6 points to CWQ) stx %l2, [%l6 + 0x0] setx msg, %g1, %l2 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) setx results, %g1, %o3 stx %o3, [%l6 + 0x38] !# Destination Address (40-bit) membar #Sync ldxa [%g0 + ASI_SPU_CWQ_TAIL] %asi, %l2 add %l2, 0x40, %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 or %g0, 0x1, %g1 stxa %g1, [%g0 + ASI_SPU_CWQ_CSR] %asi unlock_sync_thds_4: set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o2 and %o2, 0x38, %o2 add %o2, %r23, %r23 #endif st %r0, [%r23] !unlock sync_thr_counter6 sub %r23, 64, %r23 st %r0, [%r23] !unlock sync_thr_counter5 sub %r23, 64, %r23 st %r0, [%r23] !unlock sync_thr_counter4 wr %r0, %r12, %asi ta T_CHANGE_NONHPRIV br_longdelay1_4_0: .word 0x34800001 ! 1: BG bg,a .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xc32fc000 ! 2: STXFSR_R st-sfr %f1, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_2 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_2: ta T_CHANGE_NONHPRIV .word 0xe7e7e010 ! 3: CASA_R casa [%r31] %asi, %r16, %r19 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_4_3: ta T_CHANGE_NONHPRIV ! macro splash_decr_4_4: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r16, [%r1] 0x45 .word 0xa7848011 ! 5: WR_GRAPHICS_STATUS_REG_R wr %r18, %r17, %- .word 0x87aacac6 ! 6: FCMPEd fcmped %fcc, %f42, %f6 setx vahole_target1, %r18, %r27 .word 0xe69fc029 ! 7: LDDA_R ldda [%r31, %r9] 0x01, %r19 memptr_4_6: set user_data_start, %r31 .word 0x8582376c ! 8: WRCCR_I wr %r8, 0x176c, %ccr .word 0x2e780001 ! 9: BPVS ceter_4_7: nop ta T_CHANGE_HPRIV mov 3, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0x95410000 ! 10: RDTICK rd %tick, %r10 splash_lsu_4_8: nop ta T_CHANGE_HPRIV set 0x8e0c90b1, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 11: FBPULE fbule,a,pn %fcc0, brcommon1_4_9: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd06fe1e0 ! 1: LDSTUB_I ldstub %r8, [%r31 + 0x01e0] ba,a .+8 jmpl %r27+0, %r27 .word 0x97b147cd ! 12: PDIST pdistn %d36, %d44, %d42 .word 0x22800001 ! 13: BE be,a pmu_4_10: nop setx 0xffffff66ffffff7a, %g1, %g7 .word 0xa3800007 ! 14: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x32780001 ! 15: BPNE pmu_4_11: nop ta T_CHANGE_PRIV setx 0xfffff1a3fffff917, %g1, %g7 .word 0xa3800007 ! 16: WR_PERF_COUNTER_R wr %r0, %r7, %- ibp_4_12: nop .word 0xe19fda00 ! 17: LDDFA_R ldda [%r31, %r0], %f16 ibp_4_13: nop .word 0xe19fd960 ! 18: LDDFA_R ldda [%r31, %r0], %f16 .word 0xd65fe028 ! 19: LDX_I ldx [%r31 + 0x0028], %r11 .word 0xd727e170 ! 20: STF_I st %f11, [0x0170, %r31] .word 0x81580000 ! 21: FLUSHW flushw #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_14) + 56, 16, 16)) -> intp(2,0,16) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_14)&0xffffffff) + 56, 16, 16)) -> intp(2,0,16) #else setx 0x42f81e6bef10510c, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_14: .word 0x39400001 ! 22: FBPUGE fbuge,a,pn %fcc0, donret_4_15: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_15-donret_4_15-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x005570dd | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xd47, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) done donretarg_4_15: .word 0xd6ffe028 ! 23: SWAPA_I swapa %r11, [%r31 + 0x0028] %asi set 0x388c, %l3 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT .word 0x9bb507cd ! 24: PDIST pdistn %d20, %d44, %d44 .word 0xe1bfdb60 ! 25: STDFA_R stda %f16, [%r0, %r31] pmu_4_16: nop ta T_CHANGE_PRIV setx 0xfffff35dfffff249, %g1, %g7 .word 0xa3800007 ! 26: WR_PERF_COUNTER_R wr %r0, %r7, %- setx vahole_target1, %r18, %r27 .word 0xd11fe0f0 ! 27: LDDF_I ldd [%r31, 0x00f0], %f8 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_18)+40, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_18)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_18: .word 0xa9852cdc ! 28: WR_SET_SOFTINT_I wr %r20, 0x0cdc, %set_softint cmp_4_19: nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 xor %r9, 0x4, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0, %r8 mov 0xff, %r9 xor %r9, 0x4, %r9 ! My core mask #endif mov 0x4, %r10 cmp_startwait4_19: cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmp_4_19 ldxa [0x50]%asi, %r13 !Running_rw ld [%r23], %r10 cmp_wait4_19: brnz,a %r10, cmp_wait4_19 ld [%r23], %r10 ba cmp_startwait4_19 mov 0x4, %r10 continue_cmp_4_19: ldxa [0x58]%asi, %r14 !Running_status xnor %r14, %r13, %r14 !Bits equal brz,a %r8, cmp_multi_core_4_19 mov 0x8d, %r17 best_set_reg(0x7e89818693100317, %r16, %r17) cmp_multi_core_4_19: and %r14, %r17, %r14 !Apply set/clear mask to bits equal and %r14, %r9, %r14 !Apply core-mask stxa %r14, [0x68]%asi st %g0, [%r23] !clear lock wr %g0, %r12, %asi .word 0xa9a0016c ! 29: FABSq dis not found donret_4_20: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_20-donret_4_20-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00504f8e | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x59d, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (4) .word 0x25400001 ! 1: FBPLG fblg,a,pn %fcc0, retry donretarg_4_20: .word 0xe2ffe1a1 ! 30: SWAPA_I swapa %r17, [%r31 + 0x01a1] %asi splash_decr_4_21: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r19, [%r1] 0x45 .word 0xa784000d ! 31: WR_GRAPHICS_STATUS_REG_R wr %r16, %r13, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_22) + 56, 16, 16)) -> intp(0,0,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_22)&0xffffffff) + 56, 16, 16)) -> intp(0,0,3) #else setx 0x28f10d8c9476acb0, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_22: .word 0x39400001 ! 32: FBPUGE fbuge,a,pn %fcc0, memptr_4_23: set 0x60740000, %r31 .word 0x85842ad3 ! 33: WRCCR_I wr %r16, 0x0ad3, %ccr .word 0x99a489d3 ! 34: FDIVd fdivd %f18, %f50, %f12 brcommon3_4_25: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c02a ! 1: CASA_I casa [%r31] 0x 1, %r10, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xd23fe0b0 ! 35: STD_I std %r9, [%r31 + 0x00b0] jmptr_4_26: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 36: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_4_27: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 37: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_4_28: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 38: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_4_29: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r12, [%r0+0x3c0] %asi .word 0x9d940014 ! 39: WRPR_WSTATE_R wrpr %r16, %r20, %wstate brcommon3_4_30: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd26fe150 ! 1: LDSTUB_I ldstub %r9, [%r31 + 0x0150] ba,a .+8 jmpl %r27+0, %r27 .word 0xc32fc014 ! 40: STXFSR_R st-sfr %f1, [%r20, %r31] .word 0xd2dfe0d8 ! 41: LDXA_I ldxa [%r31, + 0x00d8] %asi, %r9 .word 0xd327e120 ! 42: STF_I st %f9, [0x0120, %r31] setx 0x3fbdd84c23140e49, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_31: .word 0x39400001 ! 43: FBPUGE fbuge,a,pn %fcc0, mondo_4_32: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r10, [%r0+0x3e0] %asi .word 0x9d940010 ! 44: WRPR_WSTATE_R wrpr %r16, %r16, %wstate ceter_4_33: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x9b410000 ! 45: RDTICK rd %tick, %r13 cmp_4_34: nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 xor %r9, 0x4, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0, %r8 mov 0xff, %r9 xor %r9, 0x4, %r9 ! My core mask #endif mov 0x4, %r10 cmp_startwait4_34: cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmp_4_34 ldxa [0x50]%asi, %r13 !Running_rw ld [%r23], %r10 cmp_wait4_34: brnz,a %r10, cmp_wait4_34 ld [%r23], %r10 ba cmp_startwait4_34 mov 0x4, %r10 continue_cmp_4_34: ldxa [0x58]%asi, %r14 !Running_status xnor %r14, %r13, %r14 !Bits equal brz,a %r8, cmp_multi_core_4_34 mov 61, %r17 best_set_reg(0x0f17ca83ba3287d7, %r16, %r17) cmp_multi_core_4_34: and %r14, %r17, %r14 !Apply set/clear mask to bits equal and %r14, %r9, %r14 !Apply core-mask stxa %r14, [0x60]%asi st %g0, [%r23] !clear lock wr %g0, %r12, %asi ta T_CHANGE_NONHPRIV .word 0x91950005 ! 46: WRPR_PIL_R wrpr %r20, %r5, %pil splash_tba_4_35: ta T_CHANGE_PRIV setx 0x0000000400380000, %r11, %r12 .word 0x8b90000c ! 47: WRPR_TBA_R wrpr %r0, %r12, %tba mondo_4_36: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r4, [%r0+0x3e0] %asi .word 0x9d92400a ! 48: WRPR_WSTATE_R wrpr %r9, %r10, %wstate .word 0xe33fc012 ! 1: STDF_R std %f17, [%r18, %r31] .word 0x9f803d20 ! 49: SIR sir 0x1d20 br_longdelay2_4_37: .word 0x22ccc001 ! 1: BRZ brz,a,pt %r19, .word 0xe23fc00b ! 50: STD_R std %r17, [%r31 + %r11] splash_cmpr_4_38: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 51: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_39 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_39: ta T_CHANGE_NONHPRIV .word 0xe3e7e011 ! 52: CASA_R casa [%r31] %asi, %r17, %r17 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_40)+24, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_40)&0xffffffff) +24, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_40: .word 0xa982b25f ! 53: WR_SET_SOFTINT_I wr %r10, 0x125f, %set_softint jmptr_4_41: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 54: JMPL_R jmpl %r27 + %r0, %r27 donret_4_42: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_42-donret_4_42-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00dd9925 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1dcb, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) retry donretarg_4_42: .word 0xe26fe064 ! 55: LDSTUB_I ldstub %r17, [%r31 + 0x0064] nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_43 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_43 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610050, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_43: ta T_CHANGE_NONHPRIV .word 0x93414000 ! 56: RDPC rd %pc, %r9 splash_hpstate_4_44: .word 0x81982ecd ! 57: WRHPR_HPSTATE_I wrhpr %r0, 0x0ecd, %hpstate .word 0x2b400001 ! 1: FBPUG fbug,a,pn %fcc0, .word 0x8d903af9 ! 58: WRPR_PSTATE_I wrpr %r0, 0x1af9, %pstate mondo_4_46: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3d0] %asi .word 0x9d94c008 ! 59: WRPR_WSTATE_R wrpr %r19, %r8, %wstate mondo_4_47: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3d0] %asi .word 0x9d94c012 ! 60: WRPR_WSTATE_R wrpr %r19, %r18, %wstate splash_hpstate_4_48: ta T_CHANGE_NONHPRIV .word 0x81983a5d ! 61: WRHPR_HPSTATE_I wrhpr %r0, 0x1a5d, %hpstate .word 0xd31fe190 ! 62: LDDF_I ldd [%r31, 0x0190], %f9 setx vahole_target2, %r18, %r27 .word 0xe19fd960 ! 63: LDDFA_R ldda [%r31, %r0], %f16 brcommon1_4_50: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c02d ! 1: CASA_I casa [%r31] 0x 1, %r13, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xa3a0c9b2 ! 64: FDIVs fdivs %f3, %f18, %f17 splash_hpstate_4_51: ta T_CHANGE_NONHPRIV .word 0x819836d7 ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x16d7, %hpstate .word 0x8d903a45 ! 66: WRPR_PSTATE_I wrpr %r0, 0x1a45, %pstate iaw_4_53: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x4, %r16 iaw_startwait4_53: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_iaw_4_53 mov (~0x4&0xf), %r16 ld [%r23], %r16 iaw_wait4_53: brnz %r16, iaw_wait4_53 ld [%r23], %r16 ba iaw_startwait4_53 mov 0x4, %r16 continue_iaw_4_53: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_4_53: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_4_53 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_iaw_4_53: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_iaw_4_53 ldxa [0x50]%asi, %r14 !Running_rw iaw_doit4_53: mov 0x38, %r18 iaw3_4_53: setx vahole_target0, %r20, %r19 or %r19, 0x1, %r19 stxa %r19, [%r18]0x50 stxa %r16, [0x60] %asi ! Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi ! restore %asi ta T_CHANGE_NONHPRIV .word 0xc1bfe140 ! 67: STDFA_I stda %f0, [0x0140, %r31] br_badelay1_4_54: .word 0x28800001 ! 1: BLEU bleu,a .word 0xd337e0a0 ! 1: STQF_I - %f9, [0x00a0, %r31] .word 0xc36fe010 ! 1: PREFETCH_I prefetch [%r31 + 0x0010], #one_read normalw .word 0xa3458000 ! 68: RD_SOFTINT_REG rd %softint, %r17 .word 0xd82fe104 ! 69: STB_I stb %r12, [%r31 + 0x0104] donret_4_55: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_55-donret_4_55-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0061e919 | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x7c6, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) .word 0x33400001 ! 1: FBPE fbe,a,pn %fcc0, done donretarg_4_55: .word 0x9ba149d2 ! 70: FDIVd fdivd %f36, %f18, %f44 nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_56 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_56: ta T_CHANGE_NONHPRIV .word 0xe7e7e00d ! 71: CASA_R casa [%r31] %asi, %r13, %r19 .word 0xe19fe080 ! 72: LDDFA_I ldda [%r31, 0x0080], %f16 mondo_4_57: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r19, [%r0+0x3d0] %asi .word 0x9d94800c ! 73: WRPR_WSTATE_R wrpr %r18, %r12, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe65fc000 ! 74: LDX_R ldx [%r31 + %r0], %r19 .word 0xe727c000 ! 75: STF_R st %f19, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_58 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_58: ta T_CHANGE_NONHPRIV .word 0xe7e7e00d ! 76: CASA_R casa [%r31] %asi, %r13, %r19 .word 0x2a800001 ! 77: BCS bcs,a nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xe65fc000 ! 78: LDX_R ldx [%r31 + %r0], %r19 .word 0xa153c000 ! 79: RDPR_FQ donret_4_59: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_59-donret_4_59-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00a3d5be | (4 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1dcd, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) done donretarg_4_59: .word 0x91a509c3 ! 80: FDIVd fdivd %f20, %f34, %f8 .word 0xda8fe138 ! 81: LDUBA_I lduba [%r31, + 0x0138] %asi, %r13 .word 0xc19fda00 ! 82: LDDFA_R ldda [%r31, %r0], %f0 change_to_randtl_4_60: ta T_CHANGE_PRIV ! macro done_change_to_randtl_4_60: .word 0x8f902000 ! 83: WRPR_TL_I wrpr %r0, 0x0000, %tl splash_cmpr_4_61: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 84: WR_STICK_CMPR_REG_R wr %r0, %r17, %- jmptr_4_62: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 85: JMPL_R jmpl %r27 + %r0, %r27 mondo_4_63: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r7, [%r0+0x3c8] %asi .word 0x9d90c00b ! 86: WRPR_WSTATE_R wrpr %r3, %r11, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_64)+40, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_64)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_64: .word 0xa985335f ! 87: WR_SET_SOFTINT_I wr %r20, 0x135f, %set_softint .word 0xdb37e0a0 ! 88: STQF_I - %f13, [0x00a0, %r31] mondo_4_65: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3e8] %asi .word 0x9d944011 ! 89: WRPR_WSTATE_R wrpr %r17, %r17, %wstate .word 0xda0fc000 ! 90: LDUB_R ldub [%r31 + %r0], %r13 memptr_4_66: set user_data_start, %r31 .word 0x85846a58 ! 91: WRCCR_I wr %r17, 0x0a58, %ccr jmptr_4_67: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 92: JMPL_R jmpl %r27 + %r0, %r27 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_4_68: ta T_CHANGE_NONPRIV ! macro otherw mov 0x32, %r30 .word 0x91d0001e ! 94: Tcc_R ta icc_or_xcc, %r0 + %r30 setx vahole_target0, %r18, %r27 .word 0xda9fc02d ! 95: LDDA_R ldda [%r31, %r13] 0x01, %r13 pmu_4_70: nop setx 0xfffffb0dffffff94, %g1, %g7 .word 0xa3800007 ! 96: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_4_71: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 97: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_4_72: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 98: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_hpstate_4_73: .word 0x81982817 ! 99: WRHPR_HPSTATE_I wrhpr %r0, 0x0817, %hpstate donret_4_74: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_74-donret_4_74-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00bafd57 | (4 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1657, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) .word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, retry donretarg_4_74: .word 0xda6fe076 ! 100: LDSTUB_I ldstub %r13, [%r31 + 0x0076] change_to_randtl_4_75: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_4_75: .word 0x8f902000 ! 101: WRPR_TL_I wrpr %r0, 0x0000, %tl .word 0xa5a1c9cb ! 102: FDIVd fdivd %f38, %f42, %f18 .word 0x8d90399f ! 103: WRPR_PSTATE_I wrpr %r0, 0x199f, %pstate intveclr_4_78: nop ta T_CHANGE_HPRIV setx 0xfb6c1855dfdab0a0, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 104: FBPLG fblg,a,pn %fcc0, donret_4_79: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_79-donret_4_79-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d044f6 | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x5de, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) done donretarg_4_79: .word 0xa3a449cd ! 105: FDIVd fdivd %f48, %f44, %f48 .word 0xe4d7e068 ! 106: LDSHA_I ldsha [%r31, + 0x0068] %asi, %r18 tagged_4_80: tsubcctv %r17, 0x1b8f, %r16 .word 0xe407e08c ! 107: LDUW_I lduw [%r31 + 0x008c], %r18 nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_81 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_81 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100e0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_81: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 108: RDPC rd %pc, %r11 splash_lsu_4_82: nop ta T_CHANGE_HPRIV set 0x7ef527c3, %r2 mov 0x1, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 109: FBPULE fbule,a,pn %fcc0, splash_cmpr_4_83: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 110: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_htba_4_84: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 111: WRHPR_HTBA_R wrhpr %r0, %r12, %htba mondo_4_85: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3d8] %asi .word 0x9d950007 ! 112: WRPR_WSTATE_R wrpr %r20, %r7, %wstate .word 0xe1bfdc00 ! 113: STDFA_R stda %f16, [%r0, %r31] .word 0xe19fc2c0 ! 114: LDDFA_R ldda [%r31, %r0], %f16 splash_cmpr_4_86: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 115: WR_TICK_CMPR_REG_R wr %r0, %r17, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_87)+48, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_87)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_87: .word 0xa981eb68 ! 116: WR_SET_SOFTINT_I wr %r7, 0x0b68, %set_softint brcommon3_4_88: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd137c014 ! 1: STQF_R - %f8, [%r20, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd11fe130 ! 117: LDDF_I ldd [%r31, 0x0130], %f8 .word 0x29400001 ! 1: FBPL fbl,a,pn %fcc0, .word 0x8d902cfb ! 118: WRPR_PSTATE_I wrpr %r0, 0x0cfb, %pstate .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_4_90: ta T_CHANGE_NONPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_91)+32, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_91)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_91: .word 0xa9823900 ! 120: WR_SET_SOFTINT_I wr %r8, 0x1900, %set_softint splash_cmpr_4_92: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 .word 0xaf800011 ! 121: WR_TICK_CMPR_REG_R wr %r0, %r17, %- cmp_4_93: nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 xor %r9, 0x4, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0, %r8 mov 0xff, %r9 xor %r9, 0x4, %r9 ! My core mask #endif mov 0x4, %r10 cmp_startwait4_93: cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmp_4_93 ldxa [0x50]%asi, %r13 !Running_rw ld [%r23], %r10 cmp_wait4_93: brnz,a %r10, cmp_wait4_93 ld [%r23], %r10 ba cmp_startwait4_93 mov 0x4, %r10 continue_cmp_4_93: ldxa [0x58]%asi, %r14 !Running_status xnor %r14, %r13, %r14 !Bits equal brz,a %r8, cmp_multi_core_4_93 mov 0xb5, %r17 best_set_reg(0x6b8d251d390c771d, %r16, %r17) cmp_multi_core_4_93: and %r14, %r17, %r14 !Apply set/clear mask to bits equal and %r14, %r9, %r14 !Apply core-mask stxa %r14, [0x68]%asi st %g0, [%r23] !clear lock wr %g0, %r12, %asi ta T_CHANGE_NONHPRIV .word 0xa5a00161 ! 122: FABSq dis not found cerer_4_94: nop ta T_CHANGE_HPRIV best_set_reg(0xa781dd9b4d946adb, %r26, %r27) sethi %hi(0x20008000), %r26 ! Set ITTM/DTTM sllx %r26, 32, %r26 or %r26, %r27, %r27 mov 0x10, %r26 stxa %r27, [%r26]0x4c ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 123: MEMBAR membar #LoadLoad | #Lookaside splash_cmpr_4_95: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 124: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe1bfda00 ! 125: STDFA_R stda %f16, [%r0, %r31] jmptr_4_96: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 126: JMPL_R jmpl %r27 + %r0, %r27 setx 0x227f01abad529476, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_97: .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, pmu_4_98: nop ta T_CHANGE_PRIV setx 0xfffff18dfffff303, %g1, %g7 .word 0xa3800007 ! 128: WR_PERF_COUNTER_R wr %r0, %r7, %- donret_4_99: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_99-donret_4_99-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00674c70 | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xc4d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) done donretarg_4_99: .word 0x97a449c4 ! 129: FDIVd fdivd %f48, %f4, %f42 pmu_4_100: nop setx 0xfffffe75fffff3b6, %g1, %g7 .word 0xa3800007 ! 130: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_4_101: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3d0] %asi .word 0x9d914012 ! 131: WRPR_WSTATE_R wrpr %r5, %r18, %wstate nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_102 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_102: ta T_CHANGE_NONHPRIV .word 0xd9e7e00b ! 132: CASA_R casa [%r31] %asi, %r11, %r12 .word 0xc1bfdb60 ! 133: STDFA_R stda %f0, [%r0, %r31] splash_tba_4_103: ta T_CHANGE_PRIV setx 0x0000000400380000, %r11, %r12 .word 0x8b90000c ! 134: WRPR_TBA_R wrpr %r0, %r12, %tba splash_lsu_4_104: nop ta T_CHANGE_HPRIV set 0xfdd0410f, %r2 mov 0x1, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 135: FBPULE fbule,a,pn %fcc0, setx 0x3eacce82e2f328b5, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_105: .word 0x39400001 ! 136: FBPUGE fbuge,a,pn %fcc0, change_to_randtl_4_106: ta T_CHANGE_PRIV ! macro done_change_to_randtl_4_106: .word 0x8f902000 ! 137: WRPR_TL_I wrpr %r0, 0x0000, %tl nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_107 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_107 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610040, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_107: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 138: RDPC rd %pc, %r19 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_108)+48, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_108)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_108: .word 0xa98125d1 ! 139: WR_SET_SOFTINT_I wr %r4, 0x05d1, %set_softint br_badelay1_4_109: .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, .word 0xdb343f67 ! 1: STQF_I - %f13, [0x1f67, %r16] .word 0x9bb7c4d0 ! 1: FCMPNE32 fcmpne32 %d62, %d16, %r13 normalw .word 0x93458000 ! 140: RD_SOFTINT_REG rd %softint, %r9 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_4_110: ta T_CHANGE_NONHPRIV ! macro setx vahole_target1, %r18, %r27 .word 0xc3eac023 ! 142: PREFETCHA_R prefetcha [%r11, %r3] 0x01, #one_read nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_112 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_112 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_112: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 143: RDPC rd %pc, %r11 .word 0xd91fe0b8 ! 144: LDDF_I ldd [%r31, 0x00b8], %f12 setx 0xffbf806bcc23d3e8, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_113: .word 0x39400001 ! 145: FBPUGE fbuge,a,pn %fcc0, .word 0x96d40007 ! 146: UMULcc_R umulcc %r16, %r7, %r11 splash_cmpr_4_114: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 147: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_4_115: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r11, [%r0+0x3c8] %asi .word 0x9d94c006 ! 148: WRPR_WSTATE_R wrpr %r19, %r6, %wstate change_to_randtl_4_116: ta T_CHANGE_PRIV ! macro done_change_to_randtl_4_116: .word 0x8f902000 ! 149: WRPR_TL_I wrpr %r0, 0x0000, %tl change_to_randtl_4_117: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_4_117: .word 0x8f902001 ! 150: WRPR_TL_I wrpr %r0, 0x0001, %tl #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_118) + 32, 16, 16)) -> intp(5,0,18) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_118)&0xffffffff) + 32, 16, 16)) -> intp(5,0,18) #else setx 0xc957b1e784ad2382, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_118: .word 0x39400001 ! 151: FBPUGE fbuge,a,pn %fcc0, memptr_4_119: set 0x60540000, %r31 .word 0x8582250e ! 152: WRCCR_I wr %r8, 0x050e, %ccr nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe05fc000 ! 153: LDX_R ldx [%r31 + %r0], %r16 .word 0x8d902d6e ! 154: WRPR_PSTATE_I wrpr %r0, 0x0d6e, %pstate mondo_4_121: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3c8] %asi .word 0x9d948013 ! 155: WRPR_WSTATE_R wrpr %r18, %r19, %wstate .word 0x8d902f39 ! 156: WRPR_PSTATE_I wrpr %r0, 0x0f39, %pstate .word 0x83d020b2 ! 157: Tcc_I te icc_or_xcc, %r0 + 178 setx 0x2e31548f2d5e7325, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_123: .word 0x39400001 ! 158: FBPUGE fbuge,a,pn %fcc0, .word 0xc36cc012 ! 159: PREFETCH_R prefetch [%r19 + %r18], #one_read fpinit_4_124: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x87a80a44 ! 160: FCMPd fcmpd %fcc, %f0, %f4 splash_hpstate_4_125: ta T_CHANGE_NONHPRIV .word 0x33400001 ! 1: FBPE fbe,a,pn %fcc0, .word 0x81983c3e ! 161: WRHPR_HPSTATE_I wrhpr %r0, 0x1c3e, %hpstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xe05fc000 ! 162: LDX_R ldx [%r31 + %r0], %r16 nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_126 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_126: ta T_CHANGE_NONHPRIV .word 0xe1e7e013 ! 163: CASA_R casa [%r31] %asi, %r19, %r16 nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_127 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_127: ta T_CHANGE_NONHPRIV .word 0xe1e7e010 ! 164: CASA_R casa [%r31] %asi, %r16, %r16 pmu_4_128: nop ta T_CHANGE_PRIV setx 0xfffff81bfffffc72, %g1, %g7 .word 0xa3800007 ! 165: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_4_129: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 166: WR_STICK_CMPR_REG_R wr %r0, %r17, %- ceter_4_130: nop ta T_CHANGE_HPRIV mov 1, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x95410000 ! 167: RDTICK rd %tick, %r10 jmptr_4_131: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 168: JMPL_R jmpl %r27 + %r0, %r27 .word 0x9b688004 ! 169: SDIVX_R sdivx %r2, %r4, %r13 splash_cmpr_4_132: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 .word 0xb3800011 ! 170: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xd01fc000 ! 171: LDD_R ldd [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_133 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_133 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610020, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_133: ta T_CHANGE_NONHPRIV .word 0xa5414000 ! 172: RDPC rd %pc, %r18 jmptr_4_134: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 173: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe09fc2e0 ! 174: LDDA_R ldda [%r31, %r0] 0x17, %r16 setx 0xf177ca81c0e642c6, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_135: .word 0x39400001 ! 175: FBPUGE fbuge,a,pn %fcc0, splash_cmpr_4_136: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 176: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe0d7e018 ! 177: LDSHA_I ldsha [%r31, + 0x0018] %asi, %r16 splash_cmpr_4_137: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 178: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_4_138: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r12, [%r0+0x3d0] %asi .word 0x9d944012 ! 179: WRPR_WSTATE_R wrpr %r17, %r18, %wstate change_to_randtl_4_139: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_4_139: .word 0x8f902001 ! 180: WRPR_TL_I wrpr %r0, 0x0001, %tl jmptr_4_140: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 181: JMPL_R jmpl %r27 + %r0, %r27 cmp_4_141: nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 xor %r9, 0x4, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0, %r8 mov 0xff, %r9 xor %r9, 0x4, %r9 ! My core mask #endif mov 0x4, %r10 cmp_startwait4_141: cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmp_4_141 ldxa [0x50]%asi, %r13 !Running_rw ld [%r23], %r10 cmp_wait4_141: brnz,a %r10, cmp_wait4_141 ld [%r23], %r10 ba cmp_startwait4_141 mov 0x4, %r10 continue_cmp_4_141: ldxa [0x58]%asi, %r14 !Running_status xnor %r14, %r13, %r14 !Bits equal brz,a %r8, cmp_multi_core_4_141 mov 0x48, %r17 best_set_reg(0x1a03e7318dfed4ee, %r16, %r17) cmp_multi_core_4_141: and %r14, %r17, %r14 !Apply set/clear mask to bits equal and %r14, %r9, %r14 !Apply core-mask stxa %r14, [0x68]%asi st %g0, [%r23] !clear lock wr %g0, %r12, %asi .word 0x91940011 ! 182: WRPR_PIL_R wrpr %r16, %r17, %pil donret_4_142: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_142-donret_4_142-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00f1f746 | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x44, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) retry donretarg_4_142: .word 0x95a1c9d2 ! 183: FDIVd fdivd %f38, %f18, %f10 .word 0xe6c7e1b8 ! 184: LDSWA_I ldswa [%r31, + 0x01b8] %asi, %r19 .word 0xc1bfdf20 ! 185: STDFA_R stda %f0, [%r0, %r31] .word 0xe6cfe150 ! 186: LDSBA_I ldsba [%r31, + 0x0150] %asi, %r19 splash_cmpr_4_143: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 187: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xa8818003 ! 188: ADDcc_R addcc %r6, %r3, %r20 ibp_4_144: nop ta T_CHANGE_NONHPRIV .word 0xc19fe0a0 ! 189: LDDFA_I ldda [%r31, 0x00a0], %f0 ceter_4_145: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa9410000 ! 190: RDTICK rd %tick, %r20 ceter_4_146: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x9b410000 ! 191: RDTICK rd %tick, %r13 setx 0x608cbada9113cb41, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_147: .word 0x39400001 ! 192: FBPUGE fbuge,a,pn %fcc0, invtsb_4_148: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 193: FBL fbl,a cmp_4_149: nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 xor %r9, 0x4, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0, %r8 mov 0xff, %r9 xor %r9, 0x4, %r9 ! My core mask #endif mov 0x4, %r10 cmp_startwait4_149: cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmp_4_149 ldxa [0x50]%asi, %r13 !Running_rw ld [%r23], %r10 cmp_wait4_149: brnz,a %r10, cmp_wait4_149 ld [%r23], %r10 ba cmp_startwait4_149 mov 0x4, %r10 continue_cmp_4_149: ldxa [0x58]%asi, %r14 !Running_status xnor %r14, %r13, %r14 !Bits equal brz,a %r8, cmp_multi_core_4_149 mov 0x9f, %r17 best_set_reg(0x02bdd6dea7c5800b, %r16, %r17) cmp_multi_core_4_149: and %r14, %r17, %r14 !Apply set/clear mask to bits equal and %r14, %r9, %r14 !Apply core-mask stxa %r14, [0x68]%asi st %g0, [%r23] !clear lock wr %g0, %r12, %asi .word 0x99a00166 ! 194: FABSq dis not found .word 0xe6c7e118 ! 195: LDSWA_I ldswa [%r31, + 0x0118] %asi, %r19 splash_lsu_4_150: nop ta T_CHANGE_HPRIV set 0x070d1fcc, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 196: FBPULE fbule,a,pn %fcc0, .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_4_151: ta T_CHANGE_NONPRIV ! macro .word 0xe65fe020 ! 198: LDX_I ldx [%r31 + 0x0020], %r19 splash_hpstate_4_152: ta T_CHANGE_NONHPRIV .word 0x34800001 ! 1: BG bg,a .word 0x8198295d ! 199: WRHPR_HPSTATE_I wrhpr %r0, 0x095d, %hpstate .word 0x9753c000 ! 200: RDPR_FQ .word 0xd33fc011 ! 1: STDF_R std %f9, [%r17, %r31] .word 0x9f803490 ! 201: SIR sir 0x1490 mondo_4_153: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3e8] %asi .word 0x9d950007 ! 202: WRPR_WSTATE_R wrpr %r20, %r7, %wstate jmptr_4_154: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 203: JMPL_R jmpl %r27 + %r0, %r27 .word 0x91a509d4 ! 204: FDIVd fdivd %f20, %f20, %f8 pmu_4_156: nop ta T_CHANGE_PRIV setx 0xfffff56ffffff036, %g1, %g7 .word 0xa3800007 ! 205: WR_PERF_COUNTER_R wr %r0, %r7, %- setx 0x0dd023b6f30530f0, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_157: .word 0x39400001 ! 206: FBPUGE fbuge,a,pn %fcc0, .word 0xe677e1b8 ! 207: STX_I stx %r19, [%r31 + 0x01b8] brcommon2_4_158: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xa7a7c96b ! 1: FMULq dis not found ba,a .+8 jmpl %r27+0, %r27 .word 0xc19fde00 ! 208: LDDFA_R ldda [%r31, %r0], %f0 .word 0x92fc4014 ! 209: SDIVcc_R sdivcc %r17, %r20, %r9 .word 0xd897e128 ! 210: LDUHA_I lduha [%r31, + 0x0128] %asi, %r12 .word 0x3c800001 ! 211: BPOS bpos,a change_to_randtl_4_159: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_4_159: .word 0x8f902000 ! 212: WRPR_TL_I wrpr %r0, 0x0000, %tl tagged_4_160: tsubcctv %r11, 0x1811, %r19 .word 0xd807e110 ! 213: LDUW_I lduw [%r31 + 0x0110], %r12 br_badelay1_4_161: .word 0x3a800001 ! 1: BCC bcc,a .word 0xd937c012 ! 1: STQF_R - %f12, [%r18, %r31] .word 0x24cfc001 ! 1: BRLEZ brlez,a,pt %r31, normalw .word 0x99458000 ! 214: RD_SOFTINT_REG rd %softint, %r12 pmu_4_162: nop setx 0xfffff712fffff57c, %g1, %g7 .word 0xa3800007 ! 215: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_tick_4_163: nop ta T_CHANGE_HPRIV best_set_reg(0x9b7fa5643448045f, %r16, %r17) .word 0x89800011 ! 216: WRTICK_R wr %r0, %r17, %tick pmu_4_164: nop ta T_CHANGE_PRIV setx 0xfffff0d9fffff441, %g1, %g7 .word 0xa3800007 ! 217: WR_PERF_COUNTER_R wr %r0, %r7, %- otherw mov 0x35, %r30 .word 0x83d0001e ! 218: Tcc_R te icc_or_xcc, %r0 + %r30 .word 0xc1bfd960 ! 219: STDFA_R stda %f0, [%r0, %r31] .word 0xe1bfdc00 ! 220: STDFA_R stda %f16, [%r0, %r31] .word 0xc1bfe160 ! 221: STDFA_I stda %f0, [0x0160, %r31] setx 0xd053f8e64ef47501, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_165: .word 0x39400001 ! 222: FBPUGE fbuge,a,pn %fcc0, br_longdelay1_4_166: .word 0x29400001 ! 1: FBPL fbl,a,pn %fcc0, .word 0xbfe7c000 ! 223: SAVE_R save %r31, %r0, %r31 nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_167 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_167: ta T_CHANGE_NONHPRIV .word 0xe1e7e010 ! 224: CASA_R casa [%r31] %asi, %r16, %r16 jmptr_4_168: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 225: JMPL_R jmpl %r27 + %r0, %r27 setx 0xaaf1cdad497ab66b, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_169: .word 0x39400001 ! 226: FBPUGE fbuge,a,pn %fcc0, mondo_4_170: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3d8] %asi .word 0x9d94800d ! 227: WRPR_WSTATE_R wrpr %r18, %r13, %wstate splash_cmpr_4_171: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 228: WR_TICK_CMPR_REG_R wr %r0, %r17, %- pmu_4_172: nop ta T_CHANGE_PRIV setx 0xfffffc8dfffff1d7, %g1, %g7 .word 0xa3800007 ! 229: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_4_173: nop ta T_CHANGE_HPRIV set 0xf2004389, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 230: FBPULE fbule,a,pn %fcc0, mondo_4_174: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3c8] %asi .word 0x9d930012 ! 231: WRPR_WSTATE_R wrpr %r12, %r18, %wstate memptr_4_175: set 0x60140000, %r31 .word 0x85846aae ! 232: WRCCR_I wr %r17, 0x0aae, %ccr mondo_4_176: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3d0] %asi .word 0x9d924012 ! 233: WRPR_WSTATE_R wrpr %r9, %r18, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_177)+40, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_177)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_177: .word 0xa982b653 ! 234: WR_SET_SOFTINT_I wr %r10, 0x1653, %set_softint splash_lsu_4_178: nop ta T_CHANGE_HPRIV set 0xcc0f3c5b, %r2 mov 0x1, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 235: FBPULE fbule,a,pn %fcc0, pmu_4_179: nop setx 0xfffff467fffffd45, %g1, %g7 .word 0xa3800007 ! 236: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_4_180: nop ta T_CHANGE_HPRIV set 0xc91bfad9, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 237: FBPULE fbule,a,pn %fcc0, splash_cmpr_4_181: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 238: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe057e070 ! 239: LDSH_I ldsh [%r31 + 0x0070], %r16 donret_4_182: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_182-donret_4_182-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00ff4ae6 | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xd45, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) retry donretarg_4_182: .word 0xe0ffe131 ! 240: SWAPA_I swapa %r16, [%r31 + 0x0131] %asi .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_4_183: ta T_CHANGE_NONPRIV ! macro .word 0xc1bfe160 ! 242: STDFA_I stda %f0, [0x0160, %r31] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_184)+32, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_184)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_184: .word 0xa984bdc9 ! 243: WR_SET_SOFTINT_I wr %r18, 0x1dc9, %set_softint .word 0x9ba349b2 ! 244: FDIVs fdivs %f13, %f18, %f13 .word 0x2a800001 ! 245: BCS bcs,a nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_186 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_186 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610060, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_186: ta T_CHANGE_NONHPRIV .word 0x95414000 ! 246: RDPC rd %pc, %r10 setx 0x7a1b9c7669071990, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_187: .word 0x39400001 ! 247: FBPUGE fbuge,a,pn %fcc0, pmu_4_188: nop setx 0xfffff7f3fffff040, %g1, %g7 .word 0xa3800007 ! 248: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_4_189: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 249: WR_STICK_CMPR_REG_R wr %r0, %r17, %- donret_4_190: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_190-donret_4_190-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00e07307 | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1dc7, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (4) retry donretarg_4_190: .word 0xa1a509d4 ! 250: FDIVd fdivd %f20, %f20, %f16 memptr_4_191: set 0x60140000, %r31 .word 0x8582ed18 ! 251: WRCCR_I wr %r11, 0x0d18, %ccr .word 0xe49fc240 ! 252: LDDA_R ldda [%r31, %r0] 0x12, %r18 invtsb_4_192: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 253: FBL fbl,a nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_193 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_193 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610090, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_193: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 254: RDPC rd %pc, %r19 splash_lsu_4_194: nop ta T_CHANGE_HPRIV set 0xe9d6fde3, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 255: FBPULE fbule,a,pn %fcc0, .word 0xa553c000 ! 256: RDPR_FQ setx vahole_target2, %r18, %r27 .word 0xe91fe1e0 ! 257: LDDF_I ldd [%r31, 0x01e0], %f20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_196) + 0, 16, 16)) -> intp(7,0,27) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_196)&0xffffffff) + 0, 16, 16)) -> intp(7,0,27) #else setx 0xb1459a3e7e0aa203, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_196: .word 0x39400001 ! 258: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_197 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_197: ta T_CHANGE_NONHPRIV .word 0xe9e7e010 ! 259: CASA_R casa [%r31] %asi, %r16, %r20 .word 0xe8c7e010 ! 260: LDSWA_I ldswa [%r31, + 0x0010] %asi, %r20 setx vahole_target3, %r18, %r27 .word 0x9ba049b3 ! 261: FDIVs fdivs %f1, %f19, %f13 .word 0xd697e0d0 ! 262: LDUHA_I lduha [%r31, + 0x00d0] %asi, %r11 .word 0xd73fc000 ! 263: STDF_R std %f11, [%r0, %r31] .word 0xd68fe1d8 ! 264: LDUBA_I lduba [%r31, + 0x01d8] %asi, %r11 pmu_4_199: nop setx 0xfffff070fffff390, %g1, %g7 .word 0xa3800007 ! 265: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_tick_4_200: nop ta T_CHANGE_HPRIV best_set_reg(0xa94061feabe185c8, %r16, %r17) .word 0x89800011 ! 266: WRTICK_R wr %r0, %r17, %tick setx vahole_target1, %r18, %r27 .word 0xa3a349c7 ! 267: FDIVd fdivd %f44, %f38, %f48 .word 0x3f400001 ! 1: FBPO fbo,a,pn %fcc0, .word 0x8d902183 ! 268: WRPR_PSTATE_I wrpr %r0, 0x0183, %pstate .word 0xe097e0a8 ! 269: LDUHA_I lduha [%r31, + 0x00a8] %asi, %r16 nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_203 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_203: ta T_CHANGE_NONHPRIV .word 0xe1e7e00c ! 270: CASA_R casa [%r31] %asi, %r12, %r16 .word 0xe07fe060 ! 271: SWAP_I swap %r16, [%r31 + 0x0060] .word 0x28780001 ! 272: BPLEU cwp_4_204: set user_data_start, %o7 .word 0x93902001 ! 273: WRPR_CWP_I wrpr %r0, 0x0001, %cwp pmu_4_205: nop ta T_CHANGE_PRIV setx 0xfffff8d2fffffce2, %g1, %g7 .word 0xa3800007 ! 274: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_4_206: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3c0] %asi .word 0x9d918006 ! 275: WRPR_WSTATE_R wrpr %r6, %r6, %wstate br_badelay3_4_207: .word 0x32800001 ! 1: BNE bne,a .word 0x34800001 ! 1: BG bg,a .word 0x97a00544 ! 1: FSQRTd fsqrt .word 0xa3a10834 ! 276: FADDs fadds %f4, %f20, %f17 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_4_208: ta T_CHANGE_NONPRIV ! macro splash_tick_4_209: nop ta T_CHANGE_HPRIV best_set_reg(0x33dc5a2dcecec097, %r16, %r17) .word 0x89800011 ! 278: WRTICK_R wr %r0, %r17, %tick mondo_4_210: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r10, [%r0+0x3e8] %asi .word 0x9d908005 ! 279: WRPR_WSTATE_R wrpr %r2, %r5, %wstate donret_4_211: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_211-donret_4_211-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00ccc0f0 | (28 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x14d0, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (4) done donretarg_4_211: .word 0xd86fe1e0 ! 280: LDSTUB_I ldstub %r12, [%r31 + 0x01e0] donret_4_212: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_212-donret_4_212-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x005df803 | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xe09, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (4) retry donretarg_4_212: .word 0xa3a089d4 ! 281: FDIVd fdivd %f2, %f20, %f48 brcommon1_4_213: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xe9e7c029 ! 1: CASA_I casa [%r31] 0x 1, %r9, %r20 ba,a .+8 jmpl %r27+0, %r27 .word 0x87ac0a52 ! 282: FCMPd fcmpd %fcc, %f16, %f18 .word 0xe19fe080 ! 283: LDDFA_I ldda [%r31, 0x0080], %f16 .word 0x8d9032c7 ! 284: WRPR_PSTATE_I wrpr %r0, 0x12c7, %pstate splash_cmpr_4_215: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 285: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_4_216: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 286: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_4_217: ta T_CHANGE_NONPRIV ! macro .word 0x24ccc001 ! 1: BRLEZ brlez,a,pt %r19, .word 0x8d902d13 ! 288: WRPR_PSTATE_I wrpr %r0, 0x0d13, %pstate splash_lsu_4_219: nop ta T_CHANGE_HPRIV set 0x28c5275f, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 289: FBPULE fbule,a,pn %fcc0, donret_4_220: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_220-donret_4_220-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00aae90d | (0x82 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x597, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, retry donretarg_4_220: .word 0xd66fe12f ! 290: LDSTUB_I ldstub %r11, [%r31 + 0x012f] .word 0x83d02032 ! 291: Tcc_I te icc_or_xcc, %r0 + 50 setx 0x02c691824ba04f84, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_221: .word 0x39400001 ! 292: FBPUGE fbuge,a,pn %fcc0, brcommon3_4_222: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd737e020 ! 1: STQF_I - %f11, [0x0020, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd6bfc02a ! 293: STDA_R stda %r11, [%r31 + %r10] 0x01 .word 0xd6d7e108 ! 294: LDSHA_I ldsha [%r31, + 0x0108] %asi, %r11 pmu_4_223: nop ta T_CHANGE_PRIV setx 0xfffff961fffff51f, %g1, %g7 .word 0xa3800007 ! 295: WR_PERF_COUNTER_R wr %r0, %r7, %- cmp_4_224: nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 xor %r9, 0x4, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0, %r8 mov 0xff, %r9 xor %r9, 0x4, %r9 ! My core mask #endif mov 0x4, %r10 cmp_startwait4_224: cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmp_4_224 ldxa [0x50]%asi, %r13 !Running_rw ld [%r23], %r10 cmp_wait4_224: brnz,a %r10, cmp_wait4_224 ld [%r23], %r10 ba cmp_startwait4_224 mov 0x4, %r10 continue_cmp_4_224: ldxa [0x58]%asi, %r14 !Running_status xnor %r14, %r13, %r14 !Bits equal brz,a %r8, cmp_multi_core_4_224 mov 0x81, %r17 best_set_reg(0x3b107a2a9997499b, %r16, %r17) cmp_multi_core_4_224: and %r14, %r17, %r14 !Apply set/clear mask to bits equal and %r14, %r9, %r14 !Apply core-mask stxa %r14, [0x60]%asi st %g0, [%r23] !clear lock wr %g0, %r12, %asi .word 0x91a0016a ! 296: FABSq dis not found #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_225)+40, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_225)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_225: .word 0xa984ed62 ! 297: WR_SET_SOFTINT_I wr %r19, 0x0d62, %set_softint memptr_4_226: set 0x60340000, %r31 .word 0x8585298c ! 298: WRCCR_I wr %r20, 0x098c, %ccr mondo_4_227: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r3, [%r0+0x3e8] %asi .word 0x9d950010 ! 299: WRPR_WSTATE_R wrpr %r20, %r16, %wstate .word 0xd297e010 ! 300: LDUHA_I lduha [%r31, + 0x0010] %asi, %r9 setx vahole_target2, %r18, %r27 .word 0xa3a149c6 ! 301: FDIVd fdivd %f36, %f6, %f48 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_229)+16, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_229)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_229: .word 0xa9837fb8 ! 302: WR_SET_SOFTINT_I wr %r13, 0x1fb8, %set_softint .word 0x8d903a41 ! 303: WRPR_PSTATE_I wrpr %r0, 0x1a41, %pstate setx vahole_target0, %r18, %r27 .word 0xe897c030 ! 304: LDUHA_R lduha [%r31, %r16] 0x01, %r20 trapasi_4_232: nop mov 0x18, %r1 ! (VA for ASI 0x4c) .word 0xe8d04980 ! 305: LDSHA_R ldsha [%r1, %r0] 0x4c, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_233)+8, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_233)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_233: .word 0xa9852ca5 ! 306: WR_SET_SOFTINT_I wr %r20, 0x0ca5, %set_softint #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_234) + 0, 16, 16)) -> intp(0,0,17) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_234)&0xffffffff) + 0, 16, 16)) -> intp(0,0,17) #else setx 0x1d8c6cbfdef59e32, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_234: .word 0x39400001 ! 307: FBPUGE fbuge,a,pn %fcc0, .word 0xe83fc000 ! 308: STD_R std %r20, [%r31 + %r0] pmu_4_235: nop ta T_CHANGE_PRIV setx 0xfffff29efffff55d, %g1, %g7 .word 0xa3800007 ! 309: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_236 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_236 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610000, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_236: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 310: RDPC rd %pc, %r16 nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_237 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_237: ta T_CHANGE_NONHPRIV .word 0xd1e7e010 ! 311: CASA_R casa [%r31] %asi, %r16, %r8 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_4_238: ta T_CHANGE_NONPRIV ! macro nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_239 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_239: ta T_CHANGE_NONHPRIV .word 0xd1e7e012 ! 313: CASA_R casa [%r31] %asi, %r18, %r8 .word 0xc30fc014 ! 1: LDXFSR_R ld-fsr [%r31, %r20], %f1 .word 0x9f8031c1 ! 314: SIR sir 0x11c1 .word 0x93d02032 ! 315: Tcc_I tne icc_or_xcc, %r0 + 50 splash_cmpr_4_240: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 316: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_4_241: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r2, [%r0+0x3c0] %asi .word 0x9d914012 ! 317: WRPR_WSTATE_R wrpr %r5, %r18, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xd05fc000 ! 318: LDX_R ldx [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_242 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_242: ta T_CHANGE_NONHPRIV .word 0xd1e7e012 ! 319: CASA_R casa [%r31] %asi, %r18, %r8 br_longdelay1_4_243: .word 0x2c800001 ! 1: BNEG bneg,a .word 0xbfefc000 ! 320: RESTORE_R restore %r31, %r0, %r31 splash_cmpr_4_244: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 321: WR_STICK_CMPR_REG_R wr %r0, %r17, %- pmu_4_245: nop ta T_CHANGE_PRIV setx 0xfffff568ffffff4f, %g1, %g7 .word 0xa3800007 ! 322: WR_PERF_COUNTER_R wr %r0, %r7, %- pmu_4_246: nop setx 0xfffffb91fffff69d, %g1, %g7 .word 0xa3800007 ! 323: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xd127c000 ! 324: STF_R st %f8, [%r0, %r31] splash_tick_4_247: nop ta T_CHANGE_HPRIV best_set_reg(0x288f39c96d921895, %r16, %r17) .word 0x89800011 ! 325: WRTICK_R wr %r0, %r17, %tick cmp_4_248: nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 xor %r9, 0x4, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0, %r8 mov 0xff, %r9 xor %r9, 0x4, %r9 ! My core mask #endif mov 0x4, %r10 cmp_startwait4_248: cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmp_4_248 ldxa [0x50]%asi, %r13 !Running_rw ld [%r23], %r10 cmp_wait4_248: brnz,a %r10, cmp_wait4_248 ld [%r23], %r10 ba cmp_startwait4_248 mov 0x4, %r10 continue_cmp_4_248: ldxa [0x58]%asi, %r14 !Running_status xnor %r14, %r13, %r14 !Bits equal brz,a %r8, cmp_multi_core_4_248 mov 0x51, %r17 best_set_reg(0xda7f7bdcf4daba28, %r16, %r17) cmp_multi_core_4_248: and %r14, %r17, %r14 !Apply set/clear mask to bits equal and %r14, %r9, %r14 !Apply core-mask stxa %r14, [0x60]%asi st %g0, [%r23] !clear lock wr %g0, %r12, %asi .word 0xa7a00168 ! 326: FABSq dis not found mondo_4_249: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3e8] %asi .word 0x9d940011 ! 327: WRPR_WSTATE_R wrpr %r16, %r17, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_250) + 40, 16, 16)) -> intp(7,0,9) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_250)&0xffffffff) + 40, 16, 16)) -> intp(7,0,9) #else setx 0x1deb8790fa0b2c73, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_250: .word 0x39400001 ! 328: FBPUGE fbuge,a,pn %fcc0, donret_4_251: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_251-donret_4_251-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x000e0b23 | (20 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x607, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (4) .word 0x33400001 ! 1: FBPE fbe,a,pn %fcc0, done donretarg_4_251: .word 0xa5a349d2 ! 329: FDIVd fdivd %f44, %f18, %f18 .word 0xd4c7e068 ! 330: LDSWA_I ldswa [%r31, + 0x0068] %asi, %r10 .word 0xe1bfe020 ! 331: STDFA_I stda %f16, [0x0020, %r31] nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xd45fc000 ! 332: LDX_R ldx [%r31 + %r0], %r10 br_badelay3_4_252: .word 0x20800001 ! 1: BN bn,a .word 0xc16e3672 ! Random illegal ? .word 0xa7a00554 ! 1: FSQRTd fsqrt .word 0xa7a4482a ! 333: FADDs fadds %f17, %f10, %f19 splash_hpstate_4_253: .word 0x30800001 ! 1: BA ba,a .word 0x8198295f ! 334: WRHPR_HPSTATE_I wrhpr %r0, 0x095f, %hpstate mondo_4_254: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r4, [%r0+0x3e0] %asi .word 0x9d94c003 ! 335: WRPR_WSTATE_R wrpr %r19, %r3, %wstate .word 0xe31fc013 ! 1: LDDF_R ldd [%r31, %r19], %f17 .word 0x9f80392a ! 336: SIR sir 0x192a .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_4_255: ta T_CHANGE_NONHPRIV ! macro .word 0xe277e0e0 ! 338: STX_I stx %r17, [%r31 + 0x00e0] pmu_4_256: nop ta T_CHANGE_PRIV setx 0xfffff167fffff2ab, %g1, %g7 .word 0xa3800007 ! 339: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xe327c000 ! 340: STF_R st %f17, [%r0, %r31] otherw mov 0x30, %r30 .word 0x93d0001e ! 341: Tcc_R tne icc_or_xcc, %r0 + %r30 .word 0xe227e012 ! 342: STW_I stw %r17, [%r31 + 0x0012] setx 0xa3897ac93481ae68, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_257: .word 0x39400001 ! 343: FBPUGE fbuge,a,pn %fcc0, jmptr_4_258: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 344: JMPL_R jmpl %r27 + %r0, %r27 donret_4_259: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_259-donret_4_259-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00f5701c | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x505, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) .word 0x30800001 ! 1: BA ba,a done donretarg_4_259: .word 0xa5a449d4 ! 345: FDIVd fdivd %f48, %f20, %f18 jmptr_4_260: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 346: JMPL_R jmpl %r27 + %r0, %r27 cmp_4_261: nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 xor %r9, 0x4, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0, %r8 mov 0xff, %r9 xor %r9, 0x4, %r9 ! My core mask #endif mov 0x4, %r10 cmp_startwait4_261: cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmp_4_261 ldxa [0x50]%asi, %r13 !Running_rw ld [%r23], %r10 cmp_wait4_261: brnz,a %r10, cmp_wait4_261 ld [%r23], %r10 ba cmp_startwait4_261 mov 0x4, %r10 continue_cmp_4_261: ldxa [0x58]%asi, %r14 !Running_status xnor %r14, %r13, %r14 !Bits equal brz,a %r8, cmp_multi_core_4_261 mov 0x5f, %r17 best_set_reg(0x6f75f38d9edc4820, %r16, %r17) cmp_multi_core_4_261: and %r14, %r17, %r14 !Apply set/clear mask to bits equal and %r14, %r9, %r14 !Apply core-mask stxa %r14, [0x68]%asi st %g0, [%r23] !clear lock wr %g0, %r12, %asi ta T_CHANGE_NONHPRIV .word 0xa7a00165 ! 347: FABSq dis not found .word 0x96c436f4 ! 348: ADDCcc_I addccc %r16, 0xfffff6f4, %r11 mondo_4_262: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3e0] %asi .word 0x9d94c005 ! 349: WRPR_WSTATE_R wrpr %r19, %r5, %wstate .word 0x30800001 ! 1: BA ba,a .word 0x8d902d95 ! 350: WRPR_PSTATE_I wrpr %r0, 0x0d95, %pstate .word 0xe19fe080 ! 351: LDDFA_I ldda [%r31, 0x0080], %f16 splash_tick_4_264: nop ta T_CHANGE_HPRIV best_set_reg(0x58d58790e2fd55e4, %r16, %r17) .word 0x89800011 ! 352: WRTICK_R wr %r0, %r17, %tick .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_4_265: ta T_CHANGE_NONHPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_266) + 40, 16, 16)) -> intp(7,0,23) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_266)&0xffffffff) + 40, 16, 16)) -> intp(7,0,23) #else setx 0xc8291d80ef1f0413, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_266: .word 0x39400001 ! 354: FBPUGE fbuge,a,pn %fcc0, setx vahole_target1, %r18, %r27 .word 0xe63fe1e0 ! 355: STD_I std %r19, [%r31 + 0x01e0] .word 0xc19fe0c0 ! 356: LDDFA_I ldda [%r31, 0x00c0], %f0 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_268)+24, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_268)&0xffffffff) +24, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_268: .word 0xa982bf3f ! 357: WR_SET_SOFTINT_I wr %r10, 0x1f3f, %set_softint setx 0x8ced63321d5443c7, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_269: .word 0x39400001 ! 358: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_270 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_270 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100c0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_270: ta T_CHANGE_NONHPRIV .word 0x97414000 ! 359: RDPC rd %pc, %r11 splash_tick_4_271: nop ta T_CHANGE_HPRIV best_set_reg(0x5d29c348834e9b01, %r16, %r17) .word 0x89800011 ! 360: WRTICK_R wr %r0, %r17, %tick br_longdelay1_4_272: .word 0x2a800001 ! 1: BCS bcs,a .word 0xbfefc000 ! 361: RESTORE_R restore %r31, %r0, %r31 fpinit_4_273: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x87a80a44 ! 362: FCMPd fcmpd %fcc, %f0, %f4 jmptr_4_274: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 363: JMPL_R jmpl %r27 + %r0, %r27 cerer_4_275: nop ta T_CHANGE_HPRIV best_set_reg(0x94e03f0eb4b7c457, %r26, %r27) sethi %hi(0x20008000), %r26 ! Set ITTM/DTTM sllx %r26, 32, %r26 or %r26, %r27, %r27 mov 0x10, %r26 stxa %r27, [%r26]0x4c ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 364: MEMBAR membar #LoadLoad | #Lookaside intveclr_4_276: nop ta T_CHANGE_HPRIV setx 0x638c5a64a8af8f24, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 365: FBPLG fblg,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_277 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_277 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100e0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_277: ta T_CHANGE_NONHPRIV .word 0xa5414000 ! 366: RDPC rd %pc, %r18 brcommon3_4_278: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd937c00a ! 1: STQF_R - %f12, [%r10, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xc32fc011 ! 367: STXFSR_R st-sfr %f1, [%r17, %r31] .word 0xd827e1be ! 368: STW_I stw %r12, [%r31 + 0x01be] .word 0xd8c7e0d8 ! 369: LDSWA_I ldswa [%r31, + 0x00d8] %asi, %r12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_279)+32, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_279)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_279: .word 0xa981a915 ! 370: WR_SET_SOFTINT_I wr %r6, 0x0915, %set_softint nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_280 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_280 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100f0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_280: ta T_CHANGE_NONHPRIV .word 0xa5414000 ! 371: RDPC rd %pc, %r18 .word 0xd4cfe038 ! 372: LDSBA_I ldsba [%r31, + 0x0038] %asi, %r10 splash_cmpr_4_281: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 373: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_282 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_282: ta T_CHANGE_NONHPRIV .word 0xd5e7e008 ! 374: CASA_R casa [%r31] %asi, %r8, %r10 br_badelay2_4_283: .word 0x91a089d2 ! 1: FDIVd fdivd %f2, %f18, %f8 pdist %f30, %f22, %f14 .word 0x97b14306 ! 375: ALIGNADDRESS alignaddr %r5, %r6, %r11 .word 0xc19fe180 ! 376: LDDFA_I ldda [%r31, 0x0180], %f0 .word 0xd5e7c02a ! 1: CASA_I casa [%r31] 0x 1, %r10, %r10 .word 0x9f8024a2 ! 377: SIR sir 0x04a2 .word 0xc1bfdb60 ! 378: STDFA_R stda %f0, [%r0, %r31] .word 0xa6dcc011 ! 379: SMULcc_R smulcc %r19, %r17, %r19 .word 0xc36fe17c ! 380: PREFETCH_I prefetch [%r31 + 0x017c], #one_read nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_285 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_285 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_285: ta T_CHANGE_NONHPRIV .word 0x91414000 ! 381: RDPC rd %pc, %r8 brcommon3_4_286: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xdb37c010 ! 1: STQF_R - %f13, [%r16, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xdb1fe100 ! 382: LDDF_I ldd [%r31, 0x0100], %f13 .word 0x28800001 ! 383: BLEU bleu,a iaw_4_287: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x4, %r16 iaw_startwait4_287: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_iaw_4_287 mov (~0x4&0xf), %r16 ld [%r23], %r16 iaw_wait4_287: brnz %r16, iaw_wait4_287 ld [%r23], %r16 ba iaw_startwait4_287 mov 0x4, %r16 continue_iaw_4_287: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_4_287: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_4_287 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_iaw_4_287: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_iaw_4_287 ldxa [0x50]%asi, %r14 !Running_rw iaw_doit4_287: mov 0x38, %r18 iaw4_4_287: setx common_target, %r20, %r19 or %r19, 0x1, %r19 stxa %r19, [%r18]0x50 stxa %r16, [0x60] %asi ! Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi ! restore %asi ta T_CHANGE_NONHPRIV .word 0xdb1fe140 ! 384: LDDF_I ldd [%r31, 0x0140], %f13 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_288) + 24, 16, 16)) -> intp(3,0,20) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_288)&0xffffffff) + 24, 16, 16)) -> intp(3,0,20) #else setx 0x0f115f969e0aea28, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_288: .word 0x39400001 ! 385: FBPUGE fbuge,a,pn %fcc0, tagged_4_289: taddcctv %r18, 0x1806, %r9 .word 0xda07e1fd ! 386: LDUW_I lduw [%r31 + 0x01fd], %r13 ibp_4_290: nop .word 0xe1bfe0c0 ! 387: STDFA_I stda %f16, [0x00c0, %r31] cwp_4_291: set user_data_start, %o7 .word 0x93902004 ! 388: WRPR_CWP_I wrpr %r0, 0x0004, %cwp pmu_4_292: nop ta T_CHANGE_PRIV setx 0xfffffeabfffffbe2, %g1, %g7 .word 0xa3800007 ! 389: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_4_293: ta T_CHANGE_NONPRIV ! macro ceter_4_294: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0xa7410000 ! 391: RDTICK rd %tick, %r19 cwp_4_295: set user_data_start, %o7 .word 0x93902001 ! 392: WRPR_CWP_I wrpr %r0, 0x0001, %cwp splash_lsu_4_296: nop ta T_CHANGE_HPRIV set 0xa1a949ca, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 393: FBPULE fbule,a,pn %fcc0, intveclr_4_297: nop ta T_CHANGE_HPRIV setx 0x480a21547d680f14, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 394: FBPLG fblg,a,pn %fcc0, nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe25fc000 ! 395: LDX_R ldx [%r31 + %r0], %r17 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_4_298: ta T_CHANGE_NONPRIV ! macro dvapa_4_299: nop ta T_CHANGE_HPRIV mov 0xb73, %r20 mov 0x1a, %r19 sllx %r20, 23, %r20 or %r19, %r20, %r19 stxa %r19, [%g0] ASI_LSU_CONTROL mov 0x38, %r18 stxa %r31, [%r18]0x58 ta T_CHANGE_NONHPRIV .word 0xe33fc012 ! 397: STDF_R std %f17, [%r18, %r31] mondo_4_300: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3d0] %asi .word 0x9d92400c ! 398: WRPR_WSTATE_R wrpr %r9, %r12, %wstate .word 0xe19fd960 ! 399: LDDFA_R ldda [%r31, %r0], %f16 splash_decr_4_301: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r11, [%r1] 0x45 .word 0xa784c014 ! 400: WR_GRAPHICS_STATUS_REG_R wr %r19, %r20, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_302) + 8, 16, 16)) -> intp(4,0,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_302)&0xffffffff) + 8, 16, 16)) -> intp(4,0,3) #else setx 0x3079e22d1844ab6a, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_302: .word 0x39400001 ! 401: FBPUGE fbuge,a,pn %fcc0, brcommon2_4_303: nop setx common_target, %r12, %r27 ba,a .+12 .word 0x9f8021b0 ! 1: SIR sir 0x01b0 ba,a .+8 jmpl %r27+0, %r27 .word 0xe19fc2c0 ! 402: LDDFA_R ldda [%r31, %r0], %f16 nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_304 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_304: ta T_CHANGE_NONHPRIV .word 0xd3e7e010 ! 403: CASA_R casa [%r31] %asi, %r16, %r9 pmu_4_305: nop setx 0xfffff140fffff53d, %g1, %g7 .word 0xa3800007 ! 404: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_4_306: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 405: JMPL_R jmpl %r27 + %r0, %r27 splash_tick_4_307: nop ta T_CHANGE_HPRIV best_set_reg(0x475346ca0755eec0, %r16, %r17) .word 0x89800011 ! 406: WRTICK_R wr %r0, %r17, %tick #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_308) + 24, 16, 16)) -> intp(1,0,2) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_308)&0xffffffff) + 24, 16, 16)) -> intp(1,0,2) #else setx 0x8d28c87a9b66599d, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_308: .word 0x39400001 ! 407: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_4_309: .word 0x819820d4 ! 408: WRHPR_HPSTATE_I wrhpr %r0, 0x00d4, %hpstate br_badelay2_4_310: .word 0xa5a309d0 ! 1: FDIVd fdivd %f12, %f16, %f18 pdist %f12, %f0, %f6 .word 0x91b14311 ! 409: ALIGNADDRESS alignaddr %r5, %r17, %r8 splash_cmpr_4_311: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 410: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x4, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_4_312 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_4_312: ta T_CHANGE_NONHPRIV .word 0xe5e7e014 ! 411: CASA_R casa [%r31] %asi, %r20, %r18 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_313)+32, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_313)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_313: .word 0xa9806f1a ! 412: WR_SET_SOFTINT_I wr %r1, 0x0f1a, %set_softint memptr_4_314: set 0x60740000, %r31 .word 0x8584be02 ! 413: WRCCR_I wr %r18, 0x1e02, %ccr cmp_4_315: nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 xor %r9, 0x4, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0, %r8 mov 0xff, %r9 xor %r9, 0x4, %r9 ! My core mask #endif mov 0x4, %r10 cmp_startwait4_315: cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmp_4_315 ldxa [0x50]%asi, %r13 !Running_rw ld [%r23], %r10 cmp_wait4_315: brnz,a %r10, cmp_wait4_315 ld [%r23], %r10 ba cmp_startwait4_315 mov 0x4, %r10 continue_cmp_4_315: ldxa [0x58]%asi, %r14 !Running_status xnor %r14, %r13, %r14 !Bits equal brz,a %r8, cmp_multi_core_4_315 mov 0xf1, %r17 best_set_reg(0xcd463527c96fb603, %r16, %r17) cmp_multi_core_4_315: and %r14, %r17, %r14 !Apply set/clear mask to bits equal and %r14, %r9, %r14 !Apply core-mask stxa %r14, [0x68]%asi st %g0, [%r23] !clear lock wr %g0, %r12, %asi .word 0x9192c010 ! 414: WRPR_PIL_R wrpr %r11, %r16, %pil .word 0xe43fe110 ! 1: STD_I std %r18, [%r31 + 0x0110] .word 0x9f802213 ! 415: SIR sir 0x0213 nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_316 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_316 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100c0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_316: ta T_CHANGE_NONHPRIV .word 0x9b414000 ! 416: RDPC rd %pc, %r13 intveclr_4_317: nop ta T_CHANGE_HPRIV setx 0xdd1d8cc4a63a6edb, %r1, %r28 stxa %r28, [%g0] 0x72 ta T_CHANGE_NONHPRIV .word 0x25400001 ! 417: FBPLG fblg,a,pn %fcc0, splash_cmpr_4_318: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 418: WR_TICK_CMPR_REG_R wr %r0, %r17, %- setx 0x4d747da76e6366e0, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_319: .word 0x39400001 ! 419: FBPUGE fbuge,a,pn %fcc0, .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_4_320: ta T_CHANGE_NONHPRIV ! macro mondo_4_321: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r18, [%r0+0x3d8] %asi .word 0x9d950001 ! 421: WRPR_WSTATE_R wrpr %r20, %r1, %wstate splash_lsu_4_322: nop ta T_CHANGE_HPRIV set 0x8e0a47ff, %r2 mov 0x1, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 422: FBPULE fbule,a,pn %fcc0, .word 0x3a780001 ! 423: BPCC .word 0xda3fe1b8 ! 424: STD_I std %r13, [%r31 + 0x01b8] .word 0x91d02033 ! 425: Tcc_I ta icc_or_xcc, %r0 + 51 otherw mov 0xb0, %r30 .word 0x91d0001e ! 426: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0x33400001 ! 1: FBPE fbe,a,pn %fcc0, .word 0x8d903ac0 ! 427: WRPR_PSTATE_I wrpr %r0, 0x1ac0, %pstate br_badelay2_4_324: .word 0x32800001 ! 1: BNE bne,a allclean .word 0x91b30312 ! 428: ALIGNADDRESS alignaddr %r12, %r18, %r8 setx vahole_target0, %r18, %r27 .word 0xd71fc013 ! 429: LDDF_R ldd [%r31, %r19], %f11 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_4_326) + 48, 16, 16)) -> intp(1,0,18) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_4_326)&0xffffffff) + 48, 16, 16)) -> intp(1,0,18) #else setx 0x61b4fae9e081f5e1, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_4_326: .word 0x39400001 ! 430: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_4_327: ta T_CHANGE_NONHPRIV .word 0x819835fe ! 431: WRHPR_HPSTATE_I wrhpr %r0, 0x15fe, %hpstate splash_htba_4_328: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 432: WRHPR_HTBA_R wrhpr %r0, %r12, %htba .word 0xd607c000 ! 433: LDUW_R lduw [%r31 + %r0], %r11 .word 0x93b48550 ! 434: FCMPEQ16 fcmpeq16 %d18, %d16, %r9 donret_4_329: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_329-donret_4_329-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x000ed250 | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xb46, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (4) done donretarg_4_329: .word 0xd8ffe16f ! 435: SWAPA_I swapa %r12, [%r31 + 0x016f] %asi .word 0x97a44d30 ! 436: FsMULd fsmuld %f17, %f16, %f42 splash_tba_4_330: ta T_CHANGE_PRIV setx 0x0000000400380000, %r11, %r12 .word 0x8b90000c ! 437: WRPR_TBA_R wrpr %r0, %r12, %tba nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xe25fc000 ! 438: LDX_R ldx [%r31 + %r0], %r17 nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xe25fc000 ! 439: LDX_R ldx [%r31 + %r0], %r17 donret_4_331: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_331-donret_4_331-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x006a671c | (0x58 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x14cb, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (4) .word 0x33400001 ! 1: FBPE fbe,a,pn %fcc0, done donretarg_4_331: .word 0xe26fe1bd ! 440: LDSTUB_I ldstub %r17, [%r31 + 0x01bd] donret_4_332: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_332-donret_4_332-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x005e6b38 | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x4cd, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) retry donretarg_4_332: .word 0x9ba489d2 ! 441: FDIVd fdivd %f18, %f18, %f44 setx 0x681e856389d70fab, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_4_333: .word 0x39400001 ! 442: FBPUGE fbuge,a,pn %fcc0, .word 0xe88fe038 ! 443: LDUBA_I lduba [%r31, + 0x0038] %asi, %r20 .word 0xe937e18b ! 444: STQF_I - %f20, [0x018b, %r31] cerer_4_334: nop ta T_CHANGE_HPRIV best_set_reg(0x6baf52f60888a165, %r26, %r27) sethi %hi(0x20008000), %r26 ! Set ITTM/DTTM sllx %r26, 32, %r26 or %r26, %r27, %r27 mov 0x10, %r26 stxa %r27, [%r26]0x4c ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 445: MEMBAR membar #LoadLoad | #Lookaside iaw_4_335: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x4, %r16 iaw_startwait4_335: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_iaw_4_335 mov (~0x4&0xf), %r16 ld [%r23], %r16 iaw_wait4_335: brnz %r16, iaw_wait4_335 ld [%r23], %r16 ba iaw_startwait4_335 mov 0x4, %r16 continue_iaw_4_335: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_4_335: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_4_335 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_iaw_4_335: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_iaw_4_335 ldxa [0x50]%asi, %r14 !Running_rw iaw_doit4_335: mov 0x38, %r18 iaw4_4_335: setx common_target, %r20, %r19 or %r19, 0x1, %r19 stxa %r19, [%r18]0x50 stxa %r16, [0x60] %asi ! Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi ! restore %asi ta T_CHANGE_NONHPRIV .word 0xc3eb4031 ! 446: PREFETCHA_R prefetcha [%r13, %r17] 0x01, #one_read brcommon2_4_336: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xa9b7c70a ! 1: FMULD8SUx16 fmuld8ulx16 %f31, %f10, %d20 ba,a .+8 jmpl %r27+0, %r27 .word 0xc19fdb60 ! 447: LDDFA_R ldda [%r31, %r0], %f0 .word 0x984cc009 ! 448: MULX_R mulx %r19, %r9, %r12 splash_lsu_4_337: nop ta T_CHANGE_HPRIV set 0x4e4b46cb, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 449: FBPULE fbule,a,pn %fcc0, mondo_4_338: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r6, [%r0+0x3e0] %asi .word 0x9d940010 ! 450: WRPR_WSTATE_R wrpr %r16, %r16, %wstate splash_tick_4_339: nop ta T_CHANGE_HPRIV best_set_reg(0xe8ed4ae3190d0f6b, %r16, %r17) .word 0x89800011 ! 451: WRTICK_R wr %r0, %r17, %tick splash_hpstate_4_340: ta T_CHANGE_NONHPRIV .word 0x3b400001 ! 1: FBPLE fble,a,pn %fcc0, .word 0x8198281e ! 452: WRHPR_HPSTATE_I wrhpr %r0, 0x081e, %hpstate pmu_4_341: nop ta T_CHANGE_PRIV setx 0xffffffc2fffffa39, %g1, %g7 .word 0xa3800007 ! 453: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x91d020b4 ! 454: Tcc_I ta icc_or_xcc, %r0 + 180 .word 0x9ba1c9b4 ! 455: FDIVs fdivs %f7, %f20, %f13 .word 0xe73fc000 ! 456: STDF_R std %f19, [%r0, %r31] cwp_4_342: set user_data_start, %o7 .word 0x93902006 ! 457: WRPR_CWP_I wrpr %r0, 0x0006, %cwp jmptr_4_343: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 458: JMPL_R jmpl %r27 + %r0, %r27 jmptr_4_344: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 459: JMPL_R jmpl %r27 + %r0, %r27 jmptr_4_345: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 460: JMPL_R jmpl %r27 + %r0, %r27 iaw_4_346: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x4, %r16 iaw_startwait4_346: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_iaw_4_346 mov (~0x4&0xf), %r16 ld [%r23], %r16 iaw_wait4_346: brnz %r16, iaw_wait4_346 ld [%r23], %r16 ba iaw_startwait4_346 mov 0x4, %r16 continue_iaw_4_346: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_4_346: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_4_346 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_iaw_4_346: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_iaw_4_346 ldxa [0x50]%asi, %r14 !Running_rw iaw_doit4_346: mov 0x38, %r18 iaw1_4_346: best_set_reg(0x00000000e1200000, %r20, %r19) or %r19, 0x1, %r19 stxa %r19, [%r18]0x50 stxa %r16, [0x60] %asi ! Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi ! restore %asi ta T_CHANGE_NONHPRIV .word 0xe6bfc031 ! 461: STDA_R stda %r19, [%r31 + %r17] 0x01 brcommon1_4_347: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xa77021a0 ! 1: POPC_I popc 0x01a0, %r19 ba,a .+8 jmpl %r27+0, %r27 .word 0x87ac4a54 ! 462: FCMPd fcmpd %fcc, %f48, %f20 splash_tick_4_348: nop ta T_CHANGE_HPRIV best_set_reg(0xbe4f4e0149d3ee51, %r16, %r17) .word 0x89800011 ! 463: WRTICK_R wr %r0, %r17, %tick ceter_4_349: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x97410000 ! 464: RDTICK rd %tick, %r11 splash_cmpr_4_350: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 465: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x9680c013 ! 466: ADDcc_R addcc %r3, %r19, %r11 .word 0xd28008a0 ! 467: LDUWA_R lduwa [%r0, %r0] 0x45, %r9 memptr_4_351: set user_data_start, %r31 .word 0x8581b03e ! 468: WRCCR_I wr %r6, 0x103e, %ccr .word 0xd27fe060 ! 469: SWAP_I swap %r9, [%r31 + 0x0060] .word 0x93a7c9d0 ! 1: FDIVd fdivd %f62, %f16, %f40 .word 0x9f802432 ! 470: SIR sir 0x0432 cmp_4_352: nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 xor %r9, 0x4, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0, %r8 mov 0xff, %r9 xor %r9, 0x4, %r9 ! My core mask #endif mov 0x4, %r10 cmp_startwait4_352: cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmp_4_352 ldxa [0x50]%asi, %r13 !Running_rw ld [%r23], %r10 cmp_wait4_352: brnz,a %r10, cmp_wait4_352 ld [%r23], %r10 ba cmp_startwait4_352 mov 0x4, %r10 continue_cmp_4_352: ldxa [0x58]%asi, %r14 !Running_status xnor %r14, %r13, %r14 !Bits equal brz,a %r8, cmp_multi_core_4_352 mov 55, %r17 best_set_reg(0xb3d7c85ddeadaec9, %r16, %r17) cmp_multi_core_4_352: and %r14, %r17, %r14 !Apply set/clear mask to bits equal and %r14, %r9, %r14 !Apply core-mask stxa %r14, [0x60]%asi st %g0, [%r23] !clear lock wr %g0, %r12, %asi ta T_CHANGE_NONHPRIV .word 0x9192800c ! 471: WRPR_PIL_R wrpr %r10, %r12, %pil .word 0x28780001 ! 472: BPLEU jmptr_4_353: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 473: JMPL_R jmpl %r27 + %r0, %r27 iaw_4_354: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x4, %r16 iaw_startwait4_354: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_iaw_4_354 mov (~0x4&0xf), %r16 ld [%r23], %r16 iaw_wait4_354: brnz %r16, iaw_wait4_354 ld [%r23], %r16 ba iaw_startwait4_354 mov 0x4, %r16 continue_iaw_4_354: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_4_354: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_4_354 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_iaw_4_354: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_iaw_4_354 ldxa [0x50]%asi, %r14 !Running_rw iaw_doit4_354: mov 0x38, %r18 iaw1_4_354: best_set_reg(0x00000000e0200000, %r20, %r19) or %r19, 0x1, %r19 stxa %r19, [%r18]0x50 stxa %r16, [0x60] %asi ! Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi ! restore %asi ta T_CHANGE_NONHPRIV .word 0xc3e90034 ! 474: PREFETCHA_R prefetcha [%r4, %r20] 0x01, #one_read .word 0x87a88a42 ! 475: FCMPd fcmpd %fcc, %f2, %f2 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_4_356)+56, 16, 16)) -> intp(mask2tid(0x4),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_4_356)&0xffffffff) +56, 16, 16)) -> intp(mask2tid(0x4),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_4_356: .word 0xa9817a0d ! 476: WR_SET_SOFTINT_I wr %r5, 0x1a0d, %set_softint trapasi_4_357: nop mov 0x10, %r1 ! (VA for ASI 0x4c) .word 0xd8904980 ! 477: LDUHA_R lduha [%r1, %r0] 0x4c, %r12 .word 0xc19fe040 ! 478: LDDFA_I ldda [%r31, 0x0040], %f0 donret_4_358: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_358-donret_4_358-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x007871fe | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x54d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (4) retry donretarg_4_358: .word 0xd8ffe03d ! 479: SWAPA_I swapa %r12, [%r31 + 0x003d] %asi invtsb_4_359: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 480: FBL fbl,a mondo_4_360: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r9, [%r0+0x3d0] %asi .word 0x9d914006 ! 481: WRPR_WSTATE_R wrpr %r5, %r6, %wstate .word 0xe19fdf20 ! 482: LDDFA_R ldda [%r31, %r0], %f16 br_badelay1_4_361: .word 0x3e800001 ! 1: BVC bvc,a .word 0xd937c012 ! 1: STQF_R - %f12, [%r18, %r31] .word 0xd9e7c031 ! 1: CASA_I casa [%r31] 0x 1, %r17, %r12 normalw .word 0xa9458000 ! 483: RD_SOFTINT_REG rd %softint, %r20 .word 0xdbe7c028 ! 1: CASA_I casa [%r31] 0x 1, %r8, %r13 .word 0x9f802e85 ! 484: SIR sir 0x0e85 .word 0xdb27e18c ! 485: STF_I st %f13, [0x018c, %r31] .word 0xda0fc000 ! 486: LDUB_R ldub [%r31 + %r0], %r13 .word 0x26800001 ! 487: BL bl,a pmu_4_362: nop setx 0xfffff264fffff643, %g1, %g7 .word 0xa3800007 ! 488: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8d902edc ! 489: WRPR_PSTATE_I wrpr %r0, 0x0edc, %pstate .word 0xda3fc000 ! 490: STD_R std %r13, [%r31 + %r0] donret_4_365: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_4_365-donret_4_365-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00cb6f64 | (20 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x567, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (4) done donretarg_4_365: .word 0xdaffe0b4 ! 491: SWAPA_I swapa %r13, [%r31 + 0x00b4] %asi .word 0xdb27e1c0 ! 492: STF_I st %f13, [0x01c0, %r31] .word 0xdaffc032 ! 493: SWAPA_R swapa %r13, [%r31 + %r18] 0x01 splash_cmpr_4_366: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 494: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xda5fc000 ! 495: LDX_R ldx [%r31 + %r0], %r13 .word 0x9ba7c9b2 ! 1: FDIVs fdivs %f31, %f18, %f13 .word 0x9f80381b ! 496: SIR sir 0x181b pmu_4_367: nop ta T_CHANGE_PRIV setx 0xfffffae5fffffe92, %g1, %g7 .word 0xa3800007 ! 497: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x4+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_4_368 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_4_368 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_4_368: ta T_CHANGE_NONHPRIV .word 0xa5414000 ! 498: RDPC rd %pc, %r18 change_to_randtl_4_369: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_4_369: .word 0x8f902000 ! 499: WRPR_TL_I wrpr %r0, 0x0000, %tl .word 0xe737c000 ! 500: STQF_R - %f19, [%r0, %r31] mondo_4_370: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r18, [%r0+0x3d8] %asi .word 0x9d90c004 ! 501: WRPR_WSTATE_R wrpr %r3, %r4, %wstate cmpenall_4_371: nop nop ta T_CHANGE_HPRIV rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 mov 0xff, %r9 sllx %r9, %r8, %r9 ! My core mask #else mov 0xff, %r9 ! My core mask #endif cmpenall_startwait4_371: mov 0x4, %r10 cas [%r23],%g0,%r10 !lock brz,a %r10, continue_cmpenall_4_371 nop cmpenall_wait4_371: ld [%r23], %r10 brnz %r10, cmpenall_wait4_371 nop ba,a cmpenall_startwait4_371 continue_cmpenall_4_371: ldxa [0x58]%asi, %r14 !Running_status wait_for_cmpstat_4_371: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r14 bne,a %xcc, wait_for_cmpstat_4_371 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 wait_for_cmpstat2_4_371: and %r16, %r9, %r16 !My core mask cmp %r14, %r16 bne,a %xcc, wait_for_cmpstat2_4_371 ldxa [0x58]%asi, %r16 !Running_status st %g0, [%r23] !clear lock nop nop ta T_CHANGE_PRIV wrpr %g0, %g0, %gl nop nop setx join_lbl_0_0, %g1, %g2 jmp %g2 nop fork_lbl_0_2: ta T_CHANGE_NONHPRIV br_longdelay1_2_0: .word 0x24ca8001 ! 1: BRLEZ brlez,a,pt %r10, .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate brnz,a,pt %r20, skip_2_1 brlez,a,pt %r18, skip_2_1 .align 1024 skip_2_1: .word 0xe7e7c020 ! 2: CASA_I casa [%r31] 0x 1, %r0, %r19 nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_2 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_2: ta T_CHANGE_NONHPRIV .word 0xe7e7e009 ! 3: CASA_R casa [%r31] %asi, %r9, %r19 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_3: ta T_CHANGE_NONHPRIV ! macro splash_decr_2_4: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r19, [%r1] 0x45 .word 0xa7848011 ! 5: WR_GRAPHICS_STATUS_REG_R wr %r18, %r17, %- .word 0x87aa4ad4 ! 6: FCMPEd fcmped %fcc, %f40, %f20 vahole_2_5: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe63fe1e0 ! 7: STD_I std %r19, [%r31 + 0x01e0] memptr_2_6: set user_data_start, %r31 .word 0x858378ec ! 8: WRCCR_I wr %r13, 0x18ec, %ccr .word 0x2e780001 ! 9: BPVS ceter_2_7: nop ta T_CHANGE_HPRIV mov 3, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0x9b410000 ! 10: RDTICK rd %tick, %r13 splash_lsu_2_8: nop ta T_CHANGE_HPRIV set 0xbccc9f7b, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 11: FBPULE fbule,a,pn %fcc0, brcommon1_2_9: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd06fe020 ! 1: LDSTUB_I ldstub %r8, [%r31 + 0x0020] ba,a .+8 jmpl %r27+0, %r27 .word 0x9f8030f8 ! 12: SIR sir 0x10f8 .word 0x22800001 ! 13: BE be,a pmu_2_10: nop setx 0xfffff392fffff6ca, %g1, %g7 .word 0xa3800007 ! 14: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x32780001 ! 15: BPNE pmu_2_11: nop ta T_CHANGE_PRIV setx 0xfffff583fffff839, %g1, %g7 .word 0xa3800007 ! 16: WR_PERF_COUNTER_R wr %r0, %r7, %- ibp_2_12: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x2, %r16 ibp_startwait2_12: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_ibp_2_12 mov (~0x2&0xf), %r16 ld [%r23], %r16 ibp_wait2_12: brnz %r16, ibp_wait2_12 ld [%r23], %r16 ba ibp_startwait2_12 mov 0x2, %r16 continue_ibp_2_12: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_2_12: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_2_12 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_ibp_2_12: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_ibp_2_12 ldxa [0x50]%asi, %r14 !Running_rw ibp_doit2_12: best_set_reg(0x0000004099c00792,%r19, %r20) stxa %r20, [%r18]0x42 stxa %r16, [0x60] %asi !Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi !restore %asi .word 0xc1bfdc00 ! 17: STDFA_R stda %f0, [%r0, %r31] ibp_2_13: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x2, %r16 ibp_startwait2_13: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_ibp_2_13 mov (~0x2&0xf), %r16 ld [%r23], %r16 ibp_wait2_13: brnz %r16, ibp_wait2_13 ld [%r23], %r16 ba ibp_startwait2_13 mov 0x2, %r16 continue_ibp_2_13: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_2_13: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_2_13 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_ibp_2_13: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_ibp_2_13 ldxa [0x50]%asi, %r14 !Running_rw ibp_doit2_13: best_set_reg(0x00000050edc792b1,%r19, %r20) stxa %r20, [%r18]0x42 stxa %r16, [0x60] %asi !Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi !restore %asi .word 0xe1bfd960 ! 18: STDFA_R stda %f16, [%r0, %r31] .word 0xd65fe128 ! 19: LDX_I ldx [%r31 + 0x0128], %r11 .word 0xd727e16c ! 20: STF_I st %f11, [0x016c, %r31] .word 0x81580000 ! 21: FLUSHW flushw #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_14) + 32, 16, 16)) -> intp(6,0,27) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_14)&0xffffffff) + 32, 16, 16)) -> intp(6,0,27) #else setx 0xec23930ccf54e058, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_14: .word 0x39400001 ! 22: FBPUGE fbuge,a,pn %fcc0, donret_2_15: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_15-donret_2_15-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x006a0aff | (0x4f << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1fcf, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) done donretarg_2_15: .word 0xd6ffe044 ! 23: SWAPA_I swapa %r11, [%r31 + 0x0044] %asi set 0x22fd, %l3 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT .word 0x93b247c3 ! 24: PDIST pdistn %d40, %d34, %d40 .word 0xe1bfde00 ! 25: STDFA_R stda %f16, [%r0, %r31] pmu_2_16: nop ta T_CHANGE_PRIV setx 0xfffffd0bfffff7e8, %g1, %g7 .word 0xa3800007 ! 26: WR_PERF_COUNTER_R wr %r0, %r7, %- vahole_2_17: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xd09fc02c ! 27: LDDA_R ldda [%r31, %r12] 0x01, %r8 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_18)+40, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_18)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_18: .word 0xa9823f67 ! 28: WR_SET_SOFTINT_I wr %r8, 0x1f67, %set_softint .word 0x9ba0016c ! 29: FABSq dis not found donret_2_20: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_20-donret_2_20-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x008cf890 | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x175f, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (2) .word 0x36800001 ! 1: BGE bge,a retry donretarg_2_20: .word 0xe2ffe0ad ! 30: SWAPA_I swapa %r17, [%r31 + 0x00ad] %asi splash_decr_2_21: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r10, [%r1] 0x45 .word 0xa7844008 ! 31: WR_GRAPHICS_STATUS_REG_R wr %r17, %r8, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_22) + 8, 16, 16)) -> intp(7,0,20) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_22)&0xffffffff) + 8, 16, 16)) -> intp(7,0,20) #else setx 0xcafc5c9a27396114, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_22: .word 0x39400001 ! 32: FBPUGE fbuge,a,pn %fcc0, memptr_2_23: set 0x60340000, %r31 .word 0x85833eb7 ! 33: WRCCR_I wr %r12, 0x1eb7, %ccr unsupttte_2_24: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xa9a409a1 ! 34: FDIVs fdivs %f16, %f1, %f20 brcommon3_2_25: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c030 ! 1: CASA_I casa [%r31] 0x 1, %r16, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xd29fe0b0 ! 35: LDDA_I ldda [%r31, + 0x00b0] %asi, %r9 jmptr_2_26: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 36: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_2_27: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 37: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_2_28: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 38: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_2_29: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r17, [%r0+0x3c0] %asi .word 0x9d92800d ! 39: WRPR_WSTATE_R wrpr %r10, %r13, %wstate brcommon3_2_30: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd26fe1e0 ! 1: LDSTUB_I ldstub %r9, [%r31 + 0x01e0] ba,a .+8 jmpl %r27+0, %r27 .word 0xd2bfc032 ! 40: STDA_R stda %r9, [%r31 + %r18] 0x01 .word 0xd2dfe1f0 ! 41: LDXA_I ldxa [%r31, + 0x01f0] %asi, %r9 .word 0xd327e0a4 ! 42: STF_I st %f9, [0x00a4, %r31] setx 0x2e577144d7ab7956, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_31: .word 0x39400001 ! 43: FBPUGE fbuge,a,pn %fcc0, mondo_2_32: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3e0] %asi .word 0x9d934005 ! 44: WRPR_WSTATE_R wrpr %r13, %r5, %wstate ceter_2_33: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa7410000 ! 45: RDTICK rd %tick, %r19 .word 0x91934013 ! 46: WRPR_PIL_R wrpr %r13, %r19, %pil splash_tba_2_35: ta T_CHANGE_PRIV setx 0x00000004003a0000, %r11, %r12 .word 0x8b90000c ! 47: WRPR_TBA_R wrpr %r0, %r12, %tba mondo_2_36: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3c0] %asi .word 0x9d940005 ! 48: WRPR_WSTATE_R wrpr %r16, %r5, %wstate .word 0xe2bfc031 ! 1: STDA_R stda %r17, [%r31 + %r17] 0x01 .word 0x9f80275d ! 49: SIR sir 0x075d br_longdelay2_2_37: .word 0x39400001 ! 1: FBPUGE fbuge,a,pn %fcc0, .word 0x24cfc001 ! 50: BRLEZ brlez,a,pt %r31, splash_cmpr_2_38: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 51: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_39 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_39: ta T_CHANGE_NONHPRIV .word 0xe3e7e010 ! 52: CASA_R casa [%r31] %asi, %r16, %r17 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_40)+40, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_40)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_40: .word 0xa984bae1 ! 53: WR_SET_SOFTINT_I wr %r18, 0x1ae1, %set_softint jmptr_2_41: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 54: JMPL_R jmpl %r27 + %r0, %r27 donret_2_42: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_42-donret_2_42-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00181ce7 | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1c87, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) retry donretarg_2_42: .word 0xe26fe0aa ! 55: LDSTUB_I ldstub %r17, [%r31 + 0x00aa] nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_43 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_43 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610060, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_43: ta T_CHANGE_NONHPRIV .word 0x93414000 ! 56: RDPC rd %pc, %r9 splash_hpstate_2_44: .word 0x81983bcf ! 57: WRHPR_HPSTATE_I wrhpr %r0, 0x1bcf, %hpstate .word 0x2a800001 ! 1: BCS bcs,a .word 0x8d903e39 ! 58: WRPR_PSTATE_I wrpr %r0, 0x1e39, %pstate mondo_2_46: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r11, [%r0+0x3e0] %asi .word 0x9d94c006 ! 59: WRPR_WSTATE_R wrpr %r19, %r6, %wstate mondo_2_47: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3c8] %asi .word 0x9d934010 ! 60: WRPR_WSTATE_R wrpr %r13, %r16, %wstate splash_hpstate_2_48: ta T_CHANGE_NONHPRIV .word 0x81982c0f ! 61: WRHPR_HPSTATE_I wrhpr %r0, 0x0c0f, %hpstate .word 0xd31fe0b0 ! 62: LDDF_I ldd [%r31, 0x00b0], %f9 vahole_2_49: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xc1bfd960 ! 63: STDFA_R stda %f0, [%r0, %r31] brcommon1_2_50: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c02c ! 1: CASA_I casa [%r31] 0x 1, %r12, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0x9f802d7b ! 64: SIR sir 0x0d7b splash_hpstate_2_51: ta T_CHANGE_NONHPRIV .word 0x81982d8e ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x0d8e, %hpstate .word 0x8d903382 ! 66: WRPR_PSTATE_I wrpr %r0, 0x1382, %pstate .word 0xe1bfe1e0 ! 67: STDFA_I stda %f16, [0x01e0, %r31] br_badelay1_2_54: .word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, .word 0xd337e190 ! 1: STQF_I - %f9, [0x0190, %r31] .word 0xd3e7c02a ! 1: CASA_I casa [%r31] 0x 1, %r10, %r9 normalw .word 0xa7458000 ! 68: RD_SOFTINT_REG rd %softint, %r19 .word 0xd82fe0d1 ! 69: STB_I stb %r12, [%r31 + 0x00d1] donret_2_55: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_55-donret_2_55-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00e6f20e | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x795, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) .word 0x2c800001 ! 1: BNEG bneg,a done donretarg_2_55: .word 0x9ba449c7 ! 70: FDIVd fdivd %f48, %f38, %f44 nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_56 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_56: ta T_CHANGE_NONHPRIV .word 0xe7e7e00c ! 71: CASA_R casa [%r31] %asi, %r12, %r19 .word 0xc19fe020 ! 72: LDDFA_I ldda [%r31, 0x0020], %f0 mondo_2_57: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r4, [%r0+0x3e0] %asi .word 0x9d948014 ! 73: WRPR_WSTATE_R wrpr %r18, %r20, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe65fc000 ! 74: LDX_R ldx [%r31 + %r0], %r19 .word 0xe727c000 ! 75: STF_R st %f19, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_58 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_58: ta T_CHANGE_NONHPRIV .word 0xe7e7e010 ! 76: CASA_R casa [%r31] %asi, %r16, %r19 .word 0x2a800001 ! 77: BCS bcs,a nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe65fc000 ! 78: LDX_R ldx [%r31 + %r0], %r19 .word 0x9353c000 ! 79: RDPR_FQ donret_2_59: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_59-donret_2_59-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00f8523f | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x4c5, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) done donretarg_2_59: .word 0xa7a1c9ca ! 80: FDIVd fdivd %f38, %f10, %f50 .word 0xda8fe0c0 ! 81: LDUBA_I lduba [%r31, + 0x00c0] %asi, %r13 .word 0xe19fde00 ! 82: LDDFA_R ldda [%r31, %r0], %f16 change_to_randtl_2_60: ta T_CHANGE_PRIV ! macro done_change_to_randtl_2_60: .word 0x8f902000 ! 83: WRPR_TL_I wrpr %r0, 0x0000, %tl splash_cmpr_2_61: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 84: WR_STICK_CMPR_REG_R wr %r0, %r17, %- jmptr_2_62: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 85: JMPL_R jmpl %r27 + %r0, %r27 mondo_2_63: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3d8] %asi .word 0x9d94c013 ! 86: WRPR_WSTATE_R wrpr %r19, %r19, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_64)+8, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_64)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_64: .word 0xa982e608 ! 87: WR_SET_SOFTINT_I wr %r11, 0x0608, %set_softint .word 0xdb37e19a ! 88: STQF_I - %f13, [0x019a, %r31] mondo_2_65: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3c0] %asi .word 0x9d90c011 ! 89: WRPR_WSTATE_R wrpr %r3, %r17, %wstate .word 0xda0fc000 ! 90: LDUB_R ldub [%r31 + %r0], %r13 memptr_2_66: set user_data_start, %r31 .word 0x8582ab08 ! 91: WRCCR_I wr %r10, 0x0b08, %ccr jmptr_2_67: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 92: JMPL_R jmpl %r27 + %r0, %r27 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_68: ta T_CHANGE_NONPRIV ! macro otherw mov 0xb1, %r30 .word 0x91d0001e ! 94: Tcc_R ta icc_or_xcc, %r0 + %r30 vahole_2_69: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xda3fe0a0 ! 95: STD_I std %r13, [%r31 + 0x00a0] pmu_2_70: nop setx 0xfffff5c4fffff0b1, %g1, %g7 .word 0xa3800007 ! 96: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_2_71: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 97: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_2_72: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 98: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_hpstate_2_73: .word 0x81982617 ! 99: WRHPR_HPSTATE_I wrhpr %r0, 0x0617, %hpstate donret_2_74: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_74-donret_2_74-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x003b03cb | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x179e, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) .word 0x2c800001 ! 1: BNEG bneg,a retry donretarg_2_74: .word 0xda6fe004 ! 100: LDSTUB_I ldstub %r13, [%r31 + 0x0004] change_to_randtl_2_75: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_2_75: .word 0x8f902000 ! 101: WRPR_TL_I wrpr %r0, 0x0000, %tl unsupttte_2_76: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xc3e88032 ! 102: PREFETCHA_R prefetcha [%r2, %r18] 0x01, #one_read .word 0x8d9033c4 ! 103: WRPR_PSTATE_I wrpr %r0, 0x13c4, %pstate intveclr_2_78: nop ta T_CHANGE_HPRIV setx 0xc25d5cdc401e5bfe, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 104: FBPLG fblg,a,pn %fcc0, donret_2_79: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_79-donret_2_79-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0028ac84 | (20 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x49d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) done donretarg_2_79: .word 0xa3a509d2 ! 105: FDIVd fdivd %f20, %f18, %f48 .word 0xe4d7e088 ! 106: LDSHA_I ldsha [%r31, + 0x0088] %asi, %r18 tagged_2_80: tsubcctv %r20, 0x1287, %r6 .word 0xe407e0f4 ! 107: LDUW_I lduw [%r31 + 0x00f4], %r18 nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_81 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_81 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_81: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 108: RDPC rd %pc, %r16 splash_lsu_2_82: nop ta T_CHANGE_HPRIV set 0x64c4ce21, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 109: FBPULE fbule,a,pn %fcc0, splash_cmpr_2_83: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 110: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_htba_2_84: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 111: WRHPR_HTBA_R wrhpr %r0, %r12, %htba mondo_2_85: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3d8] %asi .word 0x9d950014 ! 112: WRPR_WSTATE_R wrpr %r20, %r20, %wstate .word 0xc1bfc3e0 ! 113: STDFA_R stda %f0, [%r0, %r31] .word 0xe19fc2c0 ! 114: LDDFA_R ldda [%r31, %r0], %f16 splash_cmpr_2_86: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 115: WR_TICK_CMPR_REG_R wr %r0, %r17, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_87)+16, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_87)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_87: .word 0xa9846f2a ! 116: WR_SET_SOFTINT_I wr %r17, 0x0f2a, %set_softint brcommon3_2_88: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd137c00c ! 1: STQF_R - %f8, [%r12, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd13fc014 ! 117: STDF_R std %f8, [%r20, %r31] .word 0x24800001 ! 1: BLE ble,a .word 0x8d903a13 ! 118: WRPR_PSTATE_I wrpr %r0, 0x1a13, %pstate .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_90: ta T_CHANGE_NONPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_91)+32, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_91)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_91: .word 0xa981aefa ! 120: WR_SET_SOFTINT_I wr %r6, 0x0efa, %set_softint splash_cmpr_2_92: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 .word 0xb3800011 ! 121: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x95a00162 ! 122: FABSq dis not found ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 123: MEMBAR membar #LoadLoad | #Lookaside splash_cmpr_2_95: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 124: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xc1bfd920 ! 125: STDFA_R stda %f0, [%r0, %r31] jmptr_2_96: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 126: JMPL_R jmpl %r27 + %r0, %r27 setx 0xe585bd987e17a571, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_97: .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, pmu_2_98: nop ta T_CHANGE_PRIV setx 0xfffffeacfffff25b, %g1, %g7 .word 0xa3800007 ! 128: WR_PERF_COUNTER_R wr %r0, %r7, %- donret_2_99: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_99-donret_2_99-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x008d709e | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1dc, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) done donretarg_2_99: .word 0x93a209d4 ! 129: FDIVd fdivd %f8, %f20, %f40 pmu_2_100: nop setx 0xfffffc0dfffff9b9, %g1, %g7 .word 0xa3800007 ! 130: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_2_101: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3e8] %asi .word 0x9d94c012 ! 131: WRPR_WSTATE_R wrpr %r19, %r18, %wstate nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_102 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_102: ta T_CHANGE_NONHPRIV .word 0xd9e7e013 ! 132: CASA_R casa [%r31] %asi, %r19, %r12 .word 0xc1bfd960 ! 133: STDFA_R stda %f0, [%r0, %r31] splash_tba_2_103: ta T_CHANGE_PRIV setx 0x00000004003a0000, %r11, %r12 .word 0x8b90000c ! 134: WRPR_TBA_R wrpr %r0, %r12, %tba splash_lsu_2_104: nop ta T_CHANGE_HPRIV set 0x4d035109, %r2 mov 0x3, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 135: FBPULE fbule,a,pn %fcc0, setx 0xcf1531b4076dbd56, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_105: .word 0x39400001 ! 136: FBPUGE fbuge,a,pn %fcc0, change_to_randtl_2_106: ta T_CHANGE_PRIV ! macro done_change_to_randtl_2_106: .word 0x8f902000 ! 137: WRPR_TL_I wrpr %r0, 0x0000, %tl nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_107 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_107 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100a0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_107: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 138: RDPC rd %pc, %r16 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_108)+32, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_108)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_108: .word 0xa9842f8b ! 139: WR_SET_SOFTINT_I wr %r16, 0x0f8b, %set_softint br_badelay1_2_109: .word 0x24cfc001 ! 1: BRLEZ brlez,a,pt %r31, .word 0xe9327413 ! 1: STQF_I - %f20, [0x1413, %r9] .word 0x9bb7c4cc ! 1: FCMPNE32 fcmpne32 %d62, %d12, %r13 normalw .word 0xa3458000 ! 140: RD_SOFTINT_REG rd %softint, %r17 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_110: ta T_CHANGE_NONHPRIV ! macro vahole_2_111: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xa5b24494 ! 142: FCMPLE32 fcmple32 %d40, %d20, %r18 nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_112 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_112 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610080, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_112: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 143: RDPC rd %pc, %r17 .word 0xd91fe1c8 ! 144: LDDF_I ldd [%r31, 0x01c8], %f12 setx 0x0cb6df9e4288d1a5, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_113: .word 0x39400001 ! 145: FBPUGE fbuge,a,pn %fcc0, .word 0xa6d44011 ! 146: UMULcc_R umulcc %r17, %r17, %r19 splash_cmpr_2_114: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 147: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_2_115: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3e8] %asi .word 0x9d950006 ! 148: WRPR_WSTATE_R wrpr %r20, %r6, %wstate change_to_randtl_2_116: ta T_CHANGE_PRIV ! macro done_change_to_randtl_2_116: .word 0x8f902001 ! 149: WRPR_TL_I wrpr %r0, 0x0001, %tl change_to_randtl_2_117: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_2_117: .word 0x8f902002 ! 150: WRPR_TL_I wrpr %r0, 0x0002, %tl #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_118) + 16, 16, 16)) -> intp(6,0,5) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_118)&0xffffffff) + 16, 16, 16)) -> intp(6,0,5) #else setx 0xb741edae9eba3d6a, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_118: .word 0x39400001 ! 151: FBPUGE fbuge,a,pn %fcc0, memptr_2_119: set 0x60740000, %r31 .word 0x8580b76e ! 152: WRCCR_I wr %r2, 0x176e, %ccr nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe05fc000 ! 153: LDX_R ldx [%r31 + %r0], %r16 .word 0x8d9037f4 ! 154: WRPR_PSTATE_I wrpr %r0, 0x17f4, %pstate mondo_2_121: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r1, [%r0+0x3e8] %asi .word 0x9d90c00b ! 155: WRPR_WSTATE_R wrpr %r3, %r11, %wstate .word 0x8d903ee2 ! 156: WRPR_PSTATE_I wrpr %r0, 0x1ee2, %pstate .word 0x83d02033 ! 157: Tcc_I te icc_or_xcc, %r0 + 51 setx 0x1c5f289d112e95b8, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_123: .word 0x39400001 ! 158: FBPUGE fbuge,a,pn %fcc0, .word 0xc3688012 ! 159: PREFETCH_R prefetch [%r2 + %r18], #one_read fpinit_2_124: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x8da009c4 ! 160: FDIVd fdivd %f0, %f4, %f6 splash_hpstate_2_125: ta T_CHANGE_NONHPRIV .word 0x37400001 ! 1: FBPGE fbge,a,pn %fcc0, .word 0x81983c1d ! 161: WRHPR_HPSTATE_I wrhpr %r0, 0x1c1d, %hpstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe05fc000 ! 162: LDX_R ldx [%r31 + %r0], %r16 nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_126 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_126: ta T_CHANGE_NONHPRIV .word 0xe1e7e009 ! 163: CASA_R casa [%r31] %asi, %r9, %r16 nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_127 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00161fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_127: ta T_CHANGE_NONHPRIV .word 0xe1e7e010 ! 164: CASA_R casa [%r31] %asi, %r16, %r16 pmu_2_128: nop ta T_CHANGE_PRIV setx 0xfffff064fffff2d8, %g1, %g7 .word 0xa3800007 ! 165: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_2_129: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 166: WR_STICK_CMPR_REG_R wr %r0, %r17, %- ceter_2_130: nop ta T_CHANGE_HPRIV mov 2, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa5410000 ! 167: RDTICK rd %tick, %r18 jmptr_2_131: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 168: JMPL_R jmpl %r27 + %r0, %r27 .word 0x996a8014 ! 169: SDIVX_R sdivx %r10, %r20, %r12 splash_cmpr_2_132: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 .word 0xaf800011 ! 170: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xd01fc000 ! 171: LDD_R ldd [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_133 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_133 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610050, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_133: ta T_CHANGE_NONHPRIV .word 0x99414000 ! 172: RDPC rd %pc, %r12 jmptr_2_134: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 173: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe09fd060 ! 174: LDDA_R ldda [%r31, %r0] 0x83, %r16 setx 0x12d46cfc7feb99d0, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_135: .word 0x39400001 ! 175: FBPUGE fbuge,a,pn %fcc0, splash_cmpr_2_136: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 176: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe0d7e0e8 ! 177: LDSHA_I ldsha [%r31, + 0x00e8] %asi, %r16 splash_cmpr_2_137: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 178: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_2_138: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r11, [%r0+0x3e0] %asi .word 0x9d914012 ! 179: WRPR_WSTATE_R wrpr %r5, %r18, %wstate change_to_randtl_2_139: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_2_139: .word 0x8f902001 ! 180: WRPR_TL_I wrpr %r0, 0x0001, %tl jmptr_2_140: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 181: JMPL_R jmpl %r27 + %r0, %r27 .word 0x9190c013 ! 182: WRPR_PIL_R wrpr %r3, %r19, %pil donret_2_142: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_142-donret_2_142-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0034a3a9 | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x745, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) retry donretarg_2_142: .word 0xa9a149d2 ! 183: FDIVd fdivd %f36, %f18, %f20 .word 0xe6c7e110 ! 184: LDSWA_I ldswa [%r31, + 0x0110] %asi, %r19 .word 0xe1bfdb60 ! 185: STDFA_R stda %f16, [%r0, %r31] .word 0xe6cfe000 ! 186: LDSBA_I ldsba [%r31, + 0x0000] %asi, %r19 splash_cmpr_2_143: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 187: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xa480c014 ! 188: ADDcc_R addcc %r3, %r20, %r18 ibp_2_144: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x2, %r16 ibp_startwait2_144: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_ibp_2_144 mov (~0x2&0xf), %r16 ld [%r23], %r16 ibp_wait2_144: brnz %r16, ibp_wait2_144 ld [%r23], %r16 ba ibp_startwait2_144 mov 0x2, %r16 continue_ibp_2_144: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_2_144: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_2_144 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_ibp_2_144: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_ibp_2_144 ldxa [0x50]%asi, %r14 !Running_rw ibp_doit2_144: best_set_reg(0x00000040f4d2b1c2,%r19, %r20) stxa %r20, [%r18]0x42 stxa %r16, [0x60] %asi !Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi !restore %asi ta T_CHANGE_NONHPRIV .word 0xe19fe1a0 ! 189: LDDFA_I ldda [%r31, 0x01a0], %f16 ceter_2_145: nop ta T_CHANGE_HPRIV mov 4, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x95410000 ! 190: RDTICK rd %tick, %r10 ceter_2_146: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x95410000 ! 191: RDTICK rd %tick, %r10 setx 0x7ff3efd293c7a0c6, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_147: .word 0x39400001 ! 192: FBPUGE fbuge,a,pn %fcc0, invtsb_2_148: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 193: FBL fbl,a .word 0xa5a0016d ! 194: FABSq dis not found .word 0xe6c7e180 ! 195: LDSWA_I ldswa [%r31, + 0x0180] %asi, %r19 splash_lsu_2_150: nop ta T_CHANGE_HPRIV set 0x830d39bf, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 196: FBPULE fbule,a,pn %fcc0, .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_151: ta T_CHANGE_NONPRIV ! macro .word 0xe65fe128 ! 198: LDX_I ldx [%r31 + 0x0128], %r19 splash_hpstate_2_152: ta T_CHANGE_NONHPRIV .word 0x22800001 ! 1: BE be,a .word 0x819835c9 ! 199: WRHPR_HPSTATE_I wrhpr %r0, 0x15c9, %hpstate .word 0xa353c000 ! 200: RDPR_FQ .word 0xd297c030 ! 1: LDUHA_R lduha [%r31, %r16] 0x01, %r9 .word 0x9f8037bd ! 201: SIR sir 0x17bd mondo_2_153: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r8, [%r0+0x3c8] %asi .word 0x9d944014 ! 202: WRPR_WSTATE_R wrpr %r17, %r20, %wstate jmptr_2_154: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 203: JMPL_R jmpl %r27 + %r0, %r27 bne skip_2_155 fbuge skip_2_155 .align 2048 skip_2_155: .word 0xa7b1c4c1 ! 204: FCMPNE32 fcmpne32 %d38, %d32, %r19 pmu_2_156: nop ta T_CHANGE_PRIV setx 0xfffffc4bfffff508, %g1, %g7 .word 0xa3800007 ! 205: WR_PERF_COUNTER_R wr %r0, %r7, %- setx 0x7bbb66456e0e64c3, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_157: .word 0x39400001 ! 206: FBPUGE fbuge,a,pn %fcc0, .word 0xe677e159 ! 207: STX_I stx %r19, [%r31 + 0x0159] brcommon2_2_158: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xd7124014 ! 1: LDQF_R - [%r9, %r20], %f11 ba,a .+8 jmpl %r27+0, %r27 .word 0xc1bfe080 ! 208: STDFA_I stda %f0, [0x0080, %r31] .word 0x94f90010 ! 209: SDIVcc_R sdivcc %r4, %r16, %r10 .word 0xd897e1b8 ! 210: LDUHA_I lduha [%r31, + 0x01b8] %asi, %r12 .word 0x3c800001 ! 211: BPOS bpos,a change_to_randtl_2_159: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_2_159: .word 0x8f902000 ! 212: WRPR_TL_I wrpr %r0, 0x0000, %tl tagged_2_160: tsubcctv %r16, 0x14ca, %r12 .word 0xd807e118 ! 213: LDUW_I lduw [%r31 + 0x0118], %r12 br_badelay1_2_161: .word 0x26800001 ! 1: BL bl,a .word 0xd937c012 ! 1: STQF_R - %f12, [%r18, %r31] .word 0x24cfc001 ! 1: BRLEZ brlez,a,pt %r31, normalw .word 0x91458000 ! 214: RD_SOFTINT_REG rd %softint, %r8 pmu_2_162: nop setx 0xfffff0c0fffff09d, %g1, %g7 .word 0xa3800007 ! 215: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 216: WRTICK_R wr %r0, %r17, %tick pmu_2_164: nop ta T_CHANGE_PRIV setx 0xfffffef5fffff1c4, %g1, %g7 .word 0xa3800007 ! 217: WR_PERF_COUNTER_R wr %r0, %r7, %- otherw mov 0xb1, %r30 .word 0x83d0001e ! 218: Tcc_R te icc_or_xcc, %r0 + %r30 .word 0xc1bfdb60 ! 219: STDFA_R stda %f0, [%r0, %r31] .word 0xe1bfdf20 ! 220: STDFA_R stda %f16, [%r0, %r31] .word 0xe1bfe1a0 ! 221: STDFA_I stda %f16, [0x01a0, %r31] setx 0x80db2ee821a3bb7c, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_165: .word 0x39400001 ! 222: FBPUGE fbuge,a,pn %fcc0, br_longdelay1_2_166: .word 0x2b400001 ! 1: FBPUG fbug,a,pn %fcc0, .word 0xbfefc000 ! 223: RESTORE_R restore %r31, %r0, %r31 nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_167 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_167: ta T_CHANGE_NONHPRIV .word 0xe1e7e00a ! 224: CASA_R casa [%r31] %asi, %r10, %r16 jmptr_2_168: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 225: JMPL_R jmpl %r27 + %r0, %r27 setx 0x5cd2e43c641b7fc3, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_169: .word 0x39400001 ! 226: FBPUGE fbuge,a,pn %fcc0, mondo_2_170: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3c8] %asi .word 0x9d950002 ! 227: WRPR_WSTATE_R wrpr %r20, %r2, %wstate splash_cmpr_2_171: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 228: WR_STICK_CMPR_REG_R wr %r0, %r17, %- pmu_2_172: nop ta T_CHANGE_PRIV setx 0xfffff2c9fffffe34, %g1, %g7 .word 0xa3800007 ! 229: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_2_173: nop ta T_CHANGE_HPRIV set 0xed9afae1, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 230: FBPULE fbule,a,pn %fcc0, mondo_2_174: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r11, [%r0+0x3e0] %asi .word 0x9d934008 ! 231: WRPR_WSTATE_R wrpr %r13, %r8, %wstate memptr_2_175: set 0x60740000, %r31 .word 0x85823c96 ! 232: WRCCR_I wr %r8, 0x1c96, %ccr mondo_2_176: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r5, [%r0+0x3c0] %asi .word 0x9d92c00b ! 233: WRPR_WSTATE_R wrpr %r11, %r11, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_177)+0, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_177)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_177: .word 0xa984f9da ! 234: WR_SET_SOFTINT_I wr %r19, 0x19da, %set_softint splash_lsu_2_178: nop ta T_CHANGE_HPRIV set 0xf11d83bb, %r2 mov 0x1, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 235: FBPULE fbule,a,pn %fcc0, pmu_2_179: nop setx 0xfffffd53fffffce0, %g1, %g7 .word 0xa3800007 ! 236: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_2_180: nop ta T_CHANGE_HPRIV set 0x64ca957c, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 237: FBPULE fbule,a,pn %fcc0, splash_cmpr_2_181: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 238: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe057e108 ! 239: LDSH_I ldsh [%r31 + 0x0108], %r16 donret_2_182: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_182-donret_2_182-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00501989 | (0x82 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1ec7, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) retry donretarg_2_182: .word 0xe0ffe1f1 ! 240: SWAPA_I swapa %r16, [%r31 + 0x01f1] %asi .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_183: ta T_CHANGE_NONPRIV ! macro .word 0xc1bfe060 ! 242: STDFA_I stda %f0, [0x0060, %r31] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_184)+40, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_184)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_184: .word 0xa985322c ! 243: WR_SET_SOFTINT_I wr %r20, 0x122c, %set_softint unsupttte_2_185: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x97a1c9a1 ! 244: FDIVs fdivs %f7, %f1, %f11 .word 0x2a800001 ! 245: BCS bcs,a nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_186 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_186 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610040, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_186: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 246: RDPC rd %pc, %r17 setx 0x669359604719d9a4, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_187: .word 0x39400001 ! 247: FBPUGE fbuge,a,pn %fcc0, pmu_2_188: nop setx 0xfffffd9dfffff53d, %g1, %g7 .word 0xa3800007 ! 248: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_2_189: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 249: WR_STICK_CMPR_REG_R wr %r0, %r17, %- donret_2_190: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_190-donret_2_190-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00ccec26 | (0x8a << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x17cd, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (2) retry donretarg_2_190: .word 0x95a049d1 ! 250: FDIVd fdivd %f32, %f48, %f10 memptr_2_191: set 0x60340000, %r31 .word 0x8583315d ! 251: WRCCR_I wr %r12, 0x115d, %ccr .word 0xe49fd160 ! 252: LDDA_R ldda [%r31, %r0] 0x8b, %r18 invtsb_2_192: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 253: FBL fbl,a nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_193 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_193 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_193: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 254: RDPC rd %pc, %r17 splash_lsu_2_194: nop ta T_CHANGE_HPRIV set 0xe39c5958, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 255: FBPULE fbule,a,pn %fcc0, .word 0xa553c000 ! 256: RDPR_FQ vahole_2_195: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xe8bfc030 ! 257: STDA_R stda %r20, [%r31 + %r16] 0x01 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_196) + 0, 16, 16)) -> intp(2,0,23) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_196)&0xffffffff) + 0, 16, 16)) -> intp(2,0,23) #else setx 0xdb1e20794ef37996, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_196: .word 0x39400001 ! 258: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_197 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_197: ta T_CHANGE_NONHPRIV .word 0xe9e7e00c ! 259: CASA_R casa [%r31] %asi, %r12, %r20 .word 0xe8c7e190 ! 260: LDSWA_I ldswa [%r31, + 0x0190] %asi, %r20 vahole_2_198: nop ta T_CHANGE_NONHPRIV setx vahole_target3, %r18, %r27 jmpl %r27+0, %r27 .word 0xa7b4c483 ! 261: FCMPLE32 fcmple32 %d50, %d34, %r19 .word 0xd697e068 ! 262: LDUHA_I lduha [%r31, + 0x0068] %asi, %r11 .word 0xd73fc000 ! 263: STDF_R std %f11, [%r0, %r31] .word 0xd68fe010 ! 264: LDUBA_I lduba [%r31, + 0x0010] %asi, %r11 pmu_2_199: nop setx 0xfffff9c8fffffc7b, %g1, %g7 .word 0xa3800007 ! 265: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 266: WRTICK_R wr %r0, %r17, %tick vahole_2_201: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0x9ba449cc ! 267: FDIVd fdivd %f48, %f12, %f44 .word 0x23400001 ! 1: FBPNE fbne,a,pn %fcc0, .word 0x8d90238f ! 268: WRPR_PSTATE_I wrpr %r0, 0x038f, %pstate .word 0xe097e1d8 ! 269: LDUHA_I lduha [%r31, + 0x01d8] %asi, %r16 nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_203 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_203: ta T_CHANGE_NONHPRIV .word 0xe1e7e00c ! 270: CASA_R casa [%r31] %asi, %r12, %r16 .word 0xe07fe1e0 ! 271: SWAP_I swap %r16, [%r31 + 0x01e0] .word 0x28780001 ! 272: BPLEU cwp_2_204: set user_data_start, %o7 .word 0x93902004 ! 273: WRPR_CWP_I wrpr %r0, 0x0004, %cwp pmu_2_205: nop ta T_CHANGE_PRIV setx 0xfffff1aefffff35c, %g1, %g7 .word 0xa3800007 ! 274: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_2_206: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3e8] %asi .word 0x9d94c002 ! 275: WRPR_WSTATE_R wrpr %r19, %r2, %wstate br_badelay3_2_207: .word 0x32800001 ! 1: BNE bne,a .word 0x34800001 ! 1: BG bg,a .word 0xa1a00545 ! 1: FSQRTd fsqrt .word 0xa3a08822 ! 276: FADDs fadds %f2, %f2, %f17 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_208: ta T_CHANGE_NONPRIV ! macro .word 0x89800011 ! 278: WRTICK_R wr %r0, %r17, %tick mondo_2_210: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r18, [%r0+0x3c0] %asi .word 0x9d90c006 ! 279: WRPR_WSTATE_R wrpr %r3, %r6, %wstate donret_2_211: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_211-donret_2_211-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x006ba6dc | (28 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x175d, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (2) done donretarg_2_211: .word 0xd86fe108 ! 280: LDSTUB_I ldstub %r12, [%r31 + 0x0108] donret_2_212: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_212-donret_2_212-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00dacb13 | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x9d5, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (2) retry donretarg_2_212: .word 0xa9a4c9d2 ! 281: FDIVd fdivd %f50, %f18, %f20 brcommon1_2_213: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xe9e7c030 ! 1: CASA_I casa [%r31] 0x 1, %r16, %r20 ba,a .+8 jmpl %r27+0, %r27 .word 0x9f80295f ! 282: SIR sir 0x095f .word 0xe19fe1c0 ! 283: LDDFA_I ldda [%r31, 0x01c0], %f16 .word 0x8d903a43 ! 284: WRPR_PSTATE_I wrpr %r0, 0x1a43, %pstate splash_cmpr_2_215: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 285: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_2_216: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 286: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_2_217: ta T_CHANGE_NONPRIV ! macro .word 0x2cccc001 ! 1: BRGZ brgz,a,pt %r19, .word 0x8d9037a3 ! 288: WRPR_PSTATE_I wrpr %r0, 0x17a3, %pstate splash_lsu_2_219: nop ta T_CHANGE_HPRIV set 0x47490cfc, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 289: FBPULE fbule,a,pn %fcc0, donret_2_220: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_220-donret_2_220-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0076dc42 | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1775, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) .word 0x3c800001 ! 1: BPOS bpos,a retry donretarg_2_220: .word 0xd66fe1b3 ! 290: LDSTUB_I ldstub %r11, [%r31 + 0x01b3] .word 0x91d02034 ! 291: Tcc_I ta icc_or_xcc, %r0 + 52 setx 0xf2dc7f9fe0242683, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_221: .word 0x39400001 ! 292: FBPUGE fbuge,a,pn %fcc0, brcommon3_2_222: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd737e120 ! 1: STQF_I - %f11, [0x0120, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd71fe190 ! 293: LDDF_I ldd [%r31, 0x0190], %f11 .word 0xd6d7e0e8 ! 294: LDSHA_I ldsha [%r31, + 0x00e8] %asi, %r11 pmu_2_223: nop ta T_CHANGE_PRIV setx 0xfffff818fffffe8b, %g1, %g7 .word 0xa3800007 ! 295: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xa3a00162 ! 296: FABSq dis not found #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_225)+0, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_225)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_225: .word 0xa984a026 ! 297: WR_SET_SOFTINT_I wr %r18, 0x0026, %set_softint memptr_2_226: set 0x60540000, %r31 .word 0x8584b6a0 ! 298: WRCCR_I wr %r18, 0x16a0, %ccr mondo_2_227: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r1, [%r0+0x3d8] %asi .word 0x9d94800a ! 299: WRPR_WSTATE_R wrpr %r18, %r10, %wstate .word 0xd297e060 ! 300: LDUHA_I lduha [%r31, + 0x0060] %asi, %r9 vahole_2_228: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0x87ac4a54 ! 301: FCMPd fcmpd %fcc, %f48, %f20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_229)+40, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_229)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_229: .word 0xa984332e ! 302: WR_SET_SOFTINT_I wr %r16, 0x132e, %set_softint .word 0x8d90372f ! 303: WRPR_PSTATE_I wrpr %r0, 0x172f, %pstate vahole_2_231: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xc32fc011 ! 304: STXFSR_R st-sfr %f1, [%r17, %r31] trapasi_2_232: nop mov 0x18, %r1 ! (VA for ASI 0x4c) .word 0xe8904980 ! 305: LDUHA_R lduha [%r1, %r0] 0x4c, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_233)+56, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_233)&0xffffffff) +56, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_233: .word 0xa984e373 ! 306: WR_SET_SOFTINT_I wr %r19, 0x0373, %set_softint #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_234) + 32, 16, 16)) -> intp(4,0,25) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_234)&0xffffffff) + 32, 16, 16)) -> intp(4,0,25) #else setx 0xfbcc493a00cf71d2, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_234: .word 0x39400001 ! 307: FBPUGE fbuge,a,pn %fcc0, .word 0xe83fc000 ! 308: STD_R std %r20, [%r31 + %r0] pmu_2_235: nop ta T_CHANGE_PRIV setx 0xfffffcc3fffff493, %g1, %g7 .word 0xa3800007 ! 309: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_236 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_236 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_236: ta T_CHANGE_NONHPRIV .word 0xa3414000 ! 310: RDPC rd %pc, %r17 nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_237 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_237: ta T_CHANGE_NONHPRIV .word 0xd1e7e009 ! 311: CASA_R casa [%r31] %asi, %r9, %r8 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_238: ta T_CHANGE_NONPRIV ! macro nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_239 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_239: ta T_CHANGE_NONHPRIV .word 0xd1e7e008 ! 313: CASA_R casa [%r31] %asi, %r8, %r8 .word 0xd03fc008 ! 1: STD_R std %r8, [%r31 + %r8] .word 0x9f80339d ! 314: SIR sir 0x139d .word 0x93d02032 ! 315: Tcc_I tne icc_or_xcc, %r0 + 50 splash_cmpr_2_240: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 316: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_2_241: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r6, [%r0+0x3e0] %asi .word 0x9d948014 ! 317: WRPR_WSTATE_R wrpr %r18, %r20, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xd05fc000 ! 318: LDX_R ldx [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_242 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_242: ta T_CHANGE_NONHPRIV .word 0xd1e7e00c ! 319: CASA_R casa [%r31] %asi, %r12, %r8 br_longdelay1_2_243: .word 0x2f400001 ! 1: FBPU fbu,a,pn %fcc0, .word 0x9d97c000 ! 320: WRPR_WSTATE_R wrpr %r31, %r0, %wstate splash_cmpr_2_244: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 321: WR_TICK_CMPR_REG_R wr %r0, %r17, %- pmu_2_245: nop ta T_CHANGE_PRIV setx 0xfffffcb5fffff1d6, %g1, %g7 .word 0xa3800007 ! 322: WR_PERF_COUNTER_R wr %r0, %r7, %- pmu_2_246: nop setx 0xfffff104fffff7bc, %g1, %g7 .word 0xa3800007 ! 323: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xd127c000 ! 324: STF_R st %f8, [%r0, %r31] .word 0x89800011 ! 325: WRTICK_R wr %r0, %r17, %tick .word 0xa3a00171 ! 326: FABSq dis not found mondo_2_249: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r11, [%r0+0x3c0] %asi .word 0x9d944006 ! 327: WRPR_WSTATE_R wrpr %r17, %r6, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_250) + 56, 16, 16)) -> intp(5,0,21) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_250)&0xffffffff) + 56, 16, 16)) -> intp(5,0,21) #else setx 0xac94d49751b23600, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_250: .word 0x39400001 ! 328: FBPUGE fbuge,a,pn %fcc0, donret_2_251: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_251-donret_2_251-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x003996de | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x13a4, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (2) .word 0x3a800001 ! 1: BCC bcc,a done donretarg_2_251: .word 0xa1a4c9d1 ! 329: FDIVd fdivd %f50, %f48, %f16 .word 0xd4c7e118 ! 330: LDSWA_I ldswa [%r31, + 0x0118] %asi, %r10 .word 0xc1bfe1c0 ! 331: STDFA_I stda %f0, [0x01c0, %r31] nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xd45fc000 ! 332: LDX_R ldx [%r31 + %r0], %r10 br_badelay3_2_252: .word 0x20800001 ! 1: BN bn,a .word 0x8b4d5252 ! Random illegal ? .word 0xa1a00551 ! 1: FSQRTd fsqrt .word 0x93a34825 ! 333: FADDs fadds %f13, %f5, %f9 splash_hpstate_2_253: .word 0x24cc8001 ! 1: BRLEZ brlez,a,pt %r18, .word 0x81983e07 ! 334: WRHPR_HPSTATE_I wrhpr %r0, 0x1e07, %hpstate mondo_2_254: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r6, [%r0+0x3c0] %asi .word 0x9d918013 ! 335: WRPR_WSTATE_R wrpr %r6, %r19, %wstate .word 0xe33fc00a ! 1: STDF_R std %f17, [%r10, %r31] .word 0x9f802070 ! 336: SIR sir 0x0070 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_2_255: ta T_CHANGE_NONHPRIV ! macro .word 0xe277e1fb ! 338: STX_I stx %r17, [%r31 + 0x01fb] pmu_2_256: nop ta T_CHANGE_PRIV setx 0xfffffc0cfffffd5c, %g1, %g7 .word 0xa3800007 ! 339: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xe327c000 ! 340: STF_R st %f17, [%r0, %r31] otherw mov 0xb0, %r30 .word 0x91d0001e ! 341: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xe227e11c ! 342: STW_I stw %r17, [%r31 + 0x011c] setx 0x4edc07a460b05e19, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_257: .word 0x39400001 ! 343: FBPUGE fbuge,a,pn %fcc0, jmptr_2_258: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 344: JMPL_R jmpl %r27 + %r0, %r27 donret_2_259: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_259-donret_2_259-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x009a060f | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x556, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, done donretarg_2_259: .word 0x93a049d4 ! 345: FDIVd fdivd %f32, %f20, %f40 jmptr_2_260: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 346: JMPL_R jmpl %r27 + %r0, %r27 .word 0x91a00169 ! 347: FABSq dis not found .word 0x98c36d2a ! 348: ADDCcc_I addccc %r13, 0x0d2a, %r12 mondo_2_262: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3c8] %asi .word 0x9d948012 ! 349: WRPR_WSTATE_R wrpr %r18, %r18, %wstate .word 0x20800001 ! 1: BN bn,a .word 0x8d903ed9 ! 350: WRPR_PSTATE_I wrpr %r0, 0x1ed9, %pstate .word 0xc19fe0e0 ! 351: LDDFA_I ldda [%r31, 0x00e0], %f0 .word 0x89800011 ! 352: WRTICK_R wr %r0, %r17, %tick .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_265: ta T_CHANGE_NONHPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_266) + 0, 16, 16)) -> intp(5,0,6) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_266)&0xffffffff) + 0, 16, 16)) -> intp(5,0,6) #else setx 0x3417e8d1db359628, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_266: .word 0x39400001 ! 354: FBPUGE fbuge,a,pn %fcc0, vahole_2_267: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe6dfc033 ! 355: LDXA_R ldxa [%r31, %r19] 0x01, %r19 .word 0xc19fe0a0 ! 356: LDDFA_I ldda [%r31, 0x00a0], %f0 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_268)+32, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_268)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_268: .word 0xa98477d2 ! 357: WR_SET_SOFTINT_I wr %r17, 0x17d2, %set_softint setx 0x69c1ff7b1b3525ea, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_269: .word 0x39400001 ! 358: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_270 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_270 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100e0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_270: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 359: RDPC rd %pc, %r19 .word 0x89800011 ! 360: WRTICK_R wr %r0, %r17, %tick br_longdelay1_2_272: .word 0x3e800001 ! 1: BVC bvc,a .word 0xbfe7c000 ! 361: SAVE_R save %r31, %r0, %r31 fpinit_2_273: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0xc3e8376b ! 362: PREFETCHA_I prefetcha [%r0, + 0xfffff76b] %asi, #one_read jmptr_2_274: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 363: JMPL_R jmpl %r27 + %r0, %r27 ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 364: MEMBAR membar #LoadLoad | #Lookaside intveclr_2_276: nop ta T_CHANGE_HPRIV setx 0x895e0c796d001ff9, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 365: FBPLG fblg,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_277 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_277 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100f0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_277: ta T_CHANGE_NONHPRIV .word 0x93414000 ! 366: RDPC rd %pc, %r9 brcommon3_2_278: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd937c010 ! 1: STQF_R - %f12, [%r16, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd83fe130 ! 367: STD_I std %r12, [%r31 + 0x0130] .word 0xd827e08c ! 368: STW_I stw %r12, [%r31 + 0x008c] .word 0xd8c7e1b0 ! 369: LDSWA_I ldswa [%r31, + 0x01b0] %asi, %r12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_279)+0, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_279)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_279: .word 0xa9847140 ! 370: WR_SET_SOFTINT_I wr %r17, 0x1140, %set_softint nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_280 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_280 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100f0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_280: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 371: RDPC rd %pc, %r19 .word 0xd4cfe1e0 ! 372: LDSBA_I ldsba [%r31, + 0x01e0] %asi, %r10 splash_cmpr_2_281: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 373: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_282 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_282: ta T_CHANGE_NONHPRIV .word 0xd5e7e011 ! 374: CASA_R casa [%r31] %asi, %r17, %r10 br_badelay2_2_283: .word 0xa5a509c9 ! 1: FDIVd fdivd %f20, %f40, %f18 pdist %f8, %f0, %f2 .word 0xa7b48312 ! 375: ALIGNADDRESS alignaddr %r18, %r18, %r19 .word 0xe19fe0c0 ! 376: LDDFA_I ldda [%r31, 0x00c0], %f16 .word 0xc30fc00b ! 1: LDXFSR_R ld-fsr [%r31, %r11], %f1 .word 0x9f80288a ! 377: SIR sir 0x088a .word 0xc1bfd960 ! 378: STDFA_R stda %f0, [%r0, %r31] .word 0xa8d9c009 ! 379: SMULcc_R smulcc %r7, %r9, %r20 bgu,a skip_2_284 brgez,pn %r1, skip_2_284 .align 2048 skip_2_284: .word 0xe83fc000 ! 380: STD_R std %r20, [%r31 + %r0] nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_285 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_285 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100e0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_285: ta T_CHANGE_NONHPRIV .word 0x93414000 ! 381: RDPC rd %pc, %r9 brcommon3_2_286: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xdb37c014 ! 1: STQF_R - %f13, [%r20, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xc32fc013 ! 382: STXFSR_R st-sfr %f1, [%r19, %r31] .word 0x28800001 ! 383: BLEU bleu,a .word 0xdadfc02d ! 384: LDXA_R ldxa [%r31, %r13] 0x01, %r13 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_288) + 24, 16, 16)) -> intp(4,0,27) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_288)&0xffffffff) + 24, 16, 16)) -> intp(4,0,27) #else setx 0xebd0bd873d634b60, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_288: .word 0x39400001 ! 385: FBPUGE fbuge,a,pn %fcc0, tagged_2_289: taddcctv %r6, 0x1099, %r10 .word 0xda07e16c ! 386: LDUW_I lduw [%r31 + 0x016c], %r13 ibp_2_290: nop ta T_CHANGE_HPRIV mov 8, %r18 rd %asi, %r12 wr %r0, 0x41, %asi set sync_thr_counter4, %r23 #ifndef SPC ldxa [%g0]0x63, %r8 and %r8, 0x38, %r8 ! Core ID add %r8, %r23, %r23 #else mov 0, %r8 #endif mov 0x2, %r16 ibp_startwait2_290: cas [%r23],%g0,%r16 !lock brz,a %r16, continue_ibp_2_290 mov (~0x2&0xf), %r16 ld [%r23], %r16 ibp_wait2_290: brnz %r16, ibp_wait2_290 ld [%r23], %r16 ba ibp_startwait2_290 mov 0x2, %r16 continue_ibp_2_290: sllx %r16, %r8, %r16 !Mask for my core only ldxa [0x58]%asi, %r17 !Running_status wait_for_stat_2_290: ldxa [0x50]%asi, %r13 !Running_rw cmp %r13, %r17 bne,a wait_for_stat_2_290 ldxa [0x58]%asi, %r17 !Running_status stxa %r16, [0x68]%asi !Park (W1C) ldxa [0x50]%asi, %r14 !Running_rw wait_for_ibp_2_290: ldxa [0x58]%asi, %r17 !Running_status cmp %r14, %r17 bne,a wait_for_ibp_2_290 ldxa [0x50]%asi, %r14 !Running_rw ibp_doit2_290: best_set_reg(0x0000005092f1c287,%r19, %r20) stxa %r20, [%r18]0x42 stxa %r16, [0x60] %asi !Unpark (W1S) st %g0, [%r23] !clear lock wr %r0, %r12, %asi !restore %asi .word 0xc19fc3e0 ! 387: LDDFA_R ldda [%r31, %r0], %f0 cwp_2_291: set user_data_start, %o7 .word 0x93902003 ! 388: WRPR_CWP_I wrpr %r0, 0x0003, %cwp pmu_2_292: nop ta T_CHANGE_PRIV setx 0xfffffc35fffffb04, %g1, %g7 .word 0xa3800007 ! 389: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_2_293: ta T_CHANGE_NONPRIV ! macro ceter_2_294: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0xa9410000 ! 391: RDTICK rd %tick, %r20 cwp_2_295: set user_data_start, %o7 .word 0x93902003 ! 392: WRPR_CWP_I wrpr %r0, 0x0003, %cwp splash_lsu_2_296: nop ta T_CHANGE_HPRIV set 0x50631bab, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 393: FBPULE fbule,a,pn %fcc0, intveclr_2_297: nop ta T_CHANGE_HPRIV setx 0x7c3ce77f8b555720, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 394: FBPLG fblg,a,pn %fcc0, nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe25fc000 ! 395: LDX_R ldx [%r31 + %r0], %r17 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_298: ta T_CHANGE_NONPRIV ! macro dvapa_2_299: nop ta T_CHANGE_HPRIV mov 0xe8a, %r20 mov 0x1b, %r19 sllx %r20, 23, %r20 or %r19, %r20, %r19 stxa %r19, [%g0] ASI_LSU_CONTROL mov 0x38, %r18 stxa %r31, [%r18]0x58 ta T_CHANGE_NONHPRIV .word 0xe297c02d ! 397: LDUHA_R lduha [%r31, %r13] 0x01, %r17 mondo_2_300: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3e0] %asi .word 0x9d94800c ! 398: WRPR_WSTATE_R wrpr %r18, %r12, %wstate .word 0xc19fde00 ! 399: LDDFA_R ldda [%r31, %r0], %f0 splash_decr_2_301: nop ta T_CHANGE_HPRIV mov 8, %r1 stxa %r20, [%r1] 0x45 .word 0xa780c013 ! 400: WR_GRAPHICS_STATUS_REG_R wr %r3, %r19, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_302) + 40, 16, 16)) -> intp(6,0,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_302)&0xffffffff) + 40, 16, 16)) -> intp(6,0,3) #else setx 0xae2e50a68efac38f, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_302: .word 0x39400001 ! 401: FBPUGE fbuge,a,pn %fcc0, brcommon2_2_303: nop setx common_target, %r12, %r27 ba,a .+12 .word 0x93a00553 ! 1: FSQRTd fsqrt ba,a .+8 jmpl %r27+0, %r27 .word 0xe1bfe060 ! 402: STDFA_I stda %f16, [0x0060, %r31] nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_304 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_304: ta T_CHANGE_NONHPRIV .word 0xd3e7e013 ! 403: CASA_R casa [%r31] %asi, %r19, %r9 pmu_2_305: nop setx 0xfffff800fffffba3, %g1, %g7 .word 0xa3800007 ! 404: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_2_306: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 405: JMPL_R jmpl %r27 + %r0, %r27 .word 0x89800011 ! 406: WRTICK_R wr %r0, %r17, %tick #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_308) + 32, 16, 16)) -> intp(4,0,5) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_308)&0xffffffff) + 32, 16, 16)) -> intp(4,0,5) #else setx 0xcff40e605a2f1559, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_308: .word 0x39400001 ! 407: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_2_309: .word 0x819824d1 ! 408: WRHPR_HPSTATE_I wrhpr %r0, 0x04d1, %hpstate br_badelay2_2_310: .word 0x97a1c9d1 ! 1: FDIVd fdivd %f38, %f48, %f42 pdist %f12, %f12, %f26 .word 0x91b44312 ! 409: ALIGNADDRESS alignaddr %r17, %r18, %r8 splash_cmpr_2_311: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 410: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x2, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_2_312 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_2_312: ta T_CHANGE_NONHPRIV .word 0xe5e7e013 ! 411: CASA_R casa [%r31] %asi, %r19, %r18 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_313)+0, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_313)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_313: .word 0xa98475a5 ! 412: WR_SET_SOFTINT_I wr %r17, 0x15a5, %set_softint memptr_2_314: set 0x60140000, %r31 .word 0x85846164 ! 413: WRCCR_I wr %r17, 0x0164, %ccr .word 0x91904002 ! 414: WRPR_PIL_R wrpr %r1, %r2, %pil .word 0xe49fe050 ! 1: LDDA_I ldda [%r31, + 0x0050] %asi, %r18 .word 0x9f80387c ! 415: SIR sir 0x187c nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_316 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_316 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610010, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_316: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 416: RDPC rd %pc, %r19 intveclr_2_317: nop ta T_CHANGE_HPRIV setx 0xfe758089cdc2bfc2, %r1, %r28 stxa %r28, [%g0] 0x72 ta T_CHANGE_NONHPRIV .word 0x25400001 ! 417: FBPLG fblg,a,pn %fcc0, splash_cmpr_2_318: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 418: WR_STICK_CMPR_REG_R wr %r0, %r17, %- setx 0x55f10995c4035ddf, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_319: .word 0x39400001 ! 419: FBPUGE fbuge,a,pn %fcc0, .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_2_320: ta T_CHANGE_NONHPRIV ! macro mondo_2_321: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r10, [%r0+0x3c8] %asi .word 0x9d944009 ! 421: WRPR_WSTATE_R wrpr %r17, %r9, %wstate splash_lsu_2_322: nop ta T_CHANGE_HPRIV set 0xdf24f5ef, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 422: FBPULE fbule,a,pn %fcc0, .word 0x3a780001 ! 423: BPCC .word 0xda3fe054 ! 424: STD_I std %r13, [%r31 + 0x0054] .word 0x93d020b3 ! 425: Tcc_I tne icc_or_xcc, %r0 + 179 otherw mov 0x34, %r30 .word 0x91d0001e ! 426: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0x2cccc001 ! 1: BRGZ brgz,a,pt %r19, .word 0x8d9036cf ! 427: WRPR_PSTATE_I wrpr %r0, 0x16cf, %pstate br_badelay2_2_324: .word 0x32800001 ! 1: BNE bne,a allclean .word 0xa3b40308 ! 428: ALIGNADDRESS alignaddr %r16, %r8, %r17 vahole_2_325: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xc32fc00d ! 429: STXFSR_R st-sfr %f1, [%r13, %r31] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_2_326) + 48, 16, 16)) -> intp(0,0,4) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_2_326)&0xffffffff) + 48, 16, 16)) -> intp(0,0,4) #else setx 0xa8554a1f7c49f765, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_2_326: .word 0x39400001 ! 430: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_2_327: ta T_CHANGE_NONHPRIV .word 0x819833cf ! 431: WRHPR_HPSTATE_I wrhpr %r0, 0x13cf, %hpstate splash_htba_2_328: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 432: WRHPR_HTBA_R wrhpr %r0, %r12, %htba .word 0xd607c000 ! 433: LDUW_R lduw [%r31 + %r0], %r11 .word 0x93b40552 ! 434: FCMPEQ16 fcmpeq16 %d16, %d18, %r9 donret_2_329: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_329-donret_2_329-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00608b11 | (0x4f << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x54a, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (2) done donretarg_2_329: .word 0xd8ffe1c8 ! 435: SWAPA_I swapa %r12, [%r31 + 0x01c8] %asi .word 0x99a04d26 ! 436: FsMULd fsmuld %f1, %f6, %f12 splash_tba_2_330: ta T_CHANGE_PRIV setx 0x00000004003a0000, %r11, %r12 .word 0x8b90000c ! 437: WRPR_TBA_R wrpr %r0, %r12, %tba nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe25fc000 ! 438: LDX_R ldx [%r31 + %r0], %r17 nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe25fc000 ! 439: LDX_R ldx [%r31 + %r0], %r17 donret_2_331: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_331-donret_2_331-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00ac9fba | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xe1f, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (2) .word 0x36800001 ! 1: BGE bge,a done donretarg_2_331: .word 0xe26fe080 ! 440: LDSTUB_I ldstub %r17, [%r31 + 0x0080] donret_2_332: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_332-donret_2_332-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x003cc299 | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x154d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) retry donretarg_2_332: .word 0xa3a449d4 ! 441: FDIVd fdivd %f48, %f20, %f48 setx 0x35ee5e93315e8cdf, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_2_333: .word 0x39400001 ! 442: FBPUGE fbuge,a,pn %fcc0, .word 0xe88fe098 ! 443: LDUBA_I lduba [%r31, + 0x0098] %asi, %r20 .word 0xe937e0cd ! 444: STQF_I - %f20, [0x00cd, %r31] ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 445: MEMBAR membar #LoadLoad | #Lookaside .word 0x97a4c9a3 ! 446: FDIVs fdivs %f19, %f3, %f11 brcommon2_2_336: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xe7120012 ! 1: LDQF_R - [%r8, %r18], %f19 ba,a .+8 jmpl %r27+0, %r27 .word 0xc1bfc2c0 ! 447: STDFA_R stda %f0, [%r0, %r31] .word 0xa24b0006 ! 448: MULX_R mulx %r12, %r6, %r17 splash_lsu_2_337: nop ta T_CHANGE_HPRIV set 0x04d59e84, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 449: FBPULE fbule,a,pn %fcc0, mondo_2_338: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r17, [%r0+0x3c8] %asi .word 0x9d948010 ! 450: WRPR_WSTATE_R wrpr %r18, %r16, %wstate .word 0x89800011 ! 451: WRTICK_R wr %r0, %r17, %tick splash_hpstate_2_340: ta T_CHANGE_NONHPRIV .word 0x2cc98001 ! 1: BRGZ brgz,a,pt %r6, .word 0x8198344d ! 452: WRHPR_HPSTATE_I wrhpr %r0, 0x144d, %hpstate pmu_2_341: nop ta T_CHANGE_PRIV setx 0xfffffc30fffff74b, %g1, %g7 .word 0xa3800007 ! 453: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x91d020b5 ! 454: Tcc_I ta icc_or_xcc, %r0 + 181 .word 0xa9a149b4 ! 455: FDIVs fdivs %f5, %f20, %f20 .word 0xe73fc000 ! 456: STDF_R std %f19, [%r0, %r31] cwp_2_342: set user_data_start, %o7 .word 0x93902001 ! 457: WRPR_CWP_I wrpr %r0, 0x0001, %cwp jmptr_2_343: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 458: JMPL_R jmpl %r27 + %r0, %r27 jmptr_2_344: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 459: JMPL_R jmpl %r27 + %r0, %r27 jmptr_2_345: nop best_set_reg(0xe1a00000, %r20, %r27) .word 0xb7c6c000 ! 460: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe71fe1a0 ! 461: LDDF_I ldd [%r31, 0x01a0], %f19 brcommon1_2_347: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xa7702130 ! 1: POPC_I popc 0x0130, %r19 ba,a .+8 jmpl %r27+0, %r27 .word 0xa9a089d4 ! 462: FDIVd fdivd %f2, %f20, %f20 .word 0x89800011 ! 463: WRTICK_R wr %r0, %r17, %tick ceter_2_349: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa9410000 ! 464: RDTICK rd %tick, %r20 splash_cmpr_2_350: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 465: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xa6828011 ! 466: ADDcc_R addcc %r10, %r17, %r19 .word 0xd2800c20 ! 467: LDUWA_R lduwa [%r0, %r0] 0x61, %r9 memptr_2_351: set user_data_start, %r31 .word 0x8584ef04 ! 468: WRCCR_I wr %r19, 0x0f04, %ccr .word 0xd27fe010 ! 469: SWAP_I swap %r9, [%r31 + 0x0010] .word 0x93a7c9aa ! 1: FDIVs fdivs %f31, %f10, %f9 .word 0x9f802820 ! 470: SIR sir 0x0820 .word 0x9195000c ! 471: WRPR_PIL_R wrpr %r20, %r12, %pil .word 0x28780001 ! 472: BPLEU jmptr_2_353: nop best_set_reg(0xe0a00000, %r20, %r27) .word 0xb7c6c000 ! 473: JMPL_R jmpl %r27 + %r0, %r27 .word 0x9ba309d4 ! 474: FDIVd fdivd %f12, %f20, %f44 unsupttte_2_355: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x93a109aa ! 475: FDIVs fdivs %f4, %f10, %f9 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_2_356)+32, 16, 16)) -> intp(mask2tid(0x2),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_2_356)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x2),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_2_356: .word 0xa984ea69 ! 476: WR_SET_SOFTINT_I wr %r19, 0x0a69, %set_softint trapasi_2_357: nop mov 0x10, %r1 ! (VA for ASI 0x4c) .word 0xd8c84980 ! 477: LDSBA_R ldsba [%r1, %r0] 0x4c, %r12 .word 0xe19fe1c0 ! 478: LDDFA_I ldda [%r31, 0x01c0], %f16 donret_2_358: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_358-donret_2_358-8), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x006612c2 | (0x8b << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x64f, %htstate ta T_CHANGE_NONPRIV ! rand=0 (2) retry donretarg_2_358: .word 0xd8ffe0e4 ! 479: SWAPA_I swapa %r12, [%r31 + 0x00e4] %asi invtsb_2_359: nop ta T_CHANGE_HPRIV rd %asi, %r21 wr %r0,ASI_MMU_REAL_RANGE, %asi mov 1, %r20 sllx %r20, 63, %r20 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %r22 xor %r22 ,%r20, %r22 stxa %r22, [ASI_MMU_REAL_RANGE_3] %asi wr %r21, %r0, %asi ta T_CHANGE_NONHPRIV .word 0x29800001 ! 480: FBL fbl,a mondo_2_360: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3e8] %asi .word 0x9d908004 ! 481: WRPR_WSTATE_R wrpr %r2, %r4, %wstate .word 0xe19fdc00 ! 482: LDDFA_R ldda [%r31, %r0], %f16 br_badelay1_2_361: .word 0x2cc8c001 ! 1: BRGZ brgz,a,pt %r3, .word 0xd937c00b ! 1: STQF_R - %f12, [%r11, %r31] .word 0x24cfc001 ! 1: BRLEZ brlez,a,pt %r31, normalw .word 0x93458000 ! 483: RD_SOFTINT_REG rd %softint, %r9 .word 0xdbe7c033 ! 1: CASA_I casa [%r31] 0x 1, %r19, %r13 .word 0x9f80336e ! 484: SIR sir 0x136e .word 0xdb27e03a ! 485: STF_I st %f13, [0x003a, %r31] .word 0xda0fc000 ! 486: LDUB_R ldub [%r31 + %r0], %r13 .word 0x26800001 ! 487: BL bl,a pmu_2_362: nop setx 0xfffff314fffff80e, %g1, %g7 .word 0xa3800007 ! 488: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8d90308d ! 489: WRPR_PSTATE_I wrpr %r0, 0x108d, %pstate brnz,pt %r12, skip_2_364 .word 0xc36ce6f6 ! 1: PREFETCH_I prefetch [%r19 + 0x06f6], #one_read .align 32 skip_2_364: .word 0xda3fc000 ! 490: STD_R std %r13, [%r31 + %r0] donret_2_365: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_2_365-donret_2_365-4), %r12 mov 0x38, %r18 stxa %r12, [%r18]0x58 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x002ac69b | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1441, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (2) done donretarg_2_365: .word 0xdaffe1ec ! 491: SWAPA_I swapa %r13, [%r31 + 0x01ec] %asi .word 0xdb27e0d4 ! 492: STF_I st %f13, [0x00d4, %r31] .word 0xdaffc02c ! 493: SWAPA_R swapa %r13, [%r31 + %r12] 0x01 splash_cmpr_2_366: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 494: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xda5fc000 ! 495: LDX_R ldx [%r31 + %r0], %r13 .word 0x9bb7c7c9 ! 1: PDIST pdistn %d62, %d40, %d44 .word 0x9f802cd6 ! 496: SIR sir 0x0cd6 pmu_2_367: nop ta T_CHANGE_PRIV setx 0xfffff21dfffffd28, %g1, %g7 .word 0xa3800007 ! 497: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x2+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_2_368 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_2_368 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_2_368: ta T_CHANGE_NONHPRIV .word 0x99414000 ! 498: RDPC rd %pc, %r12 change_to_randtl_2_369: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_2_369: .word 0x8f902000 ! 499: WRPR_TL_I wrpr %r0, 0x0000, %tl .word 0xe737c000 ! 500: STQF_R - %f19, [%r0, %r31] mondo_2_370: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r19, [%r0+0x3c0] %asi .word 0x9d944011 ! 501: WRPR_WSTATE_R wrpr %r17, %r17, %wstate nop nop ta T_CHANGE_PRIV wrpr %g0, %g0, %gl nop nop setx join_lbl_0_0, %g1, %g2 jmp %g2 nop fork_lbl_0_1: ta T_CHANGE_NONHPRIV br_longdelay1_1_0: .word 0x26800001 ! 1: BL bl,a .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 fbug skip_1_1 bge skip_1_1 .align 1024 skip_1_1: .word 0xe63fc000 ! 2: STD_R std %r19, [%r31 + %r0] nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_2 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_2: ta T_CHANGE_NONHPRIV .word 0xe7e7e00c ! 3: CASA_R casa [%r31] %asi, %r12, %r19 .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_1_3: ta T_CHANGE_NONHPRIV ! macro .word 0xa784800b ! 5: WR_GRAPHICS_STATUS_REG_R wr %r18, %r11, %- .word 0x87a88ac9 ! 6: FCMPEd fcmped %fcc, %f2, %f40 vahole_1_5: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe7e7e010 ! 7: CASA_R casa [%r31] %asi, %r16, %r19 memptr_1_6: set user_data_start, %r31 .word 0x85846bf5 ! 8: WRCCR_I wr %r17, 0x0bf5, %ccr .word 0x2e780001 ! 9: BPVS ceter_1_7: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0x91410000 ! 10: RDTICK rd %tick, %r8 splash_lsu_1_8: nop ta T_CHANGE_HPRIV set 0x704fbe56, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 11: FBPULE fbule,a,pn %fcc0, brcommon1_1_9: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd06fe1a0 ! 1: LDSTUB_I ldstub %r8, [%r31 + 0x01a0] ba,a .+8 jmpl %r27+0, %r27 .word 0xc3ecc02a ! 12: PREFETCHA_R prefetcha [%r19, %r10] 0x01, #one_read .word 0x22800001 ! 13: BE be,a pmu_1_10: nop setx 0xfffff444fffff7bc, %g1, %g7 .word 0xa3800007 ! 14: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x32780001 ! 15: BPNE pmu_1_11: nop ta T_CHANGE_PRIV setx 0xfffff868fffffd5e, %g1, %g7 .word 0xa3800007 ! 16: WR_PERF_COUNTER_R wr %r0, %r7, %- ibp_1_12: nop .word 0xe1bfe080 ! 17: STDFA_I stda %f16, [0x0080, %r31] ibp_1_13: nop .word 0xe19fc3e0 ! 18: LDDFA_R ldda [%r31, %r0], %f16 .word 0xd65fe170 ! 19: LDX_I ldx [%r31 + 0x0170], %r11 .word 0xd727e1d1 ! 20: STF_I st %f11, [0x01d1, %r31] .word 0x81580000 ! 21: FLUSHW flushw #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_14) + 24, 16, 16)) -> intp(2,0,29) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_14)&0xffffffff) + 24, 16, 16)) -> intp(2,0,29) #else setx 0x60e47d2edcae3e69, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_14: .word 0x39400001 ! 22: FBPUGE fbuge,a,pn %fcc0, donret_1_15: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_15-donret_1_15-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x007235a6 | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1615, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) done donretarg_1_15: .word 0xd6ffe071 ! 23: SWAPA_I swapa %r11, [%r31 + 0x0071] %asi set 0x101d, %l3 stxa %l3, [%g0] ASI_SPARC_PWR_MGMT .word 0x91b447c9 ! 24: PDIST pdistn %d48, %d40, %d8 .word 0xc1bfdf20 ! 25: STDFA_R stda %f0, [%r0, %r31] pmu_1_16: nop ta T_CHANGE_PRIV setx 0xfffff321fffffa85, %g1, %g7 .word 0xa3800007 ! 26: WR_PERF_COUNTER_R wr %r0, %r7, %- vahole_1_17: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xd11fc013 ! 27: LDDF_R ldd [%r31, %r19], %f8 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_18)+48, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_18)&0xffffffff) +48, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_18: .word 0xa981eeb7 ! 28: WR_SET_SOFTINT_I wr %r7, 0x0eb7, %set_softint .word 0xa3a00165 ! 29: FABSq dis not found donret_1_20: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_20-donret_1_20-8), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x008efdea | (32 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xed5, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (1) .word 0x2cc94001 ! 1: BRGZ brgz,a,pt %r5, retry donretarg_1_20: .word 0xe2ffe04d ! 30: SWAPA_I swapa %r17, [%r31 + 0x004d] %asi .word 0xa784400b ! 31: WR_GRAPHICS_STATUS_REG_R wr %r17, %r11, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_22) + 0, 16, 16)) -> intp(2,0,11) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_22)&0xffffffff) + 0, 16, 16)) -> intp(2,0,11) #else setx 0xf587e78fdd6db3ce, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_22: .word 0x39400001 ! 32: FBPUGE fbuge,a,pn %fcc0, memptr_1_23: set 0x60740000, %r31 .word 0x8585380e ! 33: WRCCR_I wr %r20, 0x180e, %ccr unsupttte_1_24: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x93b48481 ! 34: FCMPLE32 fcmple32 %d18, %d32, %r9 brcommon3_1_25: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c032 ! 1: CASA_I casa [%r31] 0x 1, %r18, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0xd297c032 ! 35: LDUHA_R lduha [%r31, %r18] 0x01, %r9 jmptr_1_26: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 36: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_1_27: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 37: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_1_28: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 38: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_1_29: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3c0] %asi .word 0x9d948013 ! 39: WRPR_WSTATE_R wrpr %r18, %r19, %wstate brcommon3_1_30: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd26fe0c0 ! 1: LDSTUB_I ldstub %r9, [%r31 + 0x00c0] ba,a .+8 jmpl %r27+0, %r27 .word 0xd31fc010 ! 40: LDDF_R ldd [%r31, %r16], %f9 .word 0xd2dfe1d8 ! 41: LDXA_I ldxa [%r31, + 0x01d8] %asi, %r9 .word 0xd327e114 ! 42: STF_I st %f9, [0x0114, %r31] setx 0xa46e9520798cdc17, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_31: .word 0x39400001 ! 43: FBPUGE fbuge,a,pn %fcc0, mondo_1_32: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r18, [%r0+0x3d0] %asi .word 0x9d91c010 ! 44: WRPR_WSTATE_R wrpr %r7, %r16, %wstate ceter_1_33: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa3410000 ! 45: RDTICK rd %tick, %r17 .word 0x9194800c ! 46: WRPR_PIL_R wrpr %r18, %r12, %pil splash_tba_1_35: ta T_CHANGE_PRIV setx 0x0000000000380000, %r11, %r12 .word 0x8b90000c ! 47: WRPR_TBA_R wrpr %r0, %r12, %tba mondo_1_36: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r6, [%r0+0x3e0] %asi .word 0x9d930010 ! 48: WRPR_WSTATE_R wrpr %r12, %r16, %wstate .word 0x9f802412 ! 49: SIR sir 0x0412 br_longdelay2_1_37: .word 0x2e800001 ! 1: BVS bvs,a .word 0xa3a7c9d2 ! 50: FDIVd fdivd %f62, %f18, %f48 splash_cmpr_1_38: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 51: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_39 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_39: ta T_CHANGE_NONHPRIV .word 0xe3e7e009 ! 52: CASA_R casa [%r31] %asi, %r9, %r17 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_40)+40, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_40)&0xffffffff) +40, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_40: .word 0xa9826764 ! 53: WR_SET_SOFTINT_I wr %r9, 0x0764, %set_softint jmptr_1_41: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 54: JMPL_R jmpl %r27 + %r0, %r27 donret_1_42: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_42-donret_1_42-8), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0018dfd3 | (0x8a << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xb1f, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) retry donretarg_1_42: .word 0xe26fe0ef ! 55: LDSTUB_I ldstub %r17, [%r31 + 0x00ef] nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_43 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_43 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_43: ta T_CHANGE_NONHPRIV .word 0x93414000 ! 56: RDPC rd %pc, %r9 splash_hpstate_1_44: .word 0x8198308f ! 57: WRHPR_HPSTATE_I wrhpr %r0, 0x108f, %hpstate .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0x8d90364f ! 58: WRPR_PSTATE_I wrpr %r0, 0x164f, %pstate mondo_1_46: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r9, [%r0+0x3e8] %asi .word 0x9d928008 ! 59: WRPR_WSTATE_R wrpr %r10, %r8, %wstate mondo_1_47: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r11, [%r0+0x3e0] %asi .word 0x9d94c010 ! 60: WRPR_WSTATE_R wrpr %r19, %r16, %wstate splash_hpstate_1_48: ta T_CHANGE_NONHPRIV .word 0x81982c97 ! 61: WRHPR_HPSTATE_I wrhpr %r0, 0x0c97, %hpstate .word 0xd31fe000 ! 62: LDDF_I ldd [%r31, 0x0000], %f9 vahole_1_49: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xc19fe1a0 ! 63: LDDFA_I ldda [%r31, 0x01a0], %f0 brcommon1_1_50: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd3e7c02a ! 1: CASA_I casa [%r31] 0x 1, %r10, %r9 ba,a .+8 jmpl %r27+0, %r27 .word 0x93b2c7c3 ! 64: PDIST pdistn %d42, %d34, %d40 splash_hpstate_1_51: ta T_CHANGE_NONHPRIV .word 0x81983ccf ! 65: WRHPR_HPSTATE_I wrhpr %r0, 0x1ccf, %hpstate .word 0x8d902601 ! 66: WRPR_PSTATE_I wrpr %r0, 0x0601, %pstate .word 0xe19fe0e0 ! 67: LDDFA_I ldda [%r31, 0x00e0], %f16 br_badelay1_1_54: .word 0x29400001 ! 1: FBPL fbl,a,pn %fcc0, .word 0xd337e0a0 ! 1: STQF_I - %f9, [0x00a0, %r31] .word 0x93b7c4d4 ! 1: FCMPNE32 fcmpne32 %d62, %d20, %r9 normalw .word 0x99458000 ! 68: RD_SOFTINT_REG rd %softint, %r12 .word 0xd82fe12d ! 69: STB_I stb %r12, [%r31 + 0x012d] donret_1_55: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_55-donret_1_55-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00e25a56 | (0x89 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1a0f, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) .word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, done donretarg_1_55: .word 0xa7a309d0 ! 70: FDIVd fdivd %f12, %f16, %f50 nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_56 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00161fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_56: ta T_CHANGE_NONHPRIV .word 0xe7e7e014 ! 71: CASA_R casa [%r31] %asi, %r20, %r19 .word 0xe19fe160 ! 72: LDDFA_I ldda [%r31, 0x0160], %f16 mondo_1_57: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r19, [%r0+0x3d8] %asi .word 0x9d948010 ! 73: WRPR_WSTATE_R wrpr %r18, %r16, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe65fc000 ! 74: LDX_R ldx [%r31 + %r0], %r19 .word 0xe727c000 ! 75: STF_R st %f19, [%r0, %r31] nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_58 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_58: ta T_CHANGE_NONHPRIV .word 0xe7e7e00b ! 76: CASA_R casa [%r31] %asi, %r11, %r19 .word 0x2a800001 ! 77: BCS bcs,a nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xe65fc000 ! 78: LDX_R ldx [%r31 + %r0], %r19 .word 0x9753c000 ! 79: RDPR_FQ donret_1_59: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_59-donret_1_59-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00e18962 | (0x8a << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1ac5, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) done donretarg_1_59: .word 0x9ba4c9d1 ! 80: FDIVd fdivd %f50, %f48, %f44 .word 0xda8fe1a8 ! 81: LDUBA_I lduba [%r31, + 0x01a8] %asi, %r13 .word 0xc19fc3e0 ! 82: LDDFA_R ldda [%r31, %r0], %f0 change_to_randtl_1_60: ta T_CHANGE_PRIV ! macro done_change_to_randtl_1_60: .word 0x8f902000 ! 83: WRPR_TL_I wrpr %r0, 0x0000, %tl splash_cmpr_1_61: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 84: WR_STICK_CMPR_REG_R wr %r0, %r17, %- jmptr_1_62: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 85: JMPL_R jmpl %r27 + %r0, %r27 mondo_1_63: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3d8] %asi .word 0x9d92c009 ! 86: WRPR_WSTATE_R wrpr %r11, %r9, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_64)+8, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_64)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_64: .word 0xa984398e ! 87: WR_SET_SOFTINT_I wr %r16, 0x198e, %set_softint .word 0xdb37e05e ! 88: STQF_I - %f13, [0x005e, %r31] mondo_1_65: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r18, [%r0+0x3e0] %asi .word 0x9d94800d ! 89: WRPR_WSTATE_R wrpr %r18, %r13, %wstate .word 0xda0fc000 ! 90: LDUB_R ldub [%r31 + %r0], %r13 memptr_1_66: set user_data_start, %r31 .word 0x858473d3 ! 91: WRCCR_I wr %r17, 0x13d3, %ccr jmptr_1_67: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 92: JMPL_R jmpl %r27 + %r0, %r27 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_1_68: ta T_CHANGE_NONPRIV ! macro otherw mov 0x32, %r30 .word 0x93d0001e ! 94: Tcc_R tne icc_or_xcc, %r0 + %r30 vahole_1_69: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xda9fe080 ! 95: LDDA_I ldda [%r31, + 0x0080] %asi, %r13 pmu_1_70: nop setx 0xffffff6dfffff499, %g1, %g7 .word 0xa3800007 ! 96: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_1_71: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 97: JMPL_R jmpl %r27 + %r0, %r27 splash_cmpr_1_72: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 98: WR_TICK_CMPR_REG_R wr %r0, %r17, %- splash_hpstate_1_73: .word 0x81982281 ! 99: WRHPR_HPSTATE_I wrhpr %r0, 0x0281, %hpstate donret_1_74: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_74-donret_1_74-8), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00c064fa | (0x83 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x16ff, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, retry donretarg_1_74: .word 0xda6fe102 ! 100: LDSTUB_I ldstub %r13, [%r31 + 0x0102] change_to_randtl_1_75: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_1_75: .word 0x8f902000 ! 101: WRPR_TL_I wrpr %r0, 0x0000, %tl unsupttte_1_76: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0xa9a349d4 ! 102: FDIVd fdivd %f44, %f20, %f20 .word 0x8d903303 ! 103: WRPR_PSTATE_I wrpr %r0, 0x1303, %pstate intveclr_1_78: nop ta T_CHANGE_HPRIV setx 0xdf6a1ab2dd0c5a28, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 104: FBPLG fblg,a,pn %fcc0, donret_1_79: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_79-donret_1_79-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0058c963 | (0x80 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1e8d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) done donretarg_1_79: .word 0xa5a149cb ! 105: FDIVd fdivd %f36, %f42, %f18 .word 0xe4d7e1b0 ! 106: LDSHA_I ldsha [%r31, + 0x01b0] %asi, %r18 tagged_1_80: tsubcctv %r17, 0x19c0, %r0 .word 0xe407e04d ! 107: LDUW_I lduw [%r31 + 0x004d], %r18 nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_81 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_81 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610090, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_81: ta T_CHANGE_NONHPRIV .word 0x91414000 ! 108: RDPC rd %pc, %r8 splash_lsu_1_82: nop ta T_CHANGE_HPRIV set 0x967d0d43, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 109: FBPULE fbule,a,pn %fcc0, splash_cmpr_1_83: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 110: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_htba_1_84: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 111: WRHPR_HTBA_R wrhpr %r0, %r12, %htba mondo_1_85: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r10, [%r0+0x3d0] %asi .word 0x9d950002 ! 112: WRPR_WSTATE_R wrpr %r20, %r2, %wstate .word 0xe1bfda00 ! 113: STDFA_R stda %f16, [%r0, %r31] .word 0xe19fda00 ! 114: LDDFA_R ldda [%r31, %r0], %f16 splash_cmpr_1_86: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 115: WR_TICK_CMPR_REG_R wr %r0, %r17, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_87)+16, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_87)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_87: .word 0xa982fa58 ! 116: WR_SET_SOFTINT_I wr %r11, 0x1a58, %set_softint brcommon3_1_88: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd137c009 ! 1: STQF_R - %f8, [%r9, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd13fc011 ! 117: STDF_R std %f8, [%r17, %r31] .word 0x3e800001 ! 1: BVC bvc,a .word 0x8d902d69 ! 118: WRPR_PSTATE_I wrpr %r0, 0x0d69, %pstate .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_1_90: ta T_CHANGE_NONPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_91)+16, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_91)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_91: .word 0xa985307c ! 120: WR_SET_SOFTINT_I wr %r20, 0x107c, %set_softint splash_cmpr_1_92: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 .word 0xb3800011 ! 121: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0xa1a00163 ! 122: FABSq dis not found ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 123: MEMBAR membar #LoadLoad | #Lookaside splash_cmpr_1_95: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 124: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe1bfc2c0 ! 125: STDFA_R stda %f16, [%r0, %r31] jmptr_1_96: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 126: JMPL_R jmpl %r27 + %r0, %r27 setx 0x5d0d483e1ef98448, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_97: .word 0x39400001 ! 127: FBPUGE fbuge,a,pn %fcc0, pmu_1_98: nop ta T_CHANGE_PRIV setx 0xfffff7aefffffec6, %g1, %g7 .word 0xa3800007 ! 128: WR_PERF_COUNTER_R wr %r0, %r7, %- donret_1_99: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_99-donret_1_99-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x009fbe11 | (4 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x21f, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) done donretarg_1_99: .word 0x99a0c9ca ! 129: FDIVd fdivd %f34, %f10, %f12 pmu_1_100: nop setx 0xfffff5d9ffffff90, %g1, %g7 .word 0xa3800007 ! 130: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_1_101: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3c0] %asi .word 0x9d948011 ! 131: WRPR_WSTATE_R wrpr %r18, %r17, %wstate nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_102 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00161fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_102: ta T_CHANGE_NONHPRIV .word 0xd9e7e009 ! 132: CASA_R casa [%r31] %asi, %r9, %r12 .word 0xc1bfda00 ! 133: STDFA_R stda %f0, [%r0, %r31] splash_tba_1_103: ta T_CHANGE_PRIV setx 0x0000000000380000, %r11, %r12 .word 0x8b90000c ! 134: WRPR_TBA_R wrpr %r0, %r12, %tba splash_lsu_1_104: nop ta T_CHANGE_HPRIV set 0x5046f3b4, %r2 mov 0x7, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 135: FBPULE fbule,a,pn %fcc0, setx 0xc06a3bcbc8082181, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_105: .word 0x39400001 ! 136: FBPUGE fbuge,a,pn %fcc0, change_to_randtl_1_106: ta T_CHANGE_PRIV ! macro done_change_to_randtl_1_106: .word 0x8f902000 ! 137: WRPR_TL_I wrpr %r0, 0x0000, %tl nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_107 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_107 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610090, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_107: ta T_CHANGE_NONHPRIV .word 0xa5414000 ! 138: RDPC rd %pc, %r18 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_108)+8, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_108)&0xffffffff) +8, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_108: .word 0xa984fc32 ! 139: WR_SET_SOFTINT_I wr %r19, 0x1c32, %set_softint br_badelay1_1_109: .word 0xe43fc009 ! 1: STD_R std %r18, [%r31 + %r9] .word 0xdb33318e ! 1: STQF_I - %f13, [0x118e, %r12] .word 0x24cfc001 ! 1: BRLEZ brlez,a,pt %r31, normalw .word 0x95458000 ! 140: RD_SOFTINT_REG rd %softint, %r10 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_1_110: ta T_CHANGE_NONHPRIV ! macro vahole_1_111: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xc3ec4031 ! 142: PREFETCHA_R prefetcha [%r17, %r17] 0x01, #one_read nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_112 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_112 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100a0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_112: ta T_CHANGE_NONHPRIV .word 0x99414000 ! 143: RDPC rd %pc, %r12 .word 0xd91fe070 ! 144: LDDF_I ldd [%r31, 0x0070], %f12 setx 0x4e0a47a3cc4f300c, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_113: .word 0x39400001 ! 145: FBPUGE fbuge,a,pn %fcc0, .word 0xa0d2400c ! 146: UMULcc_R umulcc %r9, %r12, %r16 splash_cmpr_1_114: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 147: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_1_115: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r20, [%r0+0x3e8] %asi .word 0x9d924014 ! 148: WRPR_WSTATE_R wrpr %r9, %r20, %wstate change_to_randtl_1_116: ta T_CHANGE_PRIV ! macro done_change_to_randtl_1_116: .word 0x8f902001 ! 149: WRPR_TL_I wrpr %r0, 0x0001, %tl change_to_randtl_1_117: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_1_117: .word 0x8f902001 ! 150: WRPR_TL_I wrpr %r0, 0x0001, %tl #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_118) + 56, 16, 16)) -> intp(3,0,25) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_118)&0xffffffff) + 56, 16, 16)) -> intp(3,0,25) #else setx 0x9dcec6453ee2f102, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_118: .word 0x39400001 ! 151: FBPUGE fbuge,a,pn %fcc0, memptr_1_119: set 0x60740000, %r31 .word 0x8582e7a2 ! 152: WRCCR_I wr %r11, 0x07a2, %ccr nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xe05fc000 ! 153: LDX_R ldx [%r31 + %r0], %r16 .word 0x8d902209 ! 154: WRPR_PSTATE_I wrpr %r0, 0x0209, %pstate mondo_1_121: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r16, [%r0+0x3e8] %asi .word 0x9d948014 ! 155: WRPR_WSTATE_R wrpr %r18, %r20, %wstate .word 0x8d9023bb ! 156: WRPR_PSTATE_I wrpr %r0, 0x03bb, %pstate .word 0x91d020b4 ! 157: Tcc_I ta icc_or_xcc, %r0 + 180 setx 0x0083e556e94f4b80, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_123: .word 0x39400001 ! 158: FBPUGE fbuge,a,pn %fcc0, .word 0xc36a4013 ! 159: PREFETCH_R prefetch [%r9 + %r19], #one_read fpinit_1_124: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x89b00484 ! 160: FCMPLE32 fcmple32 %d0, %d4, %r4 splash_hpstate_1_125: ta T_CHANGE_NONHPRIV .word 0x2ac9c001 ! 1: BRNZ brnz,a,pt %r7, .word 0x81983d45 ! 161: WRHPR_HPSTATE_I wrhpr %r0, 0x1d45, %hpstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xe05fc000 ! 162: LDX_R ldx [%r31 + %r0], %r16 nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_126 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_126: ta T_CHANGE_NONHPRIV .word 0xe1e7e00b ! 163: CASA_R casa [%r31] %asi, %r11, %r16 nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_127 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00021fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_127: ta T_CHANGE_NONHPRIV .word 0xe1e7e010 ! 164: CASA_R casa [%r31] %asi, %r16, %r16 pmu_1_128: nop ta T_CHANGE_PRIV setx 0xfffff21bfffff873, %g1, %g7 .word 0xa3800007 ! 165: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_1_129: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 166: WR_STICK_CMPR_REG_R wr %r0, %r17, %- ceter_1_130: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa1410000 ! 167: RDTICK rd %tick, %r16 jmptr_1_131: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 168: JMPL_R jmpl %r27 + %r0, %r27 .word 0x91684008 ! 169: SDIVX_R sdivx %r1, %r8, %r8 splash_cmpr_1_132: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 .word 0xaf800011 ! 170: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xd01fc000 ! 171: LDD_R ldd [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_133 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_133 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610010, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_133: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 172: RDPC rd %pc, %r16 jmptr_1_134: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 173: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe09fd100 ! 174: LDDA_R ldda [%r31, %r0] 0x88, %r16 setx 0xa5b8e1695cd3b7b0, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_135: .word 0x39400001 ! 175: FBPUGE fbuge,a,pn %fcc0, splash_cmpr_1_136: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 176: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe0d7e008 ! 177: LDSHA_I ldsha [%r31, + 0x0008] %asi, %r16 splash_cmpr_1_137: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 178: WR_STICK_CMPR_REG_R wr %r0, %r17, %- mondo_1_138: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r10, [%r0+0x3c0] %asi .word 0x9d940011 ! 179: WRPR_WSTATE_R wrpr %r16, %r17, %wstate change_to_randtl_1_139: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_1_139: .word 0x8f902001 ! 180: WRPR_TL_I wrpr %r0, 0x0001, %tl jmptr_1_140: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 181: JMPL_R jmpl %r27 + %r0, %r27 .word 0x91928013 ! 182: WRPR_PIL_R wrpr %r10, %r19, %pil donret_1_142: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_142-donret_1_142-8), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00d4bc88 | (28 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1645, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) retry donretarg_1_142: .word 0xa7a449ca ! 183: FDIVd fdivd %f48, %f10, %f50 .word 0xe6c7e040 ! 184: LDSWA_I ldswa [%r31, + 0x0040] %asi, %r19 .word 0xc1bfdf20 ! 185: STDFA_R stda %f0, [%r0, %r31] .word 0xe6cfe0a0 ! 186: LDSBA_I ldsba [%r31, + 0x00a0] %asi, %r19 splash_cmpr_1_143: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 187: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x9a830002 ! 188: ADDcc_R addcc %r12, %r2, %r13 ibp_1_144: nop ta T_CHANGE_NONHPRIV .word 0xc19fdc00 ! 189: LDDFA_R ldda [%r31, %r0], %f0 ceter_1_145: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x93410000 ! 190: RDTICK rd %tick, %r9 ceter_1_146: nop ta T_CHANGE_HPRIV mov 3, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0xa3410000 ! 191: RDTICK rd %tick, %r17 setx 0x20c153e68220c828, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_147: .word 0x39400001 ! 192: FBPUGE fbuge,a,pn %fcc0, .word 0x29800001 ! 193: FBL fbl,a .word 0xa7a0016c ! 194: FABSq dis not found .word 0xe6c7e1b0 ! 195: LDSWA_I ldswa [%r31, + 0x01b0] %asi, %r19 splash_lsu_1_150: nop ta T_CHANGE_HPRIV set 0x561664af, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 196: FBPULE fbule,a,pn %fcc0, .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_1_151: ta T_CHANGE_NONPRIV ! macro .word 0xe65fe150 ! 198: LDX_I ldx [%r31 + 0x0150], %r19 splash_hpstate_1_152: ta T_CHANGE_NONHPRIV .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0x81983cc4 ! 199: WRHPR_HPSTATE_I wrhpr %r0, 0x1cc4, %hpstate .word 0x9353c000 ! 200: RDPR_FQ .word 0x9f80320f ! 201: SIR sir 0x120f mondo_1_153: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3e8] %asi .word 0x9d944005 ! 202: WRPR_WSTATE_R wrpr %r17, %r5, %wstate jmptr_1_154: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 203: JMPL_R jmpl %r27 + %r0, %r27 fbe,a,pn %fcc0, skip_1_155 fbuge skip_1_155 .align 2048 skip_1_155: .word 0x24c94001 ! 204: BRLEZ brlez,a,pt %r5, pmu_1_156: nop ta T_CHANGE_PRIV setx 0xfffff58cfffffc73, %g1, %g7 .word 0xa3800007 ! 205: WR_PERF_COUNTER_R wr %r0, %r7, %- setx 0xac9c457ddf49215d, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_157: .word 0x39400001 ! 206: FBPUGE fbuge,a,pn %fcc0, .word 0xe677e188 ! 207: STX_I stx %r19, [%r31 + 0x0188] brcommon2_1_158: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xa7a7c96c ! 1: FMULq dis not found ba,a .+8 jmpl %r27+0, %r27 .word 0xc19fe1a0 ! 208: LDDFA_I ldda [%r31, 0x01a0], %f0 .word 0x98fc8014 ! 209: SDIVcc_R sdivcc %r18, %r20, %r12 .word 0xd897e1b0 ! 210: LDUHA_I lduha [%r31, + 0x01b0] %asi, %r12 .word 0x3c800001 ! 211: BPOS bpos,a change_to_randtl_1_159: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_1_159: .word 0x8f902002 ! 212: WRPR_TL_I wrpr %r0, 0x0002, %tl tagged_1_160: tsubcctv %r19, 0x1d99, %r16 .word 0xd807e16e ! 213: LDUW_I lduw [%r31 + 0x016e], %r12 br_badelay1_1_161: .word 0x28800001 ! 1: BLEU bleu,a .word 0xd937c008 ! 1: STQF_R - %f12, [%r8, %r31] .word 0xd9e7c032 ! 1: CASA_I casa [%r31] 0x 1, %r18, %r12 normalw .word 0xa1458000 ! 214: RD_SOFTINT_REG rd %softint, %r16 pmu_1_162: nop setx 0xfffff383fffff408, %g1, %g7 .word 0xa3800007 ! 215: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 216: WRTICK_R wr %r0, %r17, %tick pmu_1_164: nop ta T_CHANGE_PRIV setx 0xfffff696fffff652, %g1, %g7 .word 0xa3800007 ! 217: WR_PERF_COUNTER_R wr %r0, %r7, %- otherw mov 0x35, %r30 .word 0x91d0001e ! 218: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xc1bfc3e0 ! 219: STDFA_R stda %f0, [%r0, %r31] .word 0xc1bfd920 ! 220: STDFA_R stda %f0, [%r0, %r31] .word 0xc1bfe1c0 ! 221: STDFA_I stda %f0, [0x01c0, %r31] setx 0x176a420241c68c80, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_165: .word 0x39400001 ! 222: FBPUGE fbuge,a,pn %fcc0, br_longdelay1_1_166: .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0xbfefc000 ! 223: RESTORE_R restore %r31, %r0, %r31 nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_167 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_167: ta T_CHANGE_NONHPRIV .word 0xe1e7e012 ! 224: CASA_R casa [%r31] %asi, %r18, %r16 jmptr_1_168: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 225: JMPL_R jmpl %r27 + %r0, %r27 setx 0xad8877e244a404a7, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_169: .word 0x39400001 ! 226: FBPUGE fbuge,a,pn %fcc0, mondo_1_170: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r9, [%r0+0x3d0] %asi .word 0x9d940005 ! 227: WRPR_WSTATE_R wrpr %r16, %r5, %wstate splash_cmpr_1_171: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 228: WR_TICK_CMPR_REG_R wr %r0, %r17, %- pmu_1_172: nop ta T_CHANGE_PRIV setx 0xfffffbd7fffff64a, %g1, %g7 .word 0xa3800007 ! 229: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_1_173: nop ta T_CHANGE_HPRIV set 0xfbc7aea3, %r2 mov 0x2, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 230: FBPULE fbule,a,pn %fcc0, mondo_1_174: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r13, [%r0+0x3e8] %asi .word 0x9d950012 ! 231: WRPR_WSTATE_R wrpr %r20, %r18, %wstate memptr_1_175: set 0x60740000, %r31 .word 0x8584b713 ! 232: WRCCR_I wr %r18, 0x1713, %ccr mondo_1_176: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r7, [%r0+0x3d0] %asi .word 0x9d94c012 ! 233: WRPR_WSTATE_R wrpr %r19, %r18, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_177)+32, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_177)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_177: .word 0xa9852a47 ! 234: WR_SET_SOFTINT_I wr %r20, 0x0a47, %set_softint splash_lsu_1_178: nop ta T_CHANGE_HPRIV set 0xc0d9a69d, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 235: FBPULE fbule,a,pn %fcc0, pmu_1_179: nop setx 0xfffff802fffffb2c, %g1, %g7 .word 0xa3800007 ! 236: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_lsu_1_180: nop ta T_CHANGE_HPRIV set 0x257eae75, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 237: FBPULE fbule,a,pn %fcc0, splash_cmpr_1_181: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 238: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0xe057e128 ! 239: LDSH_I ldsh [%r31 + 0x0128], %r16 donret_1_182: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_182-donret_1_182-8), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x004a70bf | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x89d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) retry donretarg_1_182: .word 0xe0ffe157 ! 240: SWAPA_I swapa %r16, [%r31 + 0x0157] %asi .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_1_183: ta T_CHANGE_NONPRIV ! macro .word 0xe1bfe160 ! 242: STDFA_I stda %f16, [0x0160, %r31] #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_184)+24, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_184)&0xffffffff) +24, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_184: .word 0xa9846617 ! 243: WR_SET_SOFTINT_I wr %r17, 0x0617, %set_softint unsupttte_1_185: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x54 ! I unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x87ac0a52 ! 244: FCMPd fcmpd %fcc, %f16, %f18 .word 0x2a800001 ! 245: BCS bcs,a nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_186 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_186 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610060, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_186: ta T_CHANGE_NONHPRIV .word 0x91414000 ! 246: RDPC rd %pc, %r8 setx 0xbab8ed0b4a8c01ae, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_187: .word 0x39400001 ! 247: FBPUGE fbuge,a,pn %fcc0, pmu_1_188: nop setx 0xfffffd9afffff5f3, %g1, %g7 .word 0xa3800007 ! 248: WR_PERF_COUNTER_R wr %r0, %r7, %- splash_cmpr_1_189: mov 1, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 249: WR_STICK_CMPR_REG_R wr %r0, %r17, %- donret_1_190: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_190-donret_1_190-8), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00e9ce63 | (22 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xf4d, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (1) retry donretarg_1_190: .word 0xa5a449c8 ! 250: FDIVd fdivd %f48, %f8, %f18 memptr_1_191: set 0x60740000, %r31 .word 0x858431c7 ! 251: WRCCR_I wr %r16, 0x11c7, %ccr .word 0xe49fdf00 ! 252: LDDA_R ldda [%r31, %r0] 0xf8, %r18 .word 0x29800001 ! 253: FBL fbl,a nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_193 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_193 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100b0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_193: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 254: RDPC rd %pc, %r16 splash_lsu_1_194: nop ta T_CHANGE_HPRIV set 0x43322f4f, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 255: FBPULE fbule,a,pn %fcc0, .word 0xa953c000 ! 256: RDPR_FQ vahole_1_195: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xe897c02b ! 257: LDUHA_R lduha [%r31, %r11] 0x01, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_196) + 32, 16, 16)) -> intp(2,0,1) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_196)&0xffffffff) + 32, 16, 16)) -> intp(2,0,1) #else setx 0xf91ae3841bdb43c2, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_196: .word 0x39400001 ! 258: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_197 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_197: ta T_CHANGE_NONHPRIV .word 0xe9e7e011 ! 259: CASA_R casa [%r31] %asi, %r17, %r20 .word 0xe8c7e0e8 ! 260: LDSWA_I ldswa [%r31, + 0x00e8] %asi, %r20 vahole_1_198: nop ta T_CHANGE_NONHPRIV setx vahole_target3, %r18, %r27 jmpl %r27+0, %r27 .word 0x97a409a3 ! 261: FDIVs fdivs %f16, %f3, %f11 .word 0xd697e0d8 ! 262: LDUHA_I lduha [%r31, + 0x00d8] %asi, %r11 .word 0xd73fc000 ! 263: STDF_R std %f11, [%r0, %r31] .word 0xd68fe070 ! 264: LDUBA_I lduba [%r31, + 0x0070] %asi, %r11 pmu_1_199: nop setx 0xfffffc52fffff33d, %g1, %g7 .word 0xa3800007 ! 265: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x89800011 ! 266: WRTICK_R wr %r0, %r17, %tick vahole_1_201: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xa1b247ca ! 267: PDIST pdistn %d40, %d10, %d16 .word 0x21400001 ! 1: FBPN fbn,a,pn %fcc0, .word 0x8d903132 ! 268: WRPR_PSTATE_I wrpr %r0, 0x1132, %pstate .word 0xe097e1e0 ! 269: LDUHA_I lduha [%r31, + 0x01e0] %asi, %r16 nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_203 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_203: ta T_CHANGE_NONHPRIV .word 0xe1e7e009 ! 270: CASA_R casa [%r31] %asi, %r9, %r16 .word 0xe07fe0d0 ! 271: SWAP_I swap %r16, [%r31 + 0x00d0] .word 0x28780001 ! 272: BPLEU cwp_1_204: set user_data_start, %o7 .word 0x93902007 ! 273: WRPR_CWP_I wrpr %r0, 0x0007, %cwp pmu_1_205: nop ta T_CHANGE_PRIV setx 0xfffff737fffff090, %g1, %g7 .word 0xa3800007 ! 274: WR_PERF_COUNTER_R wr %r0, %r7, %- mondo_1_206: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r17, [%r0+0x3c8] %asi .word 0x9d92c012 ! 275: WRPR_WSTATE_R wrpr %r11, %r18, %wstate br_badelay3_1_207: .word 0x32800001 ! 1: BNE bne,a .word 0x34800001 ! 1: BG bg,a .word 0xa1a0054a ! 1: FSQRTd fsqrt .word 0x99a24831 ! 276: FADDs fadds %f9, %f17, %f12 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_1_208: ta T_CHANGE_NONPRIV ! macro .word 0x89800011 ! 278: WRTICK_R wr %r0, %r17, %tick mondo_1_210: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r1, [%r0+0x3c0] %asi .word 0x9d924014 ! 279: WRPR_WSTATE_R wrpr %r9, %r20, %wstate donret_1_211: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_211-donret_1_211-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00b38eb5 | (4 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xa45, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (1) done donretarg_1_211: .word 0xd86fe061 ! 280: LDSTUB_I ldstub %r12, [%r31 + 0x0061] donret_1_212: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_212-donret_1_212-8), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x1, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00460bb6 | (0x4f << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xac7, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (1) retry donretarg_1_212: .word 0xa9a4c9c7 ! 281: FDIVd fdivd %f50, %f38, %f20 brcommon1_1_213: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xe9e7c02b ! 1: CASA_I casa [%r31] 0x 1, %r11, %r20 ba,a .+8 jmpl %r27+0, %r27 .word 0x97b4c491 ! 282: FCMPLE32 fcmple32 %d50, %d48, %r11 .word 0xc19fe160 ! 283: LDDFA_I ldda [%r31, 0x0160], %f0 .word 0x8d903153 ! 284: WRPR_PSTATE_I wrpr %r0, 0x1153, %pstate splash_cmpr_1_215: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xb3800011 ! 285: WR_STICK_CMPR_REG_R wr %r0, %r17, %- splash_cmpr_1_216: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x50, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 286: WR_STICK_CMPR_REG_R wr %r0, %r17, %- .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_1_217: ta T_CHANGE_NONPRIV ! macro .word 0x2acc8001 ! 1: BRNZ brnz,a,pt %r18, .word 0x8d9031ea ! 288: WRPR_PSTATE_I wrpr %r0, 0x11ea, %pstate splash_lsu_1_219: nop ta T_CHANGE_HPRIV set 0x617875bb, %r2 mov 0x4, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 289: FBPULE fbule,a,pn %fcc0, donret_1_220: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_220-donret_1_220-8), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x004ea376 | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1b8d, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) .word 0x2f400001 ! 1: FBPU fbu,a,pn %fcc0, retry donretarg_1_220: .word 0xd66fe07c ! 290: LDSTUB_I ldstub %r11, [%r31 + 0x007c] .word 0x91d02034 ! 291: Tcc_I ta icc_or_xcc, %r0 + 52 setx 0xf3a359b9fb2eaa01, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_221: .word 0x39400001 ! 292: FBPUGE fbuge,a,pn %fcc0, brcommon3_1_222: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd737e020 ! 1: STQF_I - %f11, [0x0020, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd69fc028 ! 293: LDDA_R ldda [%r31, %r8] 0x01, %r11 .word 0xd6d7e1c0 ! 294: LDSHA_I ldsha [%r31, + 0x01c0] %asi, %r11 pmu_1_223: nop ta T_CHANGE_PRIV setx 0xfffffd94fffff505, %g1, %g7 .word 0xa3800007 ! 295: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x93a00172 ! 296: FABSq dis not found #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_225)+32, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_225)&0xffffffff) +32, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_225: .word 0xa98463c3 ! 297: WR_SET_SOFTINT_I wr %r17, 0x03c3, %set_softint memptr_1_226: set 0x60740000, %r31 .word 0x8582fdfa ! 298: WRCCR_I wr %r11, 0x1dfa, %ccr mondo_1_227: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3e8] %asi .word 0x9d94c001 ! 299: WRPR_WSTATE_R wrpr %r19, %r1, %wstate .word 0xd297e000 ! 300: LDUHA_I lduha [%r31, + 0x0000] %asi, %r9 vahole_1_228: nop ta T_CHANGE_NONHPRIV setx vahole_target2, %r18, %r27 jmpl %r27+0, %r27 .word 0xa9a049ac ! 301: FDIVs fdivs %f1, %f12, %f20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_229)+16, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_229)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_229: .word 0xa9827d5d ! 302: WR_SET_SOFTINT_I wr %r9, 0x1d5d, %set_softint .word 0x8d9024db ! 303: WRPR_PSTATE_I wrpr %r0, 0x04db, %pstate vahole_1_231: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xe93fc008 ! 304: STDF_R std %f20, [%r8, %r31] trapasi_1_232: nop mov 0x10, %r1 ! (VA for ASI 0x4c) .word 0xe8d04980 ! 305: LDSHA_R ldsha [%r1, %r0] 0x4c, %r20 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_233)+0, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_233)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_233: .word 0xa981bf4d ! 306: WR_SET_SOFTINT_I wr %r6, 0x1f4d, %set_softint #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_234) + 24, 16, 16)) -> intp(5,0,30) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_234)&0xffffffff) + 24, 16, 16)) -> intp(5,0,30) #else setx 0xc65b7623d10006a3, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_234: .word 0x39400001 ! 307: FBPUGE fbuge,a,pn %fcc0, .word 0xe83fc000 ! 308: STD_R std %r20, [%r31 + %r0] pmu_1_235: nop ta T_CHANGE_PRIV setx 0xfffff361fffff44b, %g1, %g7 .word 0xa3800007 ! 309: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_236 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_236 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610060, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_236: ta T_CHANGE_NONHPRIV .word 0x91414000 ! 310: RDPC rd %pc, %r8 nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_237 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00061fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_237: ta T_CHANGE_NONHPRIV .word 0xd1e7e00c ! 311: CASA_R casa [%r31] %asi, %r12, %r8 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_1_238: ta T_CHANGE_NONPRIV ! macro nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_239 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_239: ta T_CHANGE_NONHPRIV .word 0xd1e7e00d ! 313: CASA_R casa [%r31] %asi, %r13, %r8 .word 0x9f802b4e ! 314: SIR sir 0x0b4e .word 0x91d02033 ! 315: Tcc_I ta icc_or_xcc, %r0 + 51 splash_cmpr_1_240: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 316: WR_TICK_CMPR_REG_R wr %r0, %r17, %- mondo_1_241: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r6, [%r0+0x3d0] %asi .word 0x9d940007 ! 317: WRPR_WSTATE_R wrpr %r16, %r7, %wstate nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xd05fc000 ! 318: LDX_R ldx [%r31 + %r0], %r8 nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_242 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001e1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_242: ta T_CHANGE_NONHPRIV .word 0xd1e7e011 ! 319: CASA_R casa [%r31] %asi, %r17, %r8 br_longdelay1_1_243: .word 0x3d400001 ! 1: FBPULE fbule,a,pn %fcc0, .word 0xbfefc000 ! 320: RESTORE_R restore %r31, %r0, %r31 splash_cmpr_1_244: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 321: WR_STICK_CMPR_REG_R wr %r0, %r17, %- pmu_1_245: nop ta T_CHANGE_PRIV setx 0xffffff15ffffffb3, %g1, %g7 .word 0xa3800007 ! 322: WR_PERF_COUNTER_R wr %r0, %r7, %- pmu_1_246: nop setx 0xfffff688fffff0e0, %g1, %g7 .word 0xa3800007 ! 323: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xd127c000 ! 324: STF_R st %f8, [%r0, %r31] .word 0x89800011 ! 325: WRTICK_R wr %r0, %r17, %tick .word 0xa3a00166 ! 326: FABSq dis not found mondo_1_249: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r17, [%r0+0x3e0] %asi .word 0x9d944008 ! 327: WRPR_WSTATE_R wrpr %r17, %r8, %wstate #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_250) + 0, 16, 16)) -> intp(6,0,18) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_250)&0xffffffff) + 0, 16, 16)) -> intp(6,0,18) #else setx 0xea2bde9d63c1da5d, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_250: .word 0x39400001 ! 328: FBPUGE fbuge,a,pn %fcc0, donret_1_251: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_251-donret_1_251-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00c615d1 | (0x88 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x44e, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (1) .word 0x2ccd0001 ! 1: BRGZ brgz,a,pt %r20, done donretarg_1_251: .word 0x95a4c9d0 ! 329: FDIVd fdivd %f50, %f16, %f10 .word 0xd4c7e180 ! 330: LDSWA_I ldswa [%r31, + 0x0180] %asi, %r10 .word 0xe1bfe0e0 ! 331: STDFA_I stda %f16, [0x00e0, %r31] nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xd45fc000 ! 332: LDX_R ldx [%r31 + %r0], %r10 br_badelay3_1_252: .word 0x20800001 ! 1: BN bn,a .word 0xbf4fc694 ! Random illegal ? .word 0xa7a0054c ! 1: FSQRTd fsqrt .word 0xa3a40825 ! 333: FADDs fadds %f16, %f5, %f17 splash_hpstate_1_253: .word 0x26ca0001 ! 1: BRLZ brlz,a,pt %r8, .word 0x819835ce ! 334: WRHPR_HPSTATE_I wrhpr %r0, 0x15ce, %hpstate mondo_1_254: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r6, [%r0+0x3c8] %asi .word 0x9d950012 ! 335: WRPR_WSTATE_R wrpr %r20, %r18, %wstate .word 0x9f8025e2 ! 336: SIR sir 0x05e2 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_1_255: ta T_CHANGE_NONHPRIV ! macro .word 0xe277e060 ! 338: STX_I stx %r17, [%r31 + 0x0060] pmu_1_256: nop ta T_CHANGE_PRIV setx 0xfffff84bfffffbed, %g1, %g7 .word 0xa3800007 ! 339: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0xe327c000 ! 340: STF_R st %f17, [%r0, %r31] otherw mov 0x30, %r30 .word 0x91d0001e ! 341: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0xe227e054 ! 342: STW_I stw %r17, [%r31 + 0x0054] setx 0xd29918d10733b789, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_257: .word 0x39400001 ! 343: FBPUGE fbuge,a,pn %fcc0, jmptr_1_258: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 344: JMPL_R jmpl %r27 + %r0, %r27 donret_1_259: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_259-donret_1_259-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x009b9b19 | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x10de, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) .word 0x37400001 ! 1: FBPGE fbge,a,pn %fcc0, done donretarg_1_259: .word 0xa9a349c8 ! 345: FDIVd fdivd %f44, %f8, %f20 jmptr_1_260: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 346: JMPL_R jmpl %r27 + %r0, %r27 .word 0xa9a00173 ! 347: FABSq dis not found .word 0xa6c331fe ! 348: ADDCcc_I addccc %r12, 0xfffff1fe, %r19 mondo_1_262: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r18, [%r0+0x3e0] %asi .word 0x9d944006 ! 349: WRPR_WSTATE_R wrpr %r17, %r6, %wstate .word 0x2b400001 ! 1: FBPUG fbug,a,pn %fcc0, .word 0x8d9026a4 ! 350: WRPR_PSTATE_I wrpr %r0, 0x06a4, %pstate .word 0xe19fe000 ! 351: LDDFA_I ldda [%r31, 0x0000], %f16 .word 0x89800011 ! 352: WRTICK_R wr %r0, %r17, %tick .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_1_265: ta T_CHANGE_NONHPRIV ! macro #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_266) + 32, 16, 16)) -> intp(2,0,23) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_266)&0xffffffff) + 32, 16, 16)) -> intp(2,0,23) #else setx 0xa083ece4724f3ca6, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_266: .word 0x39400001 ! 354: FBPUGE fbuge,a,pn %fcc0, vahole_1_267: nop ta T_CHANGE_NONHPRIV setx vahole_target1, %r18, %r27 jmpl %r27+0, %r27 .word 0xe6bfc033 ! 355: STDA_R stda %r19, [%r31 + %r19] 0x01 .word 0xc19fe000 ! 356: LDDFA_I ldda [%r31, 0x0000], %f0 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_268)+16, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_268)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_268: .word 0xa984f76b ! 357: WR_SET_SOFTINT_I wr %r19, 0x176b, %set_softint setx 0x87b753679a5a70b4, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_269: .word 0x39400001 ! 358: FBPUGE fbuge,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_270 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_270 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100c0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_270: ta T_CHANGE_NONHPRIV .word 0xa1414000 ! 359: RDPC rd %pc, %r16 .word 0x89800011 ! 360: WRTICK_R wr %r0, %r17, %tick br_longdelay1_1_272: .word 0x24800001 ! 1: BLE ble,a .word 0x9d97c000 ! 361: WRPR_WSTATE_R wrpr %r31, %r0, %wstate fpinit_1_273: nop setx fp_data_quads, %r19, %r20 ldd [%r20], %f0 ldd [%r20+8], %f4 ld [%r20+16], %fsr ld [%r20+24], %r19 wr %r19, %g0, %gsr .word 0x87a80a44 ! 362: FCMPd fcmpd %fcc, %f0, %f4 jmptr_1_274: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 363: JMPL_R jmpl %r27 + %r0, %r27 ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 364: MEMBAR membar #LoadLoad | #Lookaside intveclr_1_276: nop ta T_CHANGE_HPRIV setx 0xabdc1c7386e955c7, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 365: FBPLG fblg,a,pn %fcc0, nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_277 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_277 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610030, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_277: ta T_CHANGE_NONHPRIV .word 0x99414000 ! 366: RDPC rd %pc, %r12 brcommon3_1_278: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xd937c008 ! 1: STQF_R - %f12, [%r8, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xd89fc030 ! 367: LDDA_R ldda [%r31, %r16] 0x01, %r12 .word 0xd827e0a2 ! 368: STW_I stw %r12, [%r31 + 0x00a2] .word 0xd8c7e018 ! 369: LDSWA_I ldswa [%r31, + 0x0018] %asi, %r12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_279)+16, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_279)&0xffffffff) +16, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_279: .word 0xa984a405 ! 370: WR_SET_SOFTINT_I wr %r18, 0x0405, %set_softint nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_280 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_280 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610080, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_280: ta T_CHANGE_NONHPRIV .word 0x95414000 ! 371: RDPC rd %pc, %r10 .word 0xd4cfe010 ! 372: LDSBA_I ldsba [%r31, + 0x0010] %asi, %r10 splash_cmpr_1_281: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x70, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xb3800011 ! 373: WR_STICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_282 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x00121fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_282: ta T_CHANGE_NONHPRIV .word 0xd5e7e008 ! 374: CASA_R casa [%r31] %asi, %r8, %r10 br_badelay2_1_283: .word 0x91a509cb ! 1: FDIVd fdivd %f20, %f42, %f8 pdist %f10, %f6, %f16 .word 0x95b2430c ! 375: ALIGNADDRESS alignaddr %r9, %r12, %r10 .word 0xe19fe0a0 ! 376: LDDFA_I ldda [%r31, 0x00a0], %f16 .word 0x9f802ebe ! 377: SIR sir 0x0ebe .word 0xc1bfde00 ! 378: STDFA_R stda %f0, [%r0, %r31] .word 0xa8dc4001 ! 379: SMULcc_R smulcc %r17, %r1, %r20 bvc skip_1_284 bne,a skip_1_284 .align 2048 skip_1_284: .word 0xc36fe125 ! 380: PREFETCH_I prefetch [%r31 + 0x0125], #one_read nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_285 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_285 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100e0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_285: ta T_CHANGE_NONHPRIV .word 0x9b414000 ! 381: RDPC rd %pc, %r13 brcommon3_1_286: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xdb37c008 ! 1: STQF_R - %f13, [%r8, %r31] ba,a .+8 jmpl %r27+0, %r27 .word 0xdb1fc012 ! 382: LDDF_R ldd [%r31, %r18], %f13 .word 0x28800001 ! 383: BLEU bleu,a .word 0xda9fc033 ! 384: LDDA_R ldda [%r31, %r19] 0x01, %r13 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_288) + 56, 16, 16)) -> intp(5,0,2) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_288)&0xffffffff) + 56, 16, 16)) -> intp(5,0,2) #else setx 0xc9d21836ad429260, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_288: .word 0x39400001 ! 385: FBPUGE fbuge,a,pn %fcc0, tagged_1_289: taddcctv %r11, 0x1d42, %r16 .word 0xda07e046 ! 386: LDUW_I lduw [%r31 + 0x0046], %r13 ibp_1_290: nop .word 0xc19fe0c0 ! 387: LDDFA_I ldda [%r31, 0x00c0], %f0 cwp_1_291: set user_data_start, %o7 .word 0x93902004 ! 388: WRPR_CWP_I wrpr %r0, 0x0004, %cwp pmu_1_292: nop ta T_CHANGE_PRIV setx 0xfffff38bfffffede, %g1, %g7 .word 0xa3800007 ! 389: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8f902001 ! 1: WRPR_TL_I wrpr %r0, 0x0001, %tl reduce_priv_lvl_1_293: ta T_CHANGE_NONPRIV ! macro ceter_1_294: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c .word 0xa3410000 ! 391: RDTICK rd %tick, %r17 cwp_1_295: set user_data_start, %o7 .word 0x93902005 ! 392: WRPR_CWP_I wrpr %r0, 0x0005, %cwp splash_lsu_1_296: nop ta T_CHANGE_HPRIV set 0xc68943a9, %r2 mov 0x6, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL ta T_CHANGE_NONHPRIV .word 0x3d400001 ! 393: FBPULE fbule,a,pn %fcc0, intveclr_1_297: nop ta T_CHANGE_HPRIV setx 0x5464fecb70502773, %r1, %r28 stxa %r28, [%g0] 0x72 .word 0x25400001 ! 394: FBPLG fblg,a,pn %fcc0, nop mov 0x80, %g3 stxa %g3, [%g3] 0x5f .word 0xe25fc000 ! 395: LDX_R ldx [%r31 + %r0], %r17 .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_1_298: ta T_CHANGE_NONPRIV ! macro dvapa_1_299: nop ta T_CHANGE_HPRIV mov 0xaab, %r20 mov 0x1b, %r19 sllx %r20, 23, %r20 or %r19, %r20, %r19 stxa %r19, [%g0] ASI_LSU_CONTROL mov 0x38, %r18 stxa %r31, [%r18]0x58 ta T_CHANGE_NONHPRIV .word 0xe3e7e011 ! 397: CASA_R casa [%r31] %asi, %r17, %r17 mondo_1_300: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r19, [%r0+0x3d8] %asi .word 0x9d94c009 ! 398: WRPR_WSTATE_R wrpr %r19, %r9, %wstate .word 0xc19fdb60 ! 399: LDDFA_R ldda [%r31, %r0], %f0 .word 0xa7804014 ! 400: WR_GRAPHICS_STATUS_REG_R wr %r1, %r20, %- #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_302) + 56, 16, 16)) -> intp(4,0,27) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_302)&0xffffffff) + 56, 16, 16)) -> intp(4,0,27) #else setx 0xec0d105134513e4c, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_302: .word 0x39400001 ! 401: FBPUGE fbuge,a,pn %fcc0, brcommon2_1_303: nop setx common_target, %r12, %r27 ba,a .+12 .word 0x9f8020d0 ! 1: SIR sir 0x00d0 ba,a .+8 jmpl %r27+0, %r27 .word 0xe19fe180 ! 402: LDDFA_I ldda [%r31, 0x0180], %f16 nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_304 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x000a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_304: ta T_CHANGE_NONHPRIV .word 0xd3e7e00b ! 403: CASA_R casa [%r31] %asi, %r11, %r9 pmu_1_305: nop setx 0xfffff53ffffff7f4, %g1, %g7 .word 0xa3800007 ! 404: WR_PERF_COUNTER_R wr %r0, %r7, %- jmptr_1_306: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 405: JMPL_R jmpl %r27 + %r0, %r27 .word 0x89800011 ! 406: WRTICK_R wr %r0, %r17, %tick #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_308) + 0, 16, 16)) -> intp(3,0,5) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_308)&0xffffffff) + 0, 16, 16)) -> intp(3,0,5) #else setx 0x7c0387ea7b81cd21, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_308: .word 0x39400001 ! 407: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_1_309: .word 0x81982589 ! 408: WRHPR_HPSTATE_I wrhpr %r0, 0x0589, %hpstate br_badelay2_1_310: .word 0xa1a4c9cc ! 1: FDIVd fdivd %f50, %f12, %f16 pdist %f12, %f18, %f22 .word 0xa5b2c313 ! 409: ALIGNADDRESS alignaddr %r11, %r19, %r18 splash_cmpr_1_311: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x80, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xaf800011 ! 410: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop ta T_CHANGE_HPRIV mov 0x1, %r10 set sync_thr_counter6, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 #endif cas [%r23],%g0,%r10 !lock brnz %r10, sma_1_312 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_MA_SYNC] %asi, %g0 set 0x001a1fff, %g1 stxa %g1, [%g0 + 0x80] %asi wr %r12, %g0, %asi st %g0, [%r23] sma_1_312: ta T_CHANGE_NONHPRIV .word 0xe5e7e009 ! 411: CASA_R casa [%r31] %asi, %r9, %r18 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_313)+0, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_313)&0xffffffff) +0, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_313: .word 0xa984af00 ! 412: WR_SET_SOFTINT_I wr %r18, 0x0f00, %set_softint memptr_1_314: set 0x60740000, %r31 .word 0x8584220d ! 413: WRCCR_I wr %r16, 0x020d, %ccr .word 0x91948001 ! 414: WRPR_PIL_R wrpr %r18, %r1, %pil .word 0x9f803b5f ! 415: SIR sir 0x1b5f nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_316 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_316 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x206100a0, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_316: ta T_CHANGE_NONHPRIV .word 0x9b414000 ! 416: RDPC rd %pc, %r13 intveclr_1_317: nop ta T_CHANGE_HPRIV setx 0x4a125e980806c4a4, %r1, %r28 stxa %r28, [%g0] 0x72 ta T_CHANGE_NONHPRIV .word 0x25400001 ! 417: FBPLG fblg,a,pn %fcc0, splash_cmpr_1_318: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr ta T_CHANGE_PRIV .word 0xb3800011 ! 418: WR_STICK_CMPR_REG_R wr %r0, %r17, %- setx 0x722a6ccdb9ac8722, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_319: .word 0x39400001 ! 419: FBPUGE fbuge,a,pn %fcc0, .word 0x8f902000 ! 1: WRPR_TL_I wrpr %r0, 0x0000, %tl reduce_priv_lvl_1_320: ta T_CHANGE_NONHPRIV ! macro mondo_1_321: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r12, [%r0+0x3e0] %asi .word 0x9d950007 ! 421: WRPR_WSTATE_R wrpr %r20, %r7, %wstate splash_lsu_1_322: nop ta T_CHANGE_HPRIV set 0x3f745404, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 422: FBPULE fbule,a,pn %fcc0, .word 0x3a780001 ! 423: BPCC .word 0xda3fe1c8 ! 424: STD_I std %r13, [%r31 + 0x01c8] .word 0x83d02033 ! 425: Tcc_I te icc_or_xcc, %r0 + 51 otherw mov 0xb4, %r30 .word 0x91d0001e ! 426: Tcc_R ta icc_or_xcc, %r0 + %r30 .word 0x2ecb0001 ! 1: BRGEZ brgez,a,pt %r12, .word 0x8d903a5d ! 427: WRPR_PSTATE_I wrpr %r0, 0x1a5d, %pstate br_badelay2_1_324: .word 0x32800001 ! 1: BNE bne,a allclean .word 0x97b14312 ! 428: ALIGNADDRESS alignaddr %r5, %r18, %r11 vahole_1_325: nop ta T_CHANGE_NONHPRIV setx vahole_target0, %r18, %r27 jmpl %r27+0, %r27 .word 0xd697c02d ! 429: LDUHA_R lduha [%r31, %r13] 0x01, %r11 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.intvec_1_326) + 16, 16, 16)) -> intp(5,0,31) !$EV trig_pc_d(1, expr((@VA(.MAIN.intvec_1_326)&0xffffffff) + 16, 16, 16)) -> intp(5,0,31) #else setx 0xf9d5bfdf12c5e2be, %r1, %r28 stxa %r28, [%g0] 0x73 #endif intvec_1_326: .word 0x39400001 ! 430: FBPUGE fbuge,a,pn %fcc0, splash_hpstate_1_327: ta T_CHANGE_NONHPRIV .word 0x81983448 ! 431: WRHPR_HPSTATE_I wrhpr %r0, 0x1448, %hpstate splash_htba_1_328: nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r11,%r12) .word 0x8b98000c ! 432: WRHPR_HTBA_R wrhpr %r0, %r12, %htba .word 0xd607c000 ! 433: LDUW_R lduw [%r31 + %r0], %r11 .word 0x99b1c541 ! 434: FCMPEQ16 fcmpeq16 %d38, %d32, %r12 donret_1_329: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_329-donret_1_329-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00a2abb3 | (28 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 23, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (1) done donretarg_1_329: .word 0xd8ffe198 ! 435: SWAPA_I swapa %r12, [%r31 + 0x0198] %asi .word 0xa3a40d33 ! 436: FsMULd fsmuld %f16, %f50, %f48 splash_tba_1_330: ta T_CHANGE_PRIV setx 0x0000000000380000, %r11, %r12 .word 0x8b90000c ! 437: WRPR_TBA_R wrpr %r0, %r12, %tba nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xbfefc000 ! 1: RESTORE_R restore %r31, %r0, %r31 .word 0xe25fc000 ! 438: LDX_R ldx [%r31 + %r0], %r17 nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0x9d97c000 ! 1: WRPR_WSTATE_R wrpr %r31, %r0, %wstate .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xe25fc000 ! 439: LDX_R ldx [%r31 + %r0], %r17 donret_1_331: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_331-donret_1_331-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x000daa9b | (28 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0xe13, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (1) .word 0x24800001 ! 1: BLE ble,a done donretarg_1_331: .word 0xe26fe106 ! 440: LDSTUB_I ldstub %r17, [%r31 + 0x0106] donret_1_332: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_332-donret_1_332-8), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0004d9a6 | (20 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1d98, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) retry donretarg_1_332: .word 0xa9a409d3 ! 441: FDIVd fdivd %f16, %f50, %f20 setx 0xc179f0b7662e98bf, %r1, %r28 stxa %r28, [%g0] 0x73 intvec_1_333: .word 0x39400001 ! 442: FBPUGE fbuge,a,pn %fcc0, .word 0xe88fe060 ! 443: LDUBA_I lduba [%r31, + 0x0060] %asi, %r20 .word 0xe937e040 ! 444: STQF_I - %f20, [0x0040, %r31] ta T_CHANGE_NONHPRIV .word 0x8143e011 ! 445: MEMBAR membar #LoadLoad | #Lookaside .word 0xa9b0c487 ! 446: FCMPLE32 fcmple32 %d34, %d38, %r20 brcommon2_1_336: nop setx common_target, %r12, %r27 ba,a .+12 .word 0xa9b7c70d ! 1: FMULD8SUx16 fmuld8ulx16 %f31, %f13, %d20 ba,a .+8 jmpl %r27+0, %r27 .word 0xc1bfc2c0 ! 447: STDFA_R stda %f0, [%r0, %r31] .word 0xa6484003 ! 448: MULX_R mulx %r1, %r3, %r19 splash_lsu_1_337: nop ta T_CHANGE_HPRIV set 0x4993264d, %r2 mov 0x5, %r1 sllx %r1, 32, %r1 or %r1, %r2, %r2 stxa %r2, [%r0] ASI_LSU_CONTROL .word 0x3d400001 ! 449: FBPULE fbule,a,pn %fcc0, mondo_1_338: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi ta T_CHANGE_PRIV stxa %r19, [%r0+0x3d8] %asi .word 0x9d944010 ! 450: WRPR_WSTATE_R wrpr %r17, %r16, %wstate .word 0x89800011 ! 451: WRTICK_R wr %r0, %r17, %tick splash_hpstate_1_340: ta T_CHANGE_NONHPRIV .word 0x3b400001 ! 1: FBPLE fble,a,pn %fcc0, .word 0x81983907 ! 452: WRHPR_HPSTATE_I wrhpr %r0, 0x1907, %hpstate pmu_1_341: nop ta T_CHANGE_PRIV setx 0xfffff41cffffff2d, %g1, %g7 .word 0xa3800007 ! 453: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x93d02035 ! 454: Tcc_I tne icc_or_xcc, %r0 + 53 .word 0xa7a509b1 ! 455: FDIVs fdivs %f20, %f17, %f19 .word 0xe73fc000 ! 456: STDF_R std %f19, [%r0, %r31] cwp_1_342: set user_data_start, %o7 .word 0x93902006 ! 457: WRPR_CWP_I wrpr %r0, 0x0006, %cwp jmptr_1_343: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 458: JMPL_R jmpl %r27 + %r0, %r27 jmptr_1_344: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 459: JMPL_R jmpl %r27 + %r0, %r27 jmptr_1_345: nop best_set_reg(0xe0200000, %r20, %r27) .word 0xb7c6c000 ! 460: JMPL_R jmpl %r27 + %r0, %r27 .word 0xe71fc014 ! 461: LDDF_R ldd [%r31, %r20], %f19 brcommon1_1_347: nop setx common_target, %r12, %r27 lduw [%r27], %r12 ! Load common dest into dcache .. ba,a .+12 .word 0xa7702080 ! 1: POPC_I popc 0x0080, %r19 ba,a .+8 jmpl %r27+0, %r27 .word 0x97b187d3 ! 462: PDIST pdistn %d6, %d50, %d42 .word 0x89800011 ! 463: WRTICK_R wr %r0, %r17, %tick ceter_1_349: nop ta T_CHANGE_HPRIV mov 7, %r17 sllx %r17, 60, %r17 mov 0x18, %r16 stxa %r17, [%r16]0x4c ta T_CHANGE_NONHPRIV .word 0x95410000 ! 464: RDTICK rd %tick, %r10 splash_cmpr_1_350: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x60, %r17 or %r17, %r18, %r17 ta T_CHANGE_HPRIV wrhpr %r17, %g0, %hsys_tick_cmpr .word 0xaf800011 ! 465: WR_TICK_CMPR_REG_R wr %r0, %r17, %- .word 0x92818011 ! 466: ADDcc_R addcc %r6, %r17, %r9 .word 0xd2800b20 ! 467: LDUWA_R lduwa [%r0, %r0] 0x59, %r9 memptr_1_351: set user_data_start, %r31 .word 0x85827a2a ! 468: WRCCR_I wr %r9, 0x1a2a, %ccr .word 0xd27fe190 ! 469: SWAP_I swap %r9, [%r31 + 0x0190] .word 0x9f803bcb ! 470: SIR sir 0x1bcb .word 0x91920001 ! 471: WRPR_PIL_R wrpr %r8, %r1, %pil .word 0x28780001 ! 472: BPLEU jmptr_1_353: nop best_set_reg(0xe1200000, %r20, %r27) .word 0xb7c6c000 ! 473: JMPL_R jmpl %r27 + %r0, %r27 .word 0x95b18484 ! 474: FCMPLE32 fcmple32 %d6, %d4, %r10 unsupttte_1_355: nop ta T_CHANGE_HPRIV mov 1, %r20 sllx %r20, 63, %r20 or %r20, 2,%r20 stxa %r20, [%g0]0x5c ! D unsupported page size .. ta T_CHANGE_NONHPRIV .word 0x99a189b1 ! 475: FDIVs fdivs %f6, %f17, %f12 #if (defined SPC || defined CMP) !$EV trig_pc_d(1, expr(@VA(.MAIN.xir_1_356)+24, 16, 16)) -> intp(mask2tid(0x1),1,3) !$EV trig_pc_d(1, expr((@VA(.MAIN.xir_1_356)&0xffffffff) +24, 16, 16)) -> intp(mask2tid(0x1),1,3) #else !! TODO:Generate XIR via RESET_GEN register ! setx 0x8900000808, %r16, %r17 ! mov 0x2, %r16 ! stw %r16, [%r17] #endif xir_1_356: .word 0xa982b2e7 ! 476: WR_SET_SOFTINT_I wr %r10, 0x12e7, %set_softint trapasi_1_357: nop mov 0x10, %r1 ! (VA for ASI 0x4c) .word 0xd8c04980 ! 477: LDSWA_R ldswa [%r1, %r0] 0x4c, %r12 .word 0xc19fe120 ! 478: LDDFA_I ldda [%r31, 0x0120], %f0 donret_1_358: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_358-donret_1_358-8), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x00358aad | (16 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1c10, %htstate ta T_CHANGE_NONPRIV ! rand=0 (1) retry donretarg_1_358: .word 0xd8ffe1fc ! 479: SWAPA_I swapa %r12, [%r31 + 0x01fc] %asi .word 0x29800001 ! 480: FBL fbl,a mondo_1_360: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3e8] %asi .word 0x9d944012 ! 481: WRPR_WSTATE_R wrpr %r17, %r18, %wstate .word 0xe19fdb60 ! 482: LDDFA_R ldda [%r31, %r0], %f16 br_badelay1_1_361: .word 0x27400001 ! 1: FBPUL fbul,a,pn %fcc0, .word 0xd937c012 ! 1: STQF_R - %f12, [%r18, %r31] .word 0xd83fc008 ! 1: STD_R std %r12, [%r31 + %r8] normalw .word 0x9b458000 ! 483: RD_SOFTINT_REG rd %softint, %r13 .word 0x9f802073 ! 484: SIR sir 0x0073 .word 0xdb27e158 ! 485: STF_I st %f13, [0x0158, %r31] .word 0xda0fc000 ! 486: LDUB_R ldub [%r31 + %r0], %r13 .word 0x26800001 ! 487: BL bl,a pmu_1_362: nop setx 0xfffff2f9fffff050, %g1, %g7 .word 0xa3800007 ! 488: WR_PERF_COUNTER_R wr %r0, %r7, %- .word 0x8d903a33 ! 489: WRPR_PSTATE_I wrpr %r0, 0x1a33, %pstate bvs,a skip_1_364 .word 0xa1a289d2 ! 1: FDIVd fdivd %f10, %f18, %f16 .align 32 skip_1_364: .word 0xc36fe0b5 ! 490: PREFETCH_I prefetch [%r31 + 0x00b5], #one_read donret_1_365: nop ta T_CHANGE_HPRIV ! macro rd %pc, %r12 add %r12, (donretarg_1_365-donret_1_365-4), %r12 add %r12, 0x4, %r11 wrpr %g0, 0x2, %tl wrpr %g0, %r12, %tpc wrpr %g0, %r11, %tnpc set (0x0070313e | (0x55 << 24)), %r13 rdpr %tstate, %r16 mov 0x1f, %r19 and %r19, %r16, %r17 andn %r16, %r19, %r16 or %r16, %r17, %r20 wrpr %r20, %g0, %tstate wrhpr %g0, 0x1757, %htstate ta T_CHANGE_NONHPRIV ! rand=1 (1) done donretarg_1_365: .word 0xdaffe09c ! 491: SWAPA_I swapa %r13, [%r31 + 0x009c] %asi .word 0xdb27e0dc ! 492: STF_I st %f13, [0x00dc, %r31] .word 0xdaffc030 ! 493: SWAPA_R swapa %r13, [%r31 + %r16] 0x01 splash_cmpr_1_366: mov 0, %r18 sllx %r18, 63, %r18 rd %tick, %r17 add %r17, 0x100, %r17 or %r17, %r18, %r17 ta T_CHANGE_PRIV .word 0xaf800011 ! 494: WR_TICK_CMPR_REG_R wr %r0, %r17, %- nop mov 0x80, %g3 stxa %g3, [%g3] 0x57 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xbfe7c000 ! 1: SAVE_R save %r31, %r0, %r31 .word 0xda5fc000 ! 495: LDX_R ldx [%r31 + %r0], %r13 .word 0x9f8038fd ! 496: SIR sir 0x18fd pmu_1_367: nop ta T_CHANGE_PRIV setx 0xfffff91dfffffc4e, %g1, %g7 .word 0xa3800007 ! 497: WR_PERF_COUNTER_R wr %r0, %r7, %- nop ta T_CHANGE_HPRIV mov 0x1+1, %r10 set sync_thr_counter5, %r23 #ifndef SPC ldxa [%g0]0x63, %o1 and %o1, 0x38, %o1 add %o1, %r23, %r23 sllx %o1, 5, %o3 !(CID*256) #endif cas [%r23],%g0,%r10 !lock brnz %r10, cwq_1_368 rd %asi, %r12 wr %g0, 0x40, %asi ldxa [%g0 + ASI_SPU_CWQ_SYNC] %asi, %l1 and %l1, 0x3, %l1 ! Check if busy/enabled .. cmp %l1, 1 bne cwq_1_368 set CWQ_BASE, %l6 #ifndef SPC add %l6, %o3, %l6 #endif stxa %l1, [%g0 + ASI_SPU_CWQ_CSR] %asi best_set_reg(0x20610080, %l1, %l2) !# Control Word sllx %l2, 32, %l2 stx %l2, [%l6 + 0x0] membar #Sync ldxa [%g0 + ASI_SPU_CWQ_HEAD] %asi, %l2 sub %l2, 0x40, %l2 stxa %l2, [%g0 + ASI_SPU_CWQ_HEAD] %asi wr %r12, %g0, %asi st %g0, [%r23] cwq_1_368: ta T_CHANGE_NONHPRIV .word 0xa7414000 ! 498: RDPC rd %pc, %r19 change_to_randtl_1_369: ta T_CHANGE_HPRIV ! macro done_change_to_randtl_1_369: .word 0x8f902000 ! 499: WRPR_TL_I wrpr %r0, 0x0000, %tl .word 0xe737c000 ! 500: STQF_R - %f19, [%r0, %r31] mondo_1_370: nop .word 0x87802025 ! 1: WRASI_I wr %r0, 0x0025, %asi stxa %r16, [%r0+0x3d0] %asi .word 0x9d91c00d ! 501: WRPR_WSTATE_R wrpr %r7, %r13, %wstate nop nop ta T_CHANGE_PRIV wrpr %g0, %g0, %gl nop nop join_lbl_0_0: SECTION .MAIN .text diag_finish: nop nop nop ta T_CHANGE_HPRIV best_set_reg(HV_TRAP_BASE_PA, %r1, %r2) wrhpr %g2, %g0, %htba ta T_GOOD_TRAP nop nop nop .data .xword 0x0 ! fp data rs1, rs2, fsr, gsr quads .. .global fp_data_quads fp_data_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 .align 128 .global user_data_start .data user_data_start: .xword 0x010a401ac1b8ecde .xword 0xe01a0ce85f82688f .xword 0x6a9cb07cdc08ed37 .xword 0x4992bdd39afeed80 .xword 0x0b9ca2437e84c78a .xword 0x07f49a4343976769 .xword 0x8c8025e4fda128ce .xword 0xba12e5552d930d7e .xword 0x8886e11660450c78 .xword 0x5ef62827cd098cff .xword 0xbad5dfd695753419 .xword 0x1267dd6e45feac20 .xword 0x718af2561954053e .xword 0xc9c49d75a805d192 .xword 0x1da6001183e7db6e .xword 0xc2421dc7282e8cc7 .xword 0x1c3d1d6fe17de071 .xword 0xaa933dd5109d36c2 .xword 0x8af30780df9da078 .xword 0x1db299012c318f35 .xword 0x8515f4c467af40e7 .xword 0x7e761451ee6fe19c .xword 0x3768966b370b0265 .xword 0x5885d5d2d722107b .xword 0x76c8bea19300715b .xword 0x90f2ad45ff2eaeb1 .xword 0xb18d818a08ca9964 .xword 0xa53a63538db0253f .xword 0xf051e1ceb181d4ae .xword 0x8a844946d11177ff .xword 0xf6dc7d512768f76e .xword 0xc870d71285292157 .xword 0xc68f51bb00eb0fd9 .xword 0x865d80fadb7958c3 .xword 0x5e7145b3468bfd71 .xword 0x55aca4a6e1968779 .xword 0x30b3895d6b0c0400 .xword 0x0e0c67cc3b7225e4 .xword 0xfd8a2a5c13b42238 .xword 0x71b455dce8ce2826 .xword 0xf7bef0ad07ea3101 .xword 0xc2a87e556acc0de8 .xword 0x136a1374baa26184 .xword 0x70e92cab03f71d9e .xword 0xdc48a3bca6a1ae47 .xword 0xa40e65d64eba3e42 .xword 0x6608017804c53efe .xword 0x8dac03fd5ea5d314 .xword 0xf590423d7c04faaa .xword 0x9bf0879006e681a6 .xword 0xc3a586affd3b1204 .xword 0xc29a5e2bf922dad6 .xword 0x3c49a1c13e3c84a3 .xword 0xfe050d063ec45538 .xword 0x6d19d02d6024f4e4 .xword 0xcea6eb9bae3991d4 .xword 0xbb70d1a3c4bd7d4e .xword 0x8bafb1f419813c11 .xword 0x7443a38e69fd7e7a .xword 0xd75434d907e0e060 .xword 0xfcae1e1072cb3a51 .xword 0x9cf53fa882486517 .xword 0xc731047f032becbe .xword 0x255d33aed4d070b3 .xword 0x845889b015faf9b7 .xword 0x73ec7df1819f379a .xword 0x18687ab28aa5d147 .xword 0xd8cfce09467ff322 .xword 0xf47ca7549f10f052 .xword 0x3eca05ed4751e946 .xword 0x6813e8351cac71e0 .xword 0x545b61cda5d0f71d .xword 0x65f59976b2430995 .xword 0x240a4dbba8a73d7d .xword 0xe33ecb0d8c069fe5 .xword 0xcd15a9f025d5c5d5 .xword 0x7a99b05c700e06f3 .xword 0x565971d8a5df42a4 .xword 0x7c5a378d5002e75f .xword 0xaad4cb9ee6867b00 .xword 0x7c4e2d63f610f5b4 .xword 0xd080c582a1b4a339 .xword 0x942bfda9afffd301 .xword 0x998bc3290356bf7e .xword 0x33d363d9dcf93d2b .xword 0x3cea5cd1216ee478 .xword 0x13c4237c580cd6e2 .xword 0xdc8d1c254764d1b0 .xword 0x4df409af2cd3a237 .xword 0xf29abba23e461892 .xword 0xec87bc3a2aa4655c .xword 0x37a9bfc8b18faec3 .xword 0x0c6ea6ca4f4fbd6c .xword 0x3d047e4c1504da09 .xword 0x3f9e9b3cc45a1258 .xword 0x5584729527041540 .xword 0xe8aab7a90324e75c .xword 0xf57a1db1b1862619 .xword 0xa6099e6cd5aa2e79 .xword 0x9fc6072975ed4ca0 .xword 0x58fafd5c6298efab .xword 0x05a5a461b8339520 .xword 0x4833451a7eefb897 .xword 0x54eec075d18e32b3 .xword 0x6dd1f5388c7bc38b .xword 0xfcc045210e46b971 .xword 0xd7fb39d02c4f6e7c .xword 0x31f8293bb7db35b6 .xword 0x7d85345158656e08 .xword 0xff82ff388110c958 .xword 0xf8405a122ed0f3a5 .xword 0xea5dfe54a2e1cd97 .xword 0xa6ded29d66f81c3c .xword 0x9f8c3942300cffa7 .xword 0x9edcd87f71bf3dce .xword 0x62ee388f950348a1 .xword 0xa573477f2e3e801a .xword 0x93c63938c5c59480 .xword 0x9328a47e46be4ab8 .xword 0xf0dd2a212615d872 .xword 0x2296e566d0889bee .xword 0xdc993a6338470fd8 .xword 0xa1fbd4eabd821f23 .xword 0x7cf9858799167464 .xword 0x2beafb34773eddcd .xword 0xb42ad5a4fe169ad8 .xword 0xcd3fb5ea917fd0d9 .xword 0xdd75f0e4374738bf .xword 0x590b9a605059e547 .xword 0xd9beb747c426d114 .xword 0xe361283150b4192d .xword 0x417ead5e8fca012c .xword 0xa91e1d3524932e44 .xword 0xe964d94e0053a440 .xword 0xfa7ae30ce6b8791b .xword 0x6ac74e97f1ee5238 .xword 0xa095e4c52f22ab20 .xword 0x84f224acaac8b18d .xword 0xe1af6f963683e1d2 .xword 0xbd62f295c631e45b .xword 0x62b218e8ecba18d5 .xword 0x654493db4479bcdd .xword 0xd19e3d23e5689a7f .xword 0xbaab3c1d2df40be8 .xword 0x3817cc28307ecfcb .xword 0x6778d794d1e77d67 .xword 0xce5e7167eff6c141 .xword 0xdcf94bf4db783ea3 .xword 0x1695da63c1c38280 .xword 0x7efa3e317593e901 .xword 0xfc0a0ecc5fd5339e .xword 0x3fcd2b3c7d554330 .xword 0x3699dc9ee46d47ce .xword 0x68520a899e18b82b .xword 0xe82c909488c912c8 .xword 0x0a15dc2ebd7c57e5 .xword 0x0167c5b5915f24c4 .xword 0xfe4c2ace91544bfa .xword 0x8ff175c8101c0758 .xword 0xc0f41b069d246315 .xword 0x0934d527a48a1d5f .xword 0xf64624621333597f .xword 0x44859854004e8e19 .xword 0xcbe22bd4db09d612 .xword 0x98bf91b5643438c8 .xword 0xbd93e4c24ac16c56 .xword 0x44600d495bc50a35 .xword 0xa707e87a283f49b3 .xword 0x34b7c1ea30de6627 .xword 0xa22b014bc682cad1 .xword 0x12db714c55851c12 .xword 0x081f2d24e6d63437 .xword 0xb881c8033e878075 .xword 0x09325bd2a99bc686 .xword 0x45e9e2eca9551390 .xword 0x3bf4501e5d58f1be .xword 0x05060a273016ee10 .xword 0x2424117e55cfb3ce .xword 0xe68e71422dc31f45 .xword 0x6d38efa76e22410a .xword 0xe12810feca31778b .xword 0x15c34c5065616f8b .xword 0x34074c2f0f4ea3a0 .xword 0xfa6b7fb5e393f3f2 .xword 0x9c4dac5c600d69d1 .xword 0x49db1f89bc886794 .xword 0x0c831444481af0e4 .xword 0x3f55d88f743e9efb .xword 0xd1b95dbf6a34c793 .xword 0x88eb74b292e48b79 .xword 0x9efcb517545d9432 .xword 0x849ef50a7a3e8600 .xword 0x844c00b038e7e41c .xword 0xc9009731e8e382df .xword 0x0adbe8f310facf40 .xword 0x46f79815d4313316 .xword 0x61cdd31fae80baf3 .xword 0xc1c8851e43d61286 .xword 0xac4965cb0073a4dc .xword 0x9abb608b6eaf0e82 .xword 0xecd4043b8a7dc9b1 .xword 0x1985b4c639a1a64d .xword 0x72bd2e12696994ce .xword 0x89b6137d470a46dc .xword 0x82156a12426a7361 .xword 0xb5e41ae06e0d980a .xword 0xd29afd648c4a6562 .xword 0x594fbd57f85a60bb .xword 0x79771c34fc16070b .xword 0x5f51f5f7c556faf6 .xword 0x1d9b07895f935932 .xword 0xa5e19a2d7e2edea8 .xword 0x8502c57d23bf7145 .xword 0x5f3d837fd55781f6 .xword 0xc2b5ebc5957a8f4b .xword 0xd734679756a38256 .xword 0x048090af28bc305e .xword 0xe46dd30fcc33a295 .xword 0xea44955fc259825e .xword 0x0263fe2ba45e8d10 .xword 0x0284ba00f1a49c50 .xword 0x572430978dcbf29b .xword 0x52d256039e943434 .xword 0xeb69958876b4bc07 .xword 0x360e5ae4d9c3173d .xword 0xaefc5fe88762f9d7 .xword 0x86568bf13b7101bd .xword 0x54e67249acf0490d .xword 0x9cb66137cac133e5 .xword 0xd75bb3f1a60f828a .xword 0x1c302cac9eb869c6 .xword 0x2e092d213ca07117 .xword 0xfda351f62fc42d73 .xword 0x862f5a19ca692c94 .xword 0x6f9e009317067bc4 .xword 0xaf3f8d330d9136d3 .xword 0x7e01e61ad570de7e .xword 0x1ac7b61f385a84a5 .xword 0x746a1403f365809d .xword 0xe61fa950b291217b .xword 0x49a3ec9cca82b557 .xword 0x11e53d98d21feb78 .xword 0x03c12bd49751d87d .xword 0x4bc49e8a53be2750 .xword 0xe3ad9813749ccda1 .xword 0xa7b58b00db629fdb .xword 0xcb7a3d8761aaf0be .xword 0x852c0083fd2185a3 .xword 0x82017ea0bb8fb013 .xword 0xe6a9aa2700034107 .xword 0x7c009d1a7c5d2079 .xword 0x1ee6c269678a2a9c .xword 0xdc074f23ff0608bb .xword 0x0221c9c33dff7849 .xword 0x48c2c822f7cba2aa .xword 0xc16d85c7070872aa SECTION .HTRAPS .text .global restore_range_regs restore_range_regs: wr %g0, ASI_MMU_REAL_RANGE, %asi mov 1, %g1 sllx %g1, 63, %g1 ldxa [ASI_MMU_REAL_RANGE_0] %asi, %g2 or %g2 ,%g1, %g2 stxa %g2, [ASI_MMU_REAL_RANGE_0] %asi ldxa [ASI_MMU_REAL_RANGE_1] %asi, %g2 or %g2 ,%g1, %g2 stxa %g2, [ASI_MMU_REAL_RANGE_1] %asi ldxa [ASI_MMU_REAL_RANGE_2] %asi, %g2 or %g2 ,%g1, %g2 stxa %g2, [ASI_MMU_REAL_RANGE_2] %asi ldxa [ASI_MMU_REAL_RANGE_3] %asi, %g2 or %g2 ,%g1, %g2 stxa %g2, [ASI_MMU_REAL_RANGE_3] %asi retry .global wdog_2_ext # 10 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_extensions.s" SECTION .HTRAPS .global wdog_2_ext .global retry_with_base_tba .global resolve_bad_tte .text resolve_bad_tte: !if pc[13:5]==0, then assume not a relocated handler rdpr %tpc, %r4 andn %r4, 0xf, %r4 sllx %r4, 49, %r5 brnz,a %r5, retry_with_base_tba !assume %r27 is where we came from .. fdivd %f0, %f4, %f12 jmpl %r27+8, %r0 fdivs %f0, %f4, %f12 retry_with_base_tba: best_set_reg(TRAP_BASE_VA, %r3, %r5) cmp %r4, %r5 bz htrap_5_ext_done set 0x7fff, %r3 and %r4, %r3, %r4 or %r5, %r4, %r4 wrpr %r4, %tpc rdpr %tnpc, %r4 and %r4, %r3, %r4 or %r5, %r4, %r4 wrpr %r4, %tnpc retry htrap_5_ext: rd %pc, %l2 inc %l3 add %l2, htrap_5_ext_done-htrap_5_ext, %l2 rdpr %tl, %l3 rdpr %tstate, %l4 rdhpr %htstate, %l5 or %l5, 0x4, %l5 inc %l3 wrpr %l3, %tl wrpr %l2, %tpc add %l2, 4, %l2 wrpr %l2, %tnpc wrpr %l4, %tstate wrhpr %l5, %htstate retry htrap_5_ext_done: done wdog_2_ext: mov 0x1f, %l1 stxa %l1, [%g0] ASI_LSU_CTL_REG ! If TT != 2, then goto trap handler rdpr %tt, %l1 cmp %l1, 0x2 bne wdog_2_goto_handler nop ! else done done wdog_2_goto_handler: rdhpr %htstate, %l3 and %l3, 0x4, %l3 ! If previously in hpriv mode, go to hpriv brnz,a %l3, wdog_2_goto_handler_1 rdhpr %htba, %l3 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 rdpr %tba, %l3 rdhpr %htba, %l3 wdog_2_goto_handler_1: sllx %l1, 5, %l1 add %l1, %l3, %l3 jmp %l3 nop # 86 "/import/n2-aus-localdir1/somePerson/n2cdmspp2/verif/diag/assembly/include/tlu_custom_trap_extensions.s" ! Red mode other reset handler ! Get htba, and tt and make trap address ! Jump to trap handler .. SECTION .RED_SEC .global red_other_ext .global wdog_red_ext .text red_other_ext: ! IF TL=6, shift stack by one .. rdpr %tl, %l1 cmp %l1, 6 be start_tsa_shift nop continue_red_other: mov 0x1f, %l1 stxa %l1, [%g0] ASI_LSU_CTL_REG rdpr %tt, %l1 rdhpr %htstate, %l2 and %l2, 0x4, %l2 ! If previously in hpriv mode, go to hpriv brnz,a %l2, red_goto_handler rdhpr %htba, %l2 srlx %l1, 7, %l2 ! Send priv sw traps to priv mode .. cmp %l2, 0x2 ! 0x2 = priv sw trap, 0x3=hpriv sw trap .. be,a red_goto_handler rdpr %tba, %l2 rdhpr %htba, %l2 red_goto_handler: sllx %l1, 5, %l1 add %l1, %l2, %l2 rdhpr %hpstate, %l1 jmp %l2 wrhpr %l1, 0x20, %hpstate nop wdog_red_ext: ! Shift stack down by 1 ... rdpr %tl, %l1 cmp %l1, 6 bl wdog_end start_tsa_shift: mov 0x2, %l2 tsa_shift: wrpr %l2, %tl rdpr %tt, %l3 rdpr %tpc, %l4 rdpr %tnpc, %l5 rdpr %tstate, %l6 rdhpr %htstate, %l7 dec %l2 wrpr %l2, %tl wrpr %l3, %tt wrpr %l4, %tpc wrpr %l5, %tnpc wrpr %l6, %tstate wrhpr %l7, %htstate add %l2, 2, %l2 cmp %l2, %l1 ble tsa_shift nop tsa_shift_done: dec %l1 wrpr %l1, %tl wdog_end: ! If TT != 2, then goto trap handler rdpr %tt, %l1 cmp %l1, 0x2 bne continue_red_other nop ! else done mov 0x1f, %l1 stxa %l1, [%g0] ASI_LSU_CTL_REG done # 961 "diag.j" SECTION .CWQ_DATA DATA_VA =0x4000 attr_data { Name = .CWQ_DATA hypervisor } .data .align 16 .global msg msg: .xword 0xad32fa52374cc6ba .xword 0x4cbf52280549003a .align 16 .global results results: .xword 0xDEADBEEFDEADBEEF .xword 0xDEADBEEFDEADBEEF !# CWQ data area !# CWQ_BASE for core N is CWQ_BASE+(N*256) !# CWQ_LAST for core N is CWQ_LAST+(N*256) .align 64 .global CWQ_BASE CWQ_BASE: .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .global CWQ_LAST .align 64 CWQ_LAST: .word 0x0 .align 64 cwq_base1: .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .align 64 cwq_last1: .word 0x0 .align 64 .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .align 64 .word 0x0 .align 64 .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .align 64 .word 0x0 .align 64 .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .align 64 .word 0x0 .align 64 .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .align 64 .word 0x0 .align 64 .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .align 64 .word 0x0 .align 64 .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .xword 0xAAAAAAAAAAAAAAA .align 64 .word 0x0 SECTION .MyHTRAPS_0 TEXT_VA = 0x0000000000280000, DATA_VA = 0x00000000002c0000 attr_text { Name = .MyHTRAPS_0, RA = 0x0000000000280000, PA = ra2pa(0x0000000000280000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 0, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 0, TTE_E = 0, TTE_P = 1, TTE_W = 0, TTE_X = 0 } attr_data { Name = .MyHTRAPS_0, RA = 0x00000000002c0000, PA = ra2pa(0x00000000002c0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 0, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 1, TTE_CV = 1, TTE_E = 0, TTE_P = 1, TTE_W = 0 } .text #include "htraps.s" #include "tlu_htraps_ext.s" SECTION .MyHTRAPS_1 TEXT_VA = 0x00000000002a0000, DATA_VA = 0x00000000002e0000 attr_text { Name = .MyHTRAPS_1, RA = 0x00000000002a0000, PA = ra2pa(0x00000000002a0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 0, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 1, TTE_E = 1, TTE_P = 1, TTE_W = 0, TTE_X = 0 } attr_data { Name = .MyHTRAPS_1, RA = 0x00000000002e0000, PA = ra2pa(0x00000000002e0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 0, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 1, TTE_CV = 1, TTE_E = 0, TTE_P = 1, TTE_W = 0 } .text #include "htraps.s" #include "tlu_htraps_ext.s" SECTION .MyHTRAPS_2 TEXT_VA = 0x0000000200280000, DATA_VA = 0x00000002002c0000 attr_text { Name = .MyHTRAPS_2, RA = 0x0000000200280000, PA = ra2pa(0x0000000200280000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, 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 = 1, TTE_P = 1, TTE_W = 0, TTE_X = 0 } attr_data { Name = .MyHTRAPS_2, RA = 0x00000002002c0000, PA = ra2pa(0x00000002002c0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 0, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 0, TTE_E = 0, TTE_P = 1, TTE_W = 0 } .text #include "htraps.s" #include "tlu_htraps_ext.s" SECTION .MyHTRAPS_3 TEXT_VA = 0x00000002002a0000, DATA_VA = 0x00000002002e0000 attr_text { Name = .MyHTRAPS_3, RA = 0x00000002002a0000, PA = ra2pa(0x00000002002a0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 0, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 1, TTE_CV = 1, TTE_E = 0, TTE_P = 1, TTE_W = 0, TTE_X = 0 } attr_data { Name = .MyHTRAPS_3, RA = 0x00000002002e0000, PA = ra2pa(0x00000002002e0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, 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 = 1, TTE_W = 0 } .text #include "htraps.s" #include "tlu_htraps_ext.s" SECTION .MyTRAPS_0 TEXT_VA = 0x0000000000380000, DATA_VA = 0x00000000003c0000 attr_text { Name = .MyTRAPS_0, RA = 0x0000000000380000, PA = ra2pa(0x0000000000380000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 1, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 1, TTE_CV = 1, TTE_E = 0, TTE_P = 1, TTE_W = 1, TTE_X = 0 } attr_data { Name = .MyTRAPS_0, RA = 0x00000000003c0000, PA = ra2pa(0x00000000003c0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 1, TTE_IE = 1, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 1, TTE_E = 0, TTE_P = 1, TTE_W = 0 } #include "traps.s" SECTION .MyTRAPS_1 TEXT_VA = 0x00000000003a0000, DATA_VA = 0x00000000003e0000 attr_text { Name = .MyTRAPS_1, RA = 0x00000000003a0000, PA = ra2pa(0x00000000003a0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 1, TTE_IE = 1, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 1, TTE_E = 0, TTE_P = 1, TTE_W = 1, TTE_X = 0 } attr_data { Name = .MyTRAPS_1, RA = 0x00000000003e0000, PA = ra2pa(0x00000000003e0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 1, TTE_IE = 1, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 1, TTE_CV = 0, TTE_E = 0, TTE_P = 1, TTE_W = 0 } #include "traps.s" SECTION .MyTRAPS_2 TEXT_VA = 0x0000000400380000, DATA_VA = 0x00000004003c0000 attr_text { Name = .MyTRAPS_2, RA = 0x0000000400380000, PA = ra2pa(0x0000000400380000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, 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 = 1, TTE_W = 1, TTE_X = 0 } attr_data { Name = .MyTRAPS_2, RA = 0x00000004003c0000, PA = ra2pa(0x00000004003c0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 0, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 0, TTE_E = 0, TTE_P = 1, TTE_W = 0 } #include "traps.s" SECTION .MyTRAPS_3 TEXT_VA = 0x00000004003a0000, DATA_VA = 0x00000004003e0000 attr_text { Name = .MyTRAPS_3, RA = 0x00000004003a0000, PA = ra2pa(0x00000004003a0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 1, TTE_IE = 1, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 1, TTE_CV = 1, TTE_E = 0, TTE_P = 0, TTE_W = 1, TTE_X = 0 } attr_data { Name = .MyTRAPS_3, RA = 0x00000004003e0000, PA = ra2pa(0x00000004003e0000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0, TTE_V = 1, TTE_Size = PART0_Z_PAGE_SIZE_3, TTE_NFO = 1, 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 = 1, TTE_W = 0 } #include "traps.s" SECTION .MyDATA_0 TEXT_VA = 0x00000000e0140000, DATA_VA = 0x0000000060140000 attr_data { Name = .MyDATA_0, RA = 0x0000000170100000, PA = ra2pa(0x0000000170100000,0), part_0_ctx_zero_tsb_config_0, part_0_ctx_nonzero_tsb_config_0, TTE_G = 1, TTE_Context = PCONTEXT, TTE_V = 1, TTE_Size = 1, TTE_NFO = 0, TTE_IE = 1, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 1, TTE_CV = 0, TTE_E = 0, TTE_P = 1, TTE_W = 0 } attr_data { Name = .MyDATA_0, RA = 0x0000000170100000, PA = ra2pa(0x0000000170100000,0), part_0_ctx_zero_tsb_config_1, part_0_ctx_nonzero_tsb_config_1, TTE_G = 1, TTE_Context = SCONTEXT, TTE_V = 1, TTE_Size = 3, TTE_NFO = 1, TTE_IE = 1, 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, tsbonly } attr_data { Name = .MyDATA_0, hypervisor } attr_text { Name = .MyDATA_0, hypervisor } .data .xword 0x1e63788adcefa661 .xword 0x34d068861ae48239 .xword 0xc18468fc7a78bd93 .xword 0x5bd389e46ce06542 .xword 0x94686674c5937a89 .xword 0xdd3239f4cfa82021 .xword 0x2fa2198fc232f6fe .xword 0x82c2acf32e447c83 .xword 0x3ff5bb204f707a95 .xword 0xe169367644aaf730 .xword 0xfc4fca1ebd9bea51 .xword 0x74b7ad7d6a996f8b .xword 0xb4e7d24ec472838a .xword 0xfbb4ea2005b49d1e .xword 0x9fffd6017ffc4fd9 .xword 0x2992361a09e12c3b .xword 0xdb2706e5a0aab5f2 .xword 0x79d8bbd3f1437a0e .xword 0xa7478ce0eeda9ff1 .xword 0x235fddf488ba51ba .xword 0x23d298cdf783a516 .xword 0xd3db69d588a8428a .xword 0x1ada27b4a14cd4d0 .xword 0x862d643f1ef506cb .xword 0x58a71f5fd4d997a9 .xword 0x234f2259c71c78ad .xword 0xf8e8a9cab7d794a6 .xword 0x0addea84803dd59d .xword 0x771ed93c1671e1a0 .xword 0xd535440d985d7973 .xword 0xe9dd84d4b40ee5bc .xword 0xfecabf5966323cb8 SECTION .MyDATA_1 TEXT_VA = 0x00000000e0340000, DATA_VA = 0x0000000060340000 attr_data { Name = .MyDATA_1, RA = 0x0000000170300000, PA = ra2pa(0x0000000170300000,0), part_0_ctx_zero_tsb_config_0, part_0_ctx_nonzero_tsb_config_0, TTE_G = 1, TTE_Context = PCONTEXT, TTE_V = 1, TTE_Size = 3, TTE_NFO = 0, TTE_IE = 1, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 1, TTE_E = 0, TTE_P = 0, TTE_W = 1 } attr_data { Name = .MyDATA_1, RA = 0x0000000170300000, PA = ra2pa(0x0000000170300000,0), part_0_ctx_zero_tsb_config_1, part_0_ctx_nonzero_tsb_config_1, TTE_G = 1, TTE_Context = SCONTEXT, TTE_V = 1, TTE_Size = 1, TTE_NFO = 1, TTE_IE = 1, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 1, TTE_E = 0, TTE_P = 1, TTE_W = 1, tsbonly } attr_data { Name = .MyDATA_1, hypervisor } attr_text { Name = .MyDATA_1, hypervisor } .data .xword 0x6d4854208a792ed8 .xword 0x2138b2e680ecb2ec .xword 0xd16e98392e96f03e .xword 0x05749cee4cf1dadf .xword 0xf1abc7b8b47bf6d8 .xword 0xc84500f35cfdf2f5 .xword 0xd402af0fe36bdf79 .xword 0x13c7bd8944909eac .xword 0x64462ece0af8b532 .xword 0xcddd540b541fab8d .xword 0x17bb22cfc292c26d .xword 0xc6bd66f47394734e .xword 0x5936ff40bb391b11 .xword 0x40444fc01f316936 .xword 0xaa4f1b49563fb4e5 .xword 0xc275e70b9eaf0d94 .xword 0x7547d63020035c64 .xword 0xc5740bd7a3781368 .xword 0x418b6751e95e9ccd .xword 0xf0feadc0439b2396 .xword 0x1029cefcb0acee7f .xword 0xd63f0eb7b6146e5c .xword 0xb3885c4ae4c49165 .xword 0xa9af82832704fdf8 .xword 0x2198baa1fbb6d62f .xword 0xd6f259241c632aaa .xword 0xa0d51871de981c80 .xword 0x6e8d9ab15f464237 .xword 0xa28063935bad7304 .xword 0x797a04a8f488e969 .xword 0xadc55c544ea564a8 .xword 0x1bd580b0a4318e42 SECTION .MyDATA_2 TEXT_VA = 0x00000000e0540000, DATA_VA = 0x0000000060540000 attr_data { Name = .MyDATA_2, RA = 0x0000000170500000, PA = ra2pa(0x0000000170500000,0), part_0_ctx_zero_tsb_config_0, part_0_ctx_nonzero_tsb_config_0, TTE_G = 1, TTE_Context = PCONTEXT, TTE_V = 1, TTE_Size = 1, 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 = 1, TTE_W = 0 } attr_data { Name = .MyDATA_2, RA = 0x0000000170500000, PA = ra2pa(0x0000000170500000,0), part_0_ctx_zero_tsb_config_1, part_0_ctx_nonzero_tsb_config_1, TTE_G = 1, TTE_Context = SCONTEXT, TTE_V = 1, TTE_Size = 3, TTE_NFO = 1, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 0, TTE_E = 1, TTE_P = 1, TTE_W = 0, tsbonly } attr_data { Name = .MyDATA_2, hypervisor } attr_text { Name = .MyDATA_2, hypervisor } .data .xword 0xa55938ca91aca3f3 .xword 0x2a88abee5a41b05d .xword 0xb20fd415def59bdd .xword 0x07288f58d55373ce .xword 0x805827c7ab5849aa .xword 0x9ccd23b4445412b8 .xword 0x48bf22eb9a6150d6 .xword 0xeef0612956b0b063 .xword 0xb55aad0b71801a4c .xword 0xe7b338447028fac2 .xword 0xf75bd6bed4639182 .xword 0xaee68e03744e2ff7 .xword 0xb1eef80ff49a66d3 .xword 0x9f2634c56ea83d95 .xword 0x8db3d9ab6440da2d .xword 0xa5dce371361c0f7c .xword 0x41cbefd9aa64e9a2 .xword 0xc0ca2a6097aae39d .xword 0xf17154a8452f7da5 .xword 0x26a1f7a8f6c72e87 .xword 0x8518a874244862b0 .xword 0xbe6f88ca81f663d6 .xword 0xf8391f5eecfa36a5 .xword 0x418e8fc0c0ae8c42 .xword 0x51fe69f1712e7d6d .xword 0x985f508c8098427a .xword 0x9cf6714bba6a0f4f .xword 0xd2cb77ff1de7a5aa .xword 0xf0d83483cf0a5e94 .xword 0x848cbb96e2e81c11 .xword 0xb2c7311fe8ec90d7 .xword 0x7d7a2f5825361fbd SECTION .MyDATA_3 TEXT_VA = 0x00000000e0740000, DATA_VA = 0x0000000060740000 attr_data { Name = .MyDATA_3, RA = 0x0000000170700000, PA = ra2pa(0x0000000170700000,0), part_0_ctx_zero_tsb_config_0, part_0_ctx_nonzero_tsb_config_0, TTE_G = 1, TTE_Context = PCONTEXT, 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 = 1, TTE_E = 1, TTE_P = 0, TTE_W = 1 } attr_data { Name = .MyDATA_3, RA = 0x0000000170700000, PA = ra2pa(0x0000000170700000,0), part_0_ctx_zero_tsb_config_1, part_0_ctx_nonzero_tsb_config_1, TTE_G = 1, TTE_Context = SCONTEXT, TTE_V = 1, TTE_Size = 3, TTE_NFO = 1, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 0, TTE_E = 1, TTE_P = 0, TTE_W = 1, tsbonly } attr_data { Name = .MyDATA_3, hypervisor } attr_text { Name = .MyDATA_3, hypervisor } .data .xword 0x21adbd97c51d2b95 .xword 0x2d63b75f3a59c038 .xword 0x0b603a59e09ab365 .xword 0x5600d59825fcb6fd .xword 0x76a1e2f2c551dba1 .xword 0x8a78e3f353c1997d .xword 0x33d89d46edcb1934 .xword 0xc0dce043d97af13b .xword 0x6082f2ee3633c527 .xword 0x0812e6360706b1cd .xword 0xa5ff36a573d196ba .xword 0x6d9627e5e48d8182 .xword 0x2b240faf36cb5e50 .xword 0x415060ae72d16253 .xword 0x3413326ff35a63a1 .xword 0xc83016d3d3af2223 .xword 0x4200a45cca66c7ea .xword 0x45cc74de9e569648 .xword 0x964b23a2291672a9 .xword 0xee541c6b4cdcbd9b .xword 0x4bcd509df9eaa208 .xword 0xff237e9e49d2bec9 .xword 0xbd0de5201b070604 .xword 0x7f3259fed2ebe84f .xword 0x1959dd2258c6f7bc .xword 0x2f3741cfb863a1d3 .xword 0xba961a49c2684b0d .xword 0x9c193a8c143c9dd8 .xword 0xc14c26d7b75dd03e .xword 0xcb9cedfce57c0bff .xword 0x018782958edfa663 .xword 0x4905df69106e9628 SECTION .MyTEXT_0 TEXT_VA = 0x00000000e0200000 attr_text { Name = .MyTEXT_0, RA = 0x00000000e0200000, PA = ra2pa(0x00000000e0200000,0), part_0_ctx_zero_tsb_config_1, part_0_ctx_nonzero_tsb_config_1, TTE_G = 1, TTE_Context = PCONTEXT, TTE_V = 1, TTE_Size = 3, TTE_NFO = 0, TTE_IE = 1, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 1, TTE_E = 0, TTE_P = 1, TTE_W = 0 } .text nuff_said_0: fdivd %f0, %f4, %f4 jmpl %r27+8, %r0 fdivs %f0, %f4, %f4 SECTION .MyTEXT_1 TEXT_VA = 0x00000000e0a00000 attr_text { Name = .MyTEXT_1, RA = 0x00000000e0a00000, PA = ra2pa(0x00000000e0a00000,0), part_0_ctx_zero_tsb_config_1, part_0_ctx_nonzero_tsb_config_1, TTE_G = 1, TTE_Context = PCONTEXT, TTE_V = 1, TTE_Size = 1, TTE_NFO = 0, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 0, TTE_E = 0, TTE_P = 1, TTE_W = 1 } .text nuff_said_1: fdivs %f0, %f4, %f6 jmpl %r27+8, %r0 fdivd %f0, %f4, %f8 SECTION .MyTEXT_2 TEXT_VA = 0x00000000e1200000 attr_text { Name = .MyTEXT_2, RA = 0x00000000e1200000, PA = ra2pa(0x00000000e1200000,0), part_0_ctx_zero_tsb_config_1, part_0_ctx_nonzero_tsb_config_1, TTE_G = 1, TTE_Context = PCONTEXT, 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 = 1, TTE_P = 1, TTE_W = 1 } .text nuff_said_2: fdivd %f0, %f4, %f8 jmpl %r27+8, %r0 fdivs %f0, %f4, %f4 SECTION .MyTEXT_3 TEXT_VA = 0x00000000e1a00000 attr_text { Name = .MyTEXT_3, RA = 0x00000000e1a00000, PA = ra2pa(0x00000000e1a00000,0), part_0_ctx_zero_tsb_config_1, part_0_ctx_nonzero_tsb_config_1, TTE_G = 1, TTE_Context = PCONTEXT, TTE_V = 1, TTE_Size = 3, TTE_NFO = 0, TTE_IE = 1, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 1, TTE_CV = 1, TTE_E = 1, TTE_P = 0, TTE_W = 1 } .text nuff_said_3: fdivs %f0, %f4, %f4 jmpl %r27+8, %r0 fdivd %f0, %f4, %f8 SECTION .VaHOLE_0 TEXT_VA = 0x00007fffffffe000 attr_text { Name = .VaHOLE_0, RA = 0x00000000ffffe000, PA = ra2pa(0x00000000ffffe000,0), part_0_ctx_zero_tsb_config_1, part_0_ctx_nonzero_tsb_config_1, TTE_G = 1, TTE_Context = PCONTEXT, TTE_V = 1, TTE_Size = 3, TTE_NFO = 0, TTE_IE = 1, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 1, TTE_CV = 1, TTE_E = 1, TTE_P = 0, TTE_W = 0, TTE_X = 1 } .text .global vahole_target0 .text .global vahole_target1 .text .global vahole_target2 .text .global vahole_target3 nop .align 4096 nop .align 2048 nop .align 1024 nop .align 512 nop .align 256 nop .align 128 nop .align 64 nop nop .align 16 nop;nop;nop vahole_target0: nop;nop vahole_target1: nop vahole_target2: nop;nop;nop vahole_target3: nop;nop;nop SECTION .VaHOLEL_0 TEXT_VA = 0x00000000ffffe000 attr_text { Name = .VaHOLEL_0, RA = 0x00000000ffffe000, PA = ra2pa(0x00000000ffffe000,0), part_0_ctx_zero_tsb_config_0, part_0_ctx_nonzero_tsb_config_0, TTE_G = 1, TTE_Context = PCONTEXT, TTE_V = 1, TTE_Size = 3, TTE_NFO = 0, TTE_IE = 0, TTE_Soft2 = 0, TTE_Diag = 0, TTE_Soft = 0, TTE_L = 0, TTE_CP = 0, TTE_CV = 1, TTE_E = 0, TTE_P = 0, TTE_W = 1, TTE_X = 1, tsbonly } .text nop SECTION .MASKEDHOLE TEXT_VA = 0x0000000100000000 attr_text { Name = .MASKEDHOLE, RA = 0x0000000000000000, PA = ra2pa(0x0000000000000000,0), part_0_ctx_zero_tsb_config_3, part_0_ctx_nonzero_tsb_config_3, TTE_G = 1, TTE_Context = 0x44, TTE_V = 1, TTE_Size = 1, TTE_NFO = 0, TTE_IE = 1, 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 tsbonly } .text nop nop jmpl %r27+8, %r0 nop nop nop nop nop SECTION .ZERO_0 TEXT_VA = 0x0000000000000000 attr_text { Name = .ZERO_0, RA = 0x0000000000000000, PA = ra2pa(0x0000000000000000,0), part_0_ctx_zero_tsb_config_1, part_0_ctx_nonzero_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 = 0, TTE_CV = 0, TTE_E = 1, TTE_P = 0, TTE_W = 1, TTE_X = 1 } .text nop nop jmpl %r27+8, %r0 nop nop nop nop nop Power_On_Reset: setx HRedmode_Reset_Handler, %g1, %g2 jmp %g2 nop .align 32 Watchdog_Reset: !setx wdog_red_ext, %g1, %g2 jmp %g2 nop .align 32 External_Reset: My_External_Reset .align 32 Software_Initiated_Reset: setx Software_Reset_Handler, %g1, %g2 jmp %g2 nop .align 32 RED_Mode_Other_Reset: setx red_other_ext, %g1, %g2 jmp %g2 nop SECTION .VaHOLE_PA_0 TEXT_VA = 0x000000ffffffe000 attr_text { Name = .VAHOLE_PA_0, hypervisor } nop .align 4096 nop .align 2048 nop .align 1024 nop .align 512 nop .align 256 nop .align 128 nop .align 64 nop nop .align 16 nop;nop;nop nop nop jmpl %r27+8, %r0 nop nop nop jmpl %r27+8, %r0 nop #if 0 #endif