From bb50f2f445309c7cc4c8e4fa00462c534a8302e0 Mon Sep 17 00:00:00 2001 From: Brooke Vibber Date: Mon, 5 Jan 2026 15:30:12 -0800 Subject: [PATCH] wip --- hello/hello-fwrite.txt | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/hello/hello-fwrite.txt b/hello/hello-fwrite.txt index 086ce97..aabcc12 100644 --- a/hello/hello-fwrite.txt +++ b/hello/hello-fwrite.txt @@ -5,7 +5,7 @@ ; a2 = count ; a3 = stream - ; -- Entry point for fwrite + ; -- Entry through symbol fwrite ; Function protocol 10b36: 7139 addi sp,sp,-64 ; Check an internal word in the FILE to see if it needs to lock @@ -30,31 +30,31 @@ 10b58: 8cf1 and s1,s1,a2 ; Branch to lock path if needed: 10b5a: 0207d463 bgez a5,10b82 - ; -- exit point bgez: likely branch 10b5e, rare branch 10b82 + ; -- exit through bgez: likely branch 10b5e, rare branch 10b82 - ; -- entry through branch + ; -- entry through branch at 10b5a ; Call through to __fwritex 10b5e: 8636 mv a2,a3 10b60: 85a2 mv a1,s0 10b62: f27ff0ef jal 10a88 <__fwritex> - ; -- exit point jal, return address 10b66 + ; -- exit through jal to 10a88, return address 10b66 - ; -- Entry point from return + ; -- Entry through return address, call at 10b62 ; Check the return value from __fwritex to see if we wrote ; all requested bytes. 10b66: 8a2a mv s4,a0 10b68: 01440463 beq s0,s4,10b70 - ; -- exit point beq: likely 10b6c, rare 10b70 + ; -- exit through beq: likely 10b6c, rare 10b70 - ; -- Entry point from 10ba6 - ; -- Entry point from 10baa + ; -- Entry through jump at 10ba6 + ; -- Entry through jump at 10baa ; Note this overlaps the previous trace! ; Check the return value from __fwritex to see if we wrote ; all requested bytes. 10b68: 01440463 beq s0,s4,10b70 - ; -- exit point beq: likely 10b6c, rare 10b70 + ; -- exit through beq: likely 10b6c, rare 10b70 - ; -- Entry point from 10b68 + ; -- Entry through branch at 10b68 ; Divide to the count in records from the count in bytes 10b6c: 033a54b3 divu s1,s4,s3 ; Function outro @@ -67,9 +67,9 @@ 10b7c: 74a2 ld s1,40(sp) 10b7e: 6121 addi sp,sp,64 10b80: 8082 ret - ; -- end point ret + ; -- exit through ret - ; Entry point from 10b68 + ; -- Entry through from 10b68 ; Return the original record count, skipping the division. ; Note this overlaps the previous two traces! 10b70: 70e2 ld ra,56(sp) @@ -81,38 +81,38 @@ 10b7c: 74a2 ld s1,40(sp) 10b7e: 6121 addi sp,sp,64 10b80: 8082 ret - ; -- end point ret + ; -- exit through ret + ; -- entry through branch at 10b5a ; Lock the FILE if needed ; Call through to __lockfile 10b82: 8a2a mv s4,a0 10b84: 8536 mv a0,a3 10b86: e456 sd s5,8(sp) 10b88: c95ff0ef jal 1081c <__lockfile> - ; -- end point jal - return address 10b8c + ; -- exit through jal to 1081c - return address 10b8c - - ; -- entry through return address + ; -- entry through return address, call at 10b88 ; Call through to __fwritex 10b8c: 8aaa mv s5,a0 10b8e: 864a mv a2,s2 10b90: 8552 mv a0,s4 10b92: 85a2 mv a1,s0 10b94: ef5ff0ef jal 10a88 <__fwritex> - ; -- exit through call; return address 10b98 + ; -- exit through jal to 10a88; return address 10b98 - ; -- entry through return address + ; -- entry through return address, call at 10b94 10b98: 8a2a mv s4,a0 10b9a: 000a8763 beqz s5,10ba8 - ; -- exit through beqz; likely branch 10b9e; rare branch 10ba8 + ; -- exit through beqz; likely branch 10b9e, rare branch 10ba8 ; -- entry through branch from 10b9a ; Call through to __unlockfile 10b9e: 854a mv a0,s2 10ba0: d25ff0ef jal 108c4 <__unlockfile> - ; -- end through jal; return address 10ba4 + ; -- exit through jal to 108c4; return address 10ba4 - ; -- entry through return address + ; -- entry through return address, call from 10ba0 10ba4: 6aa2 ld s5,8(sp) 10ba6: b7c9 j 10b68 ; -- exit through jump to 10b68