.section .text.user_task,"ax" .balign 4 .global __user_task_blob_start __user_task_blob_start: // Both private roots run these identical bytes at the same virtual PC. // x0 is a unique task token supplied by the EL1 launch/restore frame. mov x19, x0 movz x20, #0x1000 movk x20, #0x8000, lsl #16 mov x21, #0x55 str x19, [x20] sub sp, sp, #16 str x19, [sp] mov x7, #1 mov x8, #6 svc #0x42 cbnz x0, .Ltask_fail cmp x21, #0x55 b.ne .Ltask_fail ldr x9, [x20] cmp x9, x19 b.ne .Ltask_fail ldr x9, [sp] cmp x9, x19 b.ne .Ltask_fail mov x0, x19 mov x7, #1 mov x8, #2 svc #0x42 .Ltask_fail: brk #0xbad b .Ltask_fail .global __user_task_blob_end __user_task_blob_end: