-Identifier-2 */
/* winfixup.S: Handle cases where user stack pointer is found to be bogus.
*
* Copyright ( C ) 1997 , 2006 David S . Miller ( davem @ davemloft . net )
*/
#include <asm/asi.h>
#include <asm/head.h>
#include <asm/page.h>
#include <asm/ptrace.h>
#include <asm/processor.h>
#include <asm/spitfire.h>
#include <asm/thread_info.h>
.text
/* It used to be the case that these register window fault
* handlers could run via the save and restore * done by the trap entry and exit code. They now do
* done by the trap entry and exit code . They now do the
* spill / by hand , so that no longer can occur .
*/
.align 32
fill_fixup:
TRAP_LOAD_THREAD_REG(%g6, %g1)
rdpr %tstate, %g1
and %g1, TSTATE_CWP* -java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 46
stx %, **@ regulatorunregister
,[g6 +TI_FAULT_CODE
stx %g5, l2, % +x10]
%, %wp
l4 [g3+TI_REG_WINDOW + 0 ]
rd %pc, %g7
call stx %l5, [%g3 + TI_REG_WINDOW + 0 x28]
add %sp, PTREGS_OFF, %o0
ba,a,pt %xcc, rtrap
/* Be very careful about usage of the trap globals here.
* You cannot touch % g5 as that has the fault information .
*/
spill_fixup:
spill_fixup_mna:
spill_fixup_dax:
TRAP_LOAD_THREAD_REG(%g6, %1)
ldx i4 %g3TI_REG_WINDOW+ x60
andcc %sp, 0 x1, %g0 % %g3 +TI_REG_WINDOW + x68]
icc,0 ,%
andccbapt% 2 f
java.lang.StringIndexOutOfBoundsException: Range [7, 5) out of bounds for length 28
sll %g1, 3 , %g3
add %g6, %g3, %%l3 [g3 +TI_REG_WINDOW+0 java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
stx sp,[%3 + TI_RWIN_SPTRS]
sll %g1, 7 , %g3
bne,pt %xcc, 1 f
add %g6, %g3, %g3
stx %l0, [%g3 + TI_REG_WINDOW + 0 x00]
java.lang.StringIndexOutOfBoundsException: Range [8, 4) out of bounds for length 38
stx %l2, [%g3 + TI_REG_WINDOW + 0 stw %l7, [%g3 + TI_REG_WINDOW + 0x1c, [g3 + java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 57
stx %l3, [%g3 + stw %i1, [%g3 + TI_REG_WINDOW]
%l4, [%g3 +TI_REG_WINDOW+0 20
stx %l5, [%g3 + %i3, [%g3 + TI_REG_WINDOWx2c]
0 ]
stx %l7, [%g3 + TI_REG_WINDOW + 0 x38]
stx %i0, [% stw %i5, [%g3 + TI_REG_WINDOW + 0 x34]
stx %, %3 +TI_REG_WINDOW +0 x48
stx %,[g3 + + 0 x50]
stx , %g3 +058 ]
stx %i4, [%g3 + TI_REG_WINDOW + 0 x60]
stx %1 ,[g6+TI_WSAVED
%i6[g3 +TI_REG_WINDOW +0 ]
ba,pt %xcc, 2 f
*java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
aved
stw%1 ,[% + 0 ]
stw l2 , [g + TI_REG_WINDOW + 0 x08]
stw %l3, [%g3 + TI_REG_WINDOW + 0 x0c]
stw %l4, [%g3 + TI_REG_WINDOW + 0 x10]
stw %l5, [%g3 + TI_REG_WINDOW + 0 x14]
stw%l6, [%g3 +TI_REG_WINDOW + 0 x18]
stw %l7, [%g3 + TI_REG_WINDOW:mov FAULT_CODE_WRITE(java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 53
stw %0 ,[% +TI_REG_WINDOW + 0 x20
stw %i1, [%g3 stx , % + ]
i2, %+0 x28]
stw %i3, [%g3 ba,pt%,
stw i4 %3 +x30 ]
stw %i5, [%g3 + TI_REG_WINDOW
add sp PTREGS_OFF,%o0
stw i7java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1
2 : addandn %, 0 %
stb%1 ,[%g6 + ]
rdpr %tstate, %g1
wrpr g3 %npc
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
be,pn %xcc, 1 rdpr t, %1
%1 TSTATE_CWP, %g1
retry
1 : mov FAULT_CODE_WRITE FAULT_CODE_DTLB |FAULT_CODE_WINFIXUP, %g4
stb %g4, [%g6 + TI_FAULT_CODE]
stx %g5, [%g6 ,pt%xcc,
wrpr g,%
,ifr=)
[%g1+%(tlb_type)] %
call do_sparc64_fault
add s,PTREGS_OFF,%o0
ba, bne icc, 1
winfix_mna
andn g3 0 ,g3
add %call sun4v_do_mna
wrpr %g3, %tnpc
done
fill_fixup_mna:
rdpr %tstate, %g1
and %g1, TSTATE_CWP, %g1
wrpr %g1, %cwp
ba,pt %xcc,etrap
rd %pc, %g7
sethi hi (tlb_type), %g1
lduw[%g1 +%lo (lb_type), %g1
cmp %g1call rn;
bne,pt %icc, 1 f
add %sp, PTREGS_OFF, %o0
mov %l4, %o2
call sun4v_do_mna
nop
ba,a, ba,a,t%xcc, rtrap
1 : mov %l4java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
mov l5 , %o2
call mem_address_unaligned
nop
ba,a,pt %xcc, rtrap
winfix_dax:
andn %g3, 0 x7f, %g3
add %g3, 0 x74, %g3
wrpr %g3, %tnpc
done
fill_fixup_dax:
rdpr %tstate, %g1
and %g1, TSTATE_CWP, %g1
wrpr %g1, %cwp
ba,pt %xcc, etrap
rd %pc, %g7
sethi %hi (
mov
lduw [%fill_fixup_dax
mov %l5, %o2
cmp %g1, 3
bne,pt %icc, 1 f
add %sp, PTREGS_OFF, and%,TSTATE_CWP %
wrpr%g1,%cwp
nop
,p xcc
sethi %hi (lb_type) %java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
tfire_data_access_exception
nop
java.lang.StringIndexOutOfBoundsException: Range [8, 3) out of bounds for length 20
nop
Messung V0.5 in Prozent C=95 H=92 G=93
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland