@@ -66,7 +66,7 @@ IMAGE_BASE:
6666 globvar EH_FRM_HDR_SIZE 8
6767
6868.Lreentry_panic_msg:
69- .asciz "Re-entered panicked enclave!"
69+ .asciz "Re-entered aborted enclave!"
7070.Lreentry_panic_msg_end:
7171
7272.Lusercall_panic_msg:
@@ -80,7 +80,7 @@ IMAGE_BASE:
8080 .org .+48 /* reserved bits */
8181
8282.data
83- .Lpanicked :
83+ .Laborted :
8484 .byte 0
8585
8686/* TCS local storage section */
@@ -134,6 +134,9 @@ sgx_entry:
134134 jz .Lskip_debug_init
135135 mov %r10 ,%gs :tcsls_debug_panic_buf_ptr
136136.Lskip_debug_init:
137+ /* check for abort */
138+ bt $0 ,.Laborted(%rip )
139+ jc .Lreentry_panic
137140/* check if returning from usercall */
138141 mov %gs :tcsls_last_rsp,%r11
139142 test %r11 ,%r11
@@ -164,9 +167,6 @@ sgx_entry:
164167 mov %r14 ,%r8
165168 mov %r15 ,%r9
166169.Lskip_init:
167- /* check for panic */
168- bt $0 ,.Lpanicked(%rip )
169- jc .Lreentry_panic
170170/* call into main entry point */
171171 load_tcsls_flag_secondary_bool cx /* RCX = entry() argument: secondary: bool */
172172 call entry /* RDI, RSI, RDX, R8, R9 passed in from userspace */
@@ -237,18 +237,18 @@ sgx_entry:
237237 stmxcsr (%rsp )
238238.endm
239239
240- .global panic_exit
241- panic_exit :
240+ .global usercall_exit
241+ usercall_exit :
242242/* save registers in DEBUG mode, so that debugger can reconstruct the stack */
243243 testb $0xff ,DEBUG(%rip )
244244 jz .Lskip_save_registers
245245 push_callee_saved_registers
246246 movq %rsp ,%gs :tcsls_panic_last_rsp
247247.Lskip_save_registers:
248- /* set panicked bit */
249- movb $1 ,.Lpanicked (%rip )
248+ /* set aborted bit */
249+ movb $1 ,.Laborted (%rip )
250250/* call usercall exit(true) */
251- mov $1 , %esi /* RSI = usercall() argument: panic = true */
251+ /* NOP: mov %rsi,%rsi */ /* RSI = usercall() argument: panic */
252252 xor %rdx ,%rdx /* RDX cleared */
253253 movq $usercall_nr_exit,%rdi /* RDI = usercall exit */
254254 jmp .Lexit
0 commit comments