diff options
| author | Alex Brainman <alex.brainman@gmail.com> | 2014-10-09 17:24:34 +1100 |
|---|---|---|
| committer | Alex Brainman <alex.brainman@gmail.com> | 2014-10-09 17:24:34 +1100 |
| commit | 64736accdbc187eba6619345754abaaeefdb7238 (patch) | |
| tree | 5d82c7f95914fab5d0fa5e03ef9d5421d95bf1c9 /src/runtime/sys_windows_amd64.s | |
| parent | 17a108ba079cd3e94fa4d847d651d3a813569a9b (diff) | |
| download | go-64736accdbc187eba6619345754abaaeefdb7238.tar.xz | |
undo CL 145150043 / 8b3d26697b8d
That was complete failure - builders are broken,
but original cl worked fine on my system.
I will need access to builders
to test this change properly.
««« original CL description
runtime: handle all windows exception
Fixes #8006.
LGTM=rsc
R=golang-codereviews, rsc
CC=golang-codereviews
https://golang.org/cl/145150043
»»»
TBR=rsc
R=golang-codereviews
CC=golang-codereviews
https://golang.org/cl/154180043
Diffstat (limited to 'src/runtime/sys_windows_amd64.s')
| -rw-r--r-- | src/runtime/sys_windows_amd64.s | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/src/runtime/sys_windows_amd64.s b/src/runtime/sys_windows_amd64.s index e6190ce684..05750398ea 100644 --- a/src/runtime/sys_windows_amd64.s +++ b/src/runtime/sys_windows_amd64.s @@ -99,7 +99,6 @@ TEXT runtime·setlasterror(SB),NOSPLIT,$0 // Called by Windows as a Vectored Exception Handler (VEH). // First argument is pointer to struct containing // exception record and context pointers. -// Handler function is stored in AX. // Return 0 for 'not handled', -1 for handled. TEXT runtime·sigtramp(SB),NOSPLIT,$0-0 // CX: PEXCEPTION_POINTERS ExceptionInfo @@ -117,8 +116,6 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$0-0 MOVQ R14, 32(SP) MOVQ R15, 88(SP) - MOVQ AX, R15 // save handler address - // find g get_tls(DX) CMPQ DX, $0 @@ -160,10 +157,11 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$0-0 sigtramp_g0: MOVQ 0(CX), BX // ExceptionRecord* MOVQ 8(CX), CX // Context* + // call sighandler(ExceptionRecord*, Context*, G*) MOVQ BX, 0(SP) MOVQ CX, 8(SP) MOVQ DX, 16(SP) - CALL R15 // call handler + CALL runtime·sighandler(SB) // AX is set to report result back to Windows MOVL 24(SP), AX @@ -189,18 +187,6 @@ done: RET -TEXT runtime·exceptiontramp(SB),NOSPLIT,$0 - MOVQ $runtime·exceptionhandler(SB), AX - JMP runtime·sigtramp(SB) - -TEXT runtime·firstcontinuetramp(SB),NOSPLIT,$0-0 - MOVQ $runtime·firstcontinuehandler(SB), AX - JMP runtime·sigtramp(SB) - -TEXT runtime·lastcontinuetramp(SB),NOSPLIT,$0-0 - MOVQ $runtime·lastcontinuehandler(SB), AX - JMP runtime·sigtramp(SB) - TEXT runtime·ctrlhandler(SB),NOSPLIT,$8 MOVQ CX, 16(SP) // spill MOVQ $runtime·ctrlhandler1(SB), CX |
