| |
| <------> |
| <------>.globl do_fpdis |
| <------>.type do_fpdis,#function |
| do_fpdis: |
| <------>sethi |
| <------>rdpr |
| <------>andcc |
| <------>be,pt |
| <------> nop |
| <------>rd |
| <------>andcc |
| <------>be,pt |
| <------> nop |
| |
| <------> |
| <------>sethi |
| <------>ba,pt |
| 109: or |
| <------>add |
| <------>ba,a,pt |
| |
| 1: TRAP_LOAD_THREAD_REG( |
| <------>ldub [ |
| <------>wr |
| <------>andcc |
| <------>be,a,pt |
| <------> clr |
| <------>ldx [ |
| 1: andcc |
| <------>bne,pn |
| <------> fzero |
| <------>andcc |
| <------>bne,pn |
| <------> fzero |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>b,pt |
| <------> faddd |
| 1: mov SECONDARY_CONTEXT, |
| <------>add |
| <------>faddd |
| <------>fmuld |
| |
| 661: ldxa [ |
| <------>.section .sun4v_1insn_patch, "ax" |
| <------>.word 661b |
| <------>ldxa [ |
| <------>.previous |
| |
| <------>sethi |
| <------>ldx [ |
| |
| 661: stxa |
| <------>.section .sun4v_1insn_patch, "ax" |
| <------>.word 661b |
| <------>stxa |
| <------>.previous |
| |
| <------>membar #Sync |
| <------>add |
| <------>faddd |
| <------>fmuld |
| <------>membar #Sync |
| <------>ldda [ |
| <------>ldda [ |
| <------>membar #Sync |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>ba,a,pt |
| |
| 2: andcc |
| <------>bne,pt |
| <------> fzero |
| <------>mov SECONDARY_CONTEXT, |
| <------>fzero |
| |
| 661: ldxa [ |
| <------>.section .sun4v_1insn_patch, "ax" |
| <------>.word 661b |
| <------>ldxa [ |
| <------>.previous |
| |
| <------>add |
| <------>sethi |
| <------>ldx [ |
| |
| 661: stxa |
| <------>.section .sun4v_1insn_patch, "ax" |
| <------>.word 661b |
| <------>stxa |
| <------>.previous |
| |
| <------>membar #Sync |
| <------>add |
| <------>faddd |
| <------>fmuld |
| <------>membar #Sync |
| <------>ldda [ |
| <------>ldda [ |
| <------>membar #Sync |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>faddd |
| <------>fmuld |
| <------>ba,a,pt |
| |
| 3: mov SECONDARY_CONTEXT, |
| <------>add |
| |
| 661: ldxa [ |
| <------>.section .sun4v_1insn_patch, "ax" |
| <------>.word 661b |
| <------>ldxa [ |
| <------>.previous |
| |
| <------>sethi |
| <------>ldx [ |
| |
| 661: stxa |
| <------>.section .sun4v_1insn_patch, "ax" |
| <------>.word 661b |
| <------>stxa |
| <------>.previous |
| |
| <------>membar #Sync |
| <------>mov 0x40, |
| <------>membar #Sync |
| <------>ldda [ |
| <------>ldda [ |
| <------>add |
| <------>ldda [ |
| <------>ldda [ |
| <------>membar #Sync |
| fpdis_exit: |
| |
| 661: stxa |
| <------>.section .sun4v_1insn_patch, "ax" |
| <------>.word 661b |
| <------>stxa |
| <------>.previous |
| |
| <------>membar #Sync |
| fpdis_exit2: |
| <------>wr |
| <------>ldx [ |
| <------>rdpr |
| <------>or |
| <------>wrpr |
| <------>wr |
| <------>retry |
| <------>.size do_fpdis,.-do_fpdis |
| |
| <------>.align 32 |
| <------>.type fp_other_bounce,#function |
| fp_other_bounce: |
| <------>call do_fpother |
| <------> add |
| <------>ba,a,pt |
| <------>.size fp_other_bounce,.-fp_other_bounce |
| |
| <------>.align 32 |
| <------>.globl do_fpother_check_fitos |
| <------>.type do_fpother_check_fitos,#function |
| do_fpother_check_fitos: |
| <------>TRAP_LOAD_THREAD_REG( |
| <------>sethi |
| <------>or |
| |
| <------> |
| <------> * to the fitos fixup. |
| <------> */ |
| <------>stx |
| <------>rdpr |
| <------>andcc |
| <------>bne,pn |
| <------> nop |
| <------>ldx [ |
| <------>srlx |
| <------>and |
| <------>cmp |
| <------>bne,pn |
| <------> sethi |
| <------>andcc |
| <------>bne,pn |
| <------> rdpr |
| <------>lduwa [ |
| #define FITOS_MASK 0xc1f83fe0 |
| #define FITOS_COMPARE 0x81a01880 |
| <------>sethi |
| <------>or |
| <------>and |
| <------>sethi |
| <------>or |
| <------>cmp |
| <------>bne,pn |
| <------> nop |
| <------>std |
| <------>sethi |
| <------>and |
| <------>or |
| <------>sllx |
| <------>jmpl |
| <------> ba,pt |
| |
| fitos_table_1: |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| <------>fitod |
| |
| fitos_emul_continue: |
| <------>sethi |
| <------>srl |
| <------>or |
| <------>and |
| <------>sllx |
| <------>jmpl |
| <------> ba,pt |
| |
| fitos_table_2: |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| <------>fdtos |
| |
| fitos_emul_fini: |
| <------>ldd [ |
| <------>done |
| <------>.size do_fpother_check_fitos,.-do_fpother_check_fitos |
| |
| <------>.align 32 |
| <------>.globl do_fptrap |
| <------>.type do_fptrap,#function |
| do_fptrap: |
| <------>TRAP_LOAD_THREAD_REG( |
| <------>stx |
| do_fptrap_after_fsr: |
| <------>ldub [ |
| <------>rd |
| <------>or |
| <------>stb |
| <------>rd |
| <------>stx |
| <------>mov SECONDARY_CONTEXT, |
| |
| 661: ldxa [ |
| <------>.section .sun4v_1insn_patch, "ax" |
| <------>.word 661b |
| <------>ldxa [ |
| <------>.previous |
| |
| <------>sethi |
| <------>ldx [ |
| |
| 661: stxa |
| <------>.section .sun4v_1insn_patch, "ax" |
| <------>.word 661b |
| <------>stxa |
| <------>.previous |
| |
| <------>membar #Sync |
| <------>add |
| <------>andcc |
| <------>be,pn |
| <------> mov 0x40, |
| <------>stda |
| <------>stda |
| <------>andcc |
| <------>be,pn |
| 4: add |
| <------>stda |
| <------>stda |
| 5: mov SECONDARY_CONTEXT, |
| <------>membar #Sync |
| |
| 661: stxa |
| <------>.section .sun4v_1insn_patch, "ax" |
| <------>.word 661b |
| <------>stxa |
| <------>.previous |
| |
| <------>membar #Sync |
| <------>ba,pt |
| <------> wr |
| <------>.size do_fptrap,.-do_fptrap |
| |