Taesoo Kim
Taesoo Kim

gen_range() for RdRandimpls::next_u32_via_fill() in next_u32()RNG_DATA.read_volatile() as u64 in next_u64()no_std/lib/crt*.so)ld)asm)libcore: dependency-free foundation (i.e., no libc, no heap)
panic and eh_personalityliballoc: smart pointers and heap-managed collections (i.e., Box)
global_allocator and alloc_error_handlerlibstd: a set of shared abstractions for Rust software (e.g., I/O, networking, thread)
libcore and liballoclibcore: our OS code, in particular early code, only relies on core (from lab1)liballoc: once we have a managed heap on physical pages (from lab3)libstd: not allowed! but partly import what we’d like (e.g., Path from lab3)eh_personalityMakefilelayout.ldinit.Sblinky.elf / blinky.bin.cargo/layout.ldsrc/init/init.ssrc/init/panic.rssrc/init.rs$ ./qemu.sh build/blinky.elf -d in_asm
IN:
0x0000000004000000: d53800a1 mrs x1, (unknown)
0x0000000004000004: 92400421 and x1, x1, #0x3
0x0000000004000008: b4000061 cbz x1, #+0xc (addr 0x4000014)
IN:
0x0000000004000014: 10ffff61 adr x1, #-0x14 (addr 0x4000000)
0x0000000004000018: 9100003f mov sp, x1
0x000000000400001c: 94000003 bl #+0xc (addr 0x4000028)
IN: kinit
0x0000000004000028: 90000008 adrp x8, #+0x0 (addr 0x4000000)
0x000000000400002c: 91030108 add x8, x8, #0xc0 (192)
0x0000000004000030: 90000009 adrp x9, #+0x0 (addr 0x4000000)
...