From 4c351c6c9de7663e97b863de810afa8c41ca26eb Mon Sep 17 00:00:00 2001 From: BlackMark Date: Sun, 16 Aug 2026 19:12:51 +0200 Subject: [PATCH] build: the libavr pin advances over the inlined vector The ADC vector's handler was a lambda reached through a pointer, so it sat out of line as a 140 B thunk; it is now inlined and the vector grows 136 B, which is the whole of the image's 8384 -> 8380 B. The layout shift that follows costs `statistics::record` an rcall widened to a call and refunds the same two bytes at another site. The prologue does not shrink here: 15 push/pop pairs before and after, because the inlined body still calls `__udivmodsi4` and that clobbers the caller-saved set the call used to. What this board gets is the removed rcall and ret on every conversion, not a shorter frame. Co-Authored-By: Claude Opus 5 --- libavr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavr b/libavr index 1412b71..dc1e87d 160000 --- a/libavr +++ b/libavr @@ -1 +1 @@ -Subproject commit 1412b7173b5c343d225cced990473f5e6b510c32 +Subproject commit dc1e87d86e8718c8d6d3b926dadfd5633995fdbf