[, < / ], >Jump to previous / next episode W, K, P / S, J, NJump to previous / next marker t / TToggle theatre / SUPERtheatre mode VRevert filter to original stateYSelect link (requires manual Ctrl-c)
Menu toggling
qQuotesrReferencesfFilteryLinkcCredits
In-Menu Movement
a
w s
d
hjkl
←
↑ ↓
→
Quotes and References Menus
EnterJump to timecode
Quotes, References and Credits Menus
oOpen URL (in new tab)
Filter Menu
x, SpaceToggle category and focus next X, ShiftSpaceToggle category and focus previous vInvert topics / media as per focus
0:00Recap and set the stage for the final part of the assembly writing tutorial
0:00Recap and set the stage for the final part of the assembly writing tutorial
0:00Recap and set the stage for the final part of the assembly writing tutorial
0:30Shout-out to godbolt1 for its assembly exploration capabilities
📖
0:30Shout-out to godbolt1 for its assembly exploration capabilities
📖
0:30Shout-out to godbolt1 for its assembly exploration capabilities
📖
4:25Switch statements
4:25Switch statements
4:25Switch statements
8:15Implementing switch using a jump table
8:15Implementing switch using a jump table
8:15Implementing switch using a jump table
15:10Throw a switch statement into godbolt2 to see what riscv32 clang and x86-64 MSVC generate
📖
15:10Throw a switch statement into godbolt2 to see what riscv32 clang and x86-64 MSVC generate
📖
15:10Throw a switch statement into godbolt2 to see what riscv32 clang and x86-64 MSVC generate
📖
21:36Compressing a lookup table when it has few distinct entries relative to the total number of keys
21:36Compressing a lookup table when it has few distinct entries relative to the total number of keys
21:36Compressing a lookup table when it has few distinct entries relative to the total number of keys
24:28Lowering a jump table-based switch statement, without the compressed table indirection, from C to assembly
24:28Lowering a jump table-based switch statement, without the compressed table indirection, from C to assembly
24:28Lowering a jump table-based switch statement, without the compressed table indirection, from C to assembly
38:14Functions3
38:14Functions3
38:14Functions3
51:55Calls and returns, and RISC-V's JAL and JMP instructions
51:55Calls and returns, and RISC-V's JAL and JMP instructions
51:55Calls and returns, and RISC-V's JAL and JMP instructions
58:35Lowering our example fact() function from C to assembly4
58:35Lowering our example fact() function from C to assembly4
58:35Lowering our example fact() function from C to assembly4
1:07:00cubercaleb What is meant by the function epilogue and prologue? Is that just a fancy way of saying "stack setup and tear-down", or does something actually happen?5
🗪
1:07:00cubercaleb What is meant by the function epilogue and prologue? Is that just a fancy way of saying "stack setup and tear-down", or does something actually happen?5
🗪
1:07:00cubercaleb What is meant by the function epilogue and prologue? Is that just a fancy way of saying "stack setup and tear-down", or does something actually happen?5
🗪
1:07:59Lowering fact() from C to assembly using a callee-save register
1:07:59Lowering fact() from C to assembly using a callee-save register
1:07:59Lowering fact() from C to assembly using a callee-save register
1:13:18Designating registers as caller- vs callee-save, as demonstrated by leaf functions
1:13:18Designating registers as caller- vs callee-save, as demonstrated by leaf functions
1:13:18Designating registers as caller- vs callee-save, as demonstrated by leaf functions
1:17:33Summarise the handling of more complex functions
1:17:33Summarise the handling of more complex functions
1:17:33Summarise the handling of more complex functions
1:18:30cubercaleb Isn't ret a CISC-like instruction, e.g. MIPS requires `jr $ra`?6
🗪
1:18:30cubercaleb Isn't ret a CISC-like instruction, e.g. MIPS requires `jr $ra`?6
🗪
1:18:30cubercaleb Isn't ret a CISC-like instruction, e.g. MIPS requires `jr $ra`?6
🗪
1:20:53Consider going on to nested / compound expressions
1:20:53Consider going on to nested / compound expressions
1:20:53Consider going on to nested / compound expressions
1:21:43Note the assumption that local variables don't need to be spilt
1:21:43Note the assumption that local variables don't need to be spilt
1:21:43Note the assumption that local variables don't need to be spilt
1:25:08Flattening expressions and register allocations
1:25:08Flattening expressions and register allocations
1:25:08Flattening expressions and register allocations
1:29:30Flattening a right-associative expression7
1:29:30Flattening a right-associative expression7
1:29:30Flattening a right-associative expression7
1:36:02Summarise the expression and register allocations information
1:36:02Summarise the expression and register allocations information
1:36:02Summarise the expression and register allocations information