Hojun-Cho
8fa59f9d45
cgen: store a 2-byte struct-literal field with MOVW, not an over-wide MOVQ ( #15 )
...
cg_structlit_fill/cgstructlitfill dispatched scalar field stores as {1->MOVB, 4->MOVL, else->MOVQ} with no fsz==2 case, so a 2-byte field was stored with an 8-byte MOVQ. Interior over-stores were harmlessly overwritten by the next field, but the LAST field at the frame edge corrupted the saved base pointer: an (S|e) union success variant places the struct payload after the 8B tag, landing the last field at -4(BP), so MOVQ AX,-4(BP) wrote into saved [BP] and POPQ BP restored garbage — a silent both-stage caller-frame clobber. Route the scalar store through the existing fldstoreop/fieldstoreop helper ({1->MOVB,2->MOVW,4->MOVL,else->MOVQ}), both stages; the #13 graduation comments already pre-documented this resolution. Pure width fix, no loud-stop (scalar widths are always {1,2,4,8} and narrowing is always correct). Value-asserting pin: an i64 sentinel live across the union-maker call (detects the clobber directly) + all members, with a non-union control.
2026-06-28 01:59:21 +09:00
..
2026-06-27 23:44:41 +09:00
2026-06-22 13:52:41 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-22 13:34:28 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-22 17:10:22 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-24 02:45:09 +09:00
2026-06-27 14:16:20 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 03:25:47 +09:00
2026-06-25 01:32:32 +09:00
2026-06-25 01:32:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-22 02:53:16 +09:00
2026-06-22 13:52:41 +09:00
2026-06-22 02:04:56 +09:00
2026-06-22 11:52:41 +09:00
2026-06-25 01:32:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-22 13:34:28 +09:00
2026-06-25 01:32:32 +09:00
2026-06-22 12:04:03 +09:00
2026-06-22 12:04:03 +09:00
2026-06-22 12:04:03 +09:00
2026-06-27 17:19:43 +09:00
2026-06-27 11:47:54 +09:00
2026-06-22 13:34:28 +09:00
2026-06-22 09:02:40 +09:00
2026-06-22 18:06:05 +09:00
2026-06-22 18:06:05 +09:00
2026-06-22 13:34:28 +09:00
2026-06-22 12:31:23 +09:00
2026-06-22 16:34:33 +09:00
2026-06-22 09:02:40 +09:00
2026-06-24 03:25:47 +09:00
2026-06-27 12:34:58 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 03:25:47 +09:00
2026-06-27 14:49:36 +09:00
2026-06-24 22:59:32 +09:00
2026-06-22 14:56:11 +09:00
2026-06-22 11:52:41 +09:00
2026-06-22 11:52:41 +09:00
2026-06-22 12:31:23 +09:00
2026-06-22 11:52:41 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-22 02:04:56 +09:00
2026-06-27 13:28:37 +09:00
2026-06-22 16:02:01 +09:00
2026-06-27 18:49:03 +09:00
2026-06-27 18:49:03 +09:00
2026-06-27 19:40:04 +09:00
2026-06-27 19:40:04 +09:00
2026-06-24 20:42:08 +09:00
2026-06-22 02:04:56 +09:00
2026-06-22 16:34:33 +09:00
2026-06-25 01:32:32 +09:00
2026-06-24 20:42:08 +09:00
2026-06-22 11:52:41 +09:00
2026-06-22 16:53:49 +09:00
2026-06-22 18:30:04 +09:00
2026-06-22 11:52:41 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 20:42:08 +09:00
2026-06-25 01:32:32 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 22:59:32 +09:00
2026-06-24 22:59:32 +09:00
2026-06-22 13:52:41 +09:00
2026-06-24 01:00:47 +09:00
2026-06-24 01:00:47 +09:00
2026-06-24 01:44:13 +09:00
2026-06-22 13:34:28 +09:00
2026-06-24 01:44:13 +09:00
2026-06-22 02:53:16 +09:00
2026-06-25 01:32:32 +09:00
2026-06-22 03:01:09 +09:00
2026-06-22 11:52:41 +09:00
2026-06-26 23:16:19 +09:00
2026-06-22 09:02:40 +09:00
2026-06-22 13:52:41 +09:00
2026-06-22 13:52:41 +09:00
2026-06-22 09:02:40 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:01:09 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:54:54 +09:00
2026-06-22 03:54:54 +09:00
2026-06-25 01:32:32 +09:00
2026-06-22 18:28:41 +09:00
2026-06-25 01:32:32 +09:00
2026-06-28 01:10:31 +09:00
2026-06-22 12:11:46 +09:00
2026-06-25 01:32:32 +09:00
2026-06-22 09:02:40 +09:00
2026-06-22 09:02:40 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 01:44:13 +09:00
2026-06-22 11:52:41 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 01:44:13 +09:00
2026-06-22 11:52:41 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 01:44:13 +09:00
2026-06-22 13:52:41 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 03:25:47 +09:00
2026-06-24 01:44:13 +09:00
2026-06-24 22:59:32 +09:00
2026-06-22 01:48:38 +09:00
2026-06-28 01:59:21 +09:00
2026-06-27 21:10:17 +09:00
2026-06-27 21:10:03 +09:00
2026-06-25 01:32:32 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-24 20:42:08 +09:00
2026-06-22 02:53:16 +09:00