40 lines
2.5 KiB
Plaintext
40 lines
2.5 KiB
Plaintext
[video member=miotatsu stream_platform=twitch project=riscy title="Studying GNU Assembler Syntax" vod_platform=youtube id=kGDEsTLsbfw annotator=Miblo]
|
|
[0:06][Set the stage for the day, looking at the GNU Assembler Syntax]
|
|
[0:35][Begin to learn GCC Inline Assembly[ref
|
|
site=ericw.
|
|
page="A Tiny Guide to GCC Inline Assembly"
|
|
url=http://ericw.ca/notes/a-tiny-guide-to-gcc-inline-assembly.html]][:asm :research]
|
|
[7:32][Consult write_csr() and continue reading the example code in the guide][:asm :research]
|
|
[19:29][Come to understand what the read_csr() macro is doing][:research]
|
|
[20:42][@hossein1387][__temp is what is returned?]
|
|
[23:42][:Research about the C preprocessor's # and ## replace operators[ref
|
|
site=cppreference.com
|
|
page=replace
|
|
url=http://en.cppreference.com/w/c/preprocessor/replace]]
|
|
[24:52][Return to read_csr()][:asm :research]
|
|
[26:54][Sketch out an interpretation of the syntax of read_csr()][:research]
|
|
[30:29][@hossein1387][What was the %0 doing again?]
|
|
[31:55][read_csr()][:blackboard]
|
|
[32:39][@hossein1387][Yeah, I watched them all!]
|
|
[34:13][Write out a test program using the syntax of read_csr()][:research]
|
|
[36:28][Build and :run the test program successfully]
|
|
[37:55][Move on to understanding clear_csr()][:asm :research]
|
|
[40:37][@hossein1387][You can use the built-in function __builtin_constant_p to determine if a value is known to be constant at compile time and hence that GCC can perform constant-folding on expressions involving that value]
|
|
[41:15][__builtin_constant_p][:blackboard]
|
|
[43:23][Continue working towards understanding clear_csr()][:asm :research]
|
|
[44:15][Consult the Tiny Guide in order to confirm the order of operand references][:asm :research]
|
|
[45:57][Read about the Clobber List in the Tiny Guide][:asm :research]
|
|
[48:06][Determine that we know enough about inline assembly for now, and glimpse into the future][:asm]
|
|
[49:27][Read clear_csr() in conjunction with the documentation on the CSR[ref
|
|
site=RISC-V
|
|
page="User-Level ISA Specification v2.1"
|
|
url=https://riscv.org/specifications]][:asm :hardware :research]
|
|
[1:01:34][Summarise what clear_csr() is doing][:asm :research]
|
|
[1:03:47][@hossein1387][Why the < 32?]
|
|
[1:05:01][Consider the fact that the register we're talking about is 32 bits long]
|
|
[1:08:40][Determine to study the instruction encoding in the next episode, with a mention of the poll[ref
|
|
site=Twitter
|
|
page="Poll: Should I hire an artist to make better thumbnails for my content?"
|
|
url=https://twitter.com/hmn_riscy/status/833911733752385536]]
|
|
[/video]
|