@@ -66,7 +66,7 @@ IMAGE_BASE:
66
66
globvar EH_FRM_HDR_SIZE 8
67
67
68
68
.Lreentry_panic_msg:
69
- .asciz "Re-entered panicked enclave!"
69
+ .asciz "Re-entered aborted enclave!"
70
70
.Lreentry_panic_msg_end:
71
71
72
72
.Lusercall_panic_msg:
@@ -80,7 +80,7 @@ IMAGE_BASE:
80
80
.org .+48 /* reserved bits */
81
81
82
82
.data
83
- .Lpanicked :
83
+ .Laborted :
84
84
.byte 0
85
85
86
86
/* TCS local storage section */
@@ -134,6 +134,9 @@ sgx_entry:
134
134
jz .Lskip_debug_init
135
135
mov %r10 ,%gs :tcsls_debug_panic_buf_ptr
136
136
.Lskip_debug_init:
137
+ /* check for abort */
138
+ bt $0 ,.Laborted(%rip )
139
+ jc .Lreentry_panic
137
140
/* check if returning from usercall */
138
141
mov %gs :tcsls_last_rsp,%r11
139
142
test %r11 ,%r11
@@ -164,9 +167,6 @@ sgx_entry:
164
167
mov %r14 ,%r8
165
168
mov %r15 ,%r9
166
169
.Lskip_init:
167
- /* check for panic */
168
- bt $0 ,.Lpanicked(%rip )
169
- jc .Lreentry_panic
170
170
/* call into main entry point */
171
171
load_tcsls_flag_secondary_bool cx /* RCX = entry() argument: secondary: bool */
172
172
call entry /* RDI, RSI, RDX, R8, R9 passed in from userspace */
@@ -237,18 +237,18 @@ sgx_entry:
237
237
stmxcsr (%rsp )
238
238
.endm
239
239
240
- .global panic_exit
241
- panic_exit :
240
+ .global usercall_exit
241
+ usercall_exit :
242
242
/* save registers in DEBUG mode, so that debugger can reconstruct the stack */
243
243
testb $0xff ,DEBUG(%rip )
244
244
jz .Lskip_save_registers
245
245
push_callee_saved_registers
246
246
movq %rsp ,%gs :tcsls_panic_last_rsp
247
247
.Lskip_save_registers:
248
- /* set panicked bit */
249
- movb $1 ,.Lpanicked (%rip )
248
+ /* set aborted bit */
249
+ movb $1 ,.Laborted (%rip )
250
250
/* call usercall exit(true) */
251
- mov $1 , %esi /* RSI = usercall() argument: panic = true */
251
+ /* NOP: mov %rsi,%rsi */ /* RSI = usercall() argument: panic */
252
252
xor %rdx ,%rdx /* RDX cleared */
253
253
movq $usercall_nr_exit,%rdi /* RDI = usercall exit */
254
254
jmp .Lexit
0 commit comments