[1]: SP address is now FFFFFFEB67BE7A40
[2]: With "str x21,[SP,#-0x30]!" instruction, the stack is pushed up to 0x30 byte.
[3]: X19 and X20 is pushed into stack.
[4]: X29 and X30 is pushed into stack.
15 collision = find_worker_executing_work(pool, work);
16 if (unlikely(collision)) {
17 move_linked_works(work, &collision->scheduled, NULL);
18 return;
19 }
ZSX:FFFFFF8B40CE71B8|F81D0FF5 set_next_entity: str x21,[SP,#-0x30]! ; x21,[SP,#-48]! //<<--[2]
ZSX:FFFFFF8B40CE71BC|A9014FF4 stp x20,x19,[SP,#0x10] ; x20,x19,[SP,#16] //<<--[3]
ZSX:FFFFFF8B40CE71C0|A9027BFD stp x29,x30,[SP,#0x20] ; x29,x30,[SP,#32] //<<--[4]
ZSX:FFFFFF8B40CE71C4|910083FD add x29,SP,#0x20 ; x29,SP,#32
ZSX:FFFFFF8B40CE71C8|AA0103F3____________________mov_____x19,x1
_____________address|_data____________________|value_____________|symbol
ZSD:FFFFFFEB67BE79F8| 80 7B AB 65 EB FF FF FF 0xFFFFFFEB65AB7B80
ZSD:FFFFFFEB67BE7A00| 28 50 5D 79 EB FF FF FF 0xFFFFFFEB795D5028
ZSD:FFFFFFEB67BE7A08| 00 EA 40 68 EB FF FF FF 0xFFFFFFEB6840EA00
ZSD:FFFFFFEB67BE7A10| 00 00 00 00 00 00 00 00 0x0 //<<--[2]
ZSD:FFFFFFEB67BE7A18| 00 00 00 00 00 00 00 00 0x0
ZSD:FFFFFFEB67BE7A20| 20 00 00 00 00 00 00 00 0x20
ZSD:FFFFFFEB67BE7A28| 19 00 00 00 00 00 00 00 0x19 //<<--[3]
ZSD:FFFFFFEB67BE7A30| 29 00 00 00 00 00 00 00 0x29
ZSD:FFFFFFEB67BE7A38| 80 3A CE 40 8B FF FF FF 0xFFFFFF8B40CE3A80 \\vmlinux\fair\pick_next_task_fair+0x4A8 //<<--[4]
ZSD:FFFFFFEB67BE7A40| A0 7A BE 67 EB FF FF FF 0xFFFFFFEB67BE7AA0 //<<--[1]
'리눅스 커널의 구조와 원리 > ARM Processor' 카테고리의 다른 글
[LinuxKernel][ARM] char buf[32]; vs char buf[32]={0}; (1) | 2019.03.09 |
---|---|
[ARM] tst 명령어를 실행하면 ARM CPSR 레지스터가 어떻게 변경될까? (0) | 2019.02.12 |