------------- B&O Chapter 3 ------------- 3.1 x86 operands 3.2,3.3 instruction operand sizes 3.4 instruction construction 3.5 disassemble to C 3.6 leaq 3.7 leaq disassembly 3.8 operations in x86 3.9 fill in x86 from C 3.10 fill in C from x86 3.11 xorq 3.18 C from x86 conds 3.20, 3.21 C from x86 (conditionals) 3.23 Cross x86 to C (loops) 3.24 C from x86 (loops) 3.28 Fill in C for loop from x86 3.30 Switch case reverse engineering 3.31 Full switch reverse engineering 3.32 Following stack in function calls 3.33 Function call params 3.35 Function call reversing 3.36, 3.37 Array element sizing 3.38 Array/Matrix dimension reversing 3.40 Refactor C Matrix computation to pointers 3.41 Structs in assembly 3.44, 3.45 Structs in memory Problems 3.58 C from assembly 3.62, 3.63 Full switch reverse engineering 3.65 Matrix dimension reversing ------------- B&O Chapter 5 ------------- 5.1 Memory aliasing 5.2 Performance ranges 5.4 Memory access and accumulators 5.7 Loop unrolling 5.8 Reassociation 5.9 Conditional Move 5.10 Data dependencies 5.11 Reducing memory access 5.12 Reducing memory access Problems 5.14 Unrolling 5.15 Unrolling with parallel accumulation 5.16 Unrolling with reassociation ------------- B&O Chapter 6 ------------- 6.7, 6.8 Stride-1 access in C 6.9 Cache parameters 6.10 Cache performance 6.11 Cache capacity 6.12, 6.13, 6.14, 6.15 Cache lookup 6.16 Cache address mapping 6.18 Cache simulation ------------- B&O Chapter 8 ------------- 8.2 fork 8.3 waitpid 8.4 waitpid and status codes 8.7 sleep with signals Problems 8.10, 8.11, 8.12 fork, exec 8.13 fork tracing 8.16, 8.21 fork/wait tracing 8.23 signals