From 0eadb8ab76acf4c76dc7bd80ce64fcc78119bfd4 Mon Sep 17 00:00:00 2001 From: dimgigov Date: Tue, 2 Jun 2026 13:24:08 +0300 Subject: [PATCH] =?UTF-8?q?fix(qbe):=20QBE=5FEnsureLocal=20for=20hFieldPtr?= =?UTF-8?q?=20base,=20char=20types=20w=E2=86=92w?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _selfhost/src/qbe_backend.bux | 6 +++--- src_bux/qbe_backend.bux | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/_selfhost/src/qbe_backend.bux b/_selfhost/src/qbe_backend.bux index ef0505e..1f48264 100644 --- a/_selfhost/src/qbe_backend.bux +++ b/_selfhost/src/qbe_backend.bux @@ -45,8 +45,8 @@ func QbeBackend_TypeWord(kind: int) -> String { if kind == tyFloat64 { return "d"; } if kind == tyBool || kind == tyBool8 || kind == tyBool16 || kind == tyBool32 { return "w"; } if kind == tyInt32 || kind == tyUInt32 || kind == tyChar32 { return "w"; } - if kind == tyChar8 { return "b"; } - if kind == tyChar16 { return "h"; } + if kind == tyChar8 { return "w"; } + if kind == tyChar16 { return "w"; } return "l"; } @@ -576,7 +576,7 @@ func QBE_EmitExpr(qbe: *QbeEmitter, node: *HirNode) -> String { QBE_EmitIndent(qbe); QBE_Emit(qbe, tmp); QBE_Emit(qbe, " =l add "); - QBE_Emit(qbe, base); + QBE_Emit(qbe, QBE_EnsureLocal(base)); QBE_Emit(qbe, ", 0"); QBE_EmitLine(qbe, ""); return tmp; diff --git a/src_bux/qbe_backend.bux b/src_bux/qbe_backend.bux index ef0505e..1f48264 100644 --- a/src_bux/qbe_backend.bux +++ b/src_bux/qbe_backend.bux @@ -45,8 +45,8 @@ func QbeBackend_TypeWord(kind: int) -> String { if kind == tyFloat64 { return "d"; } if kind == tyBool || kind == tyBool8 || kind == tyBool16 || kind == tyBool32 { return "w"; } if kind == tyInt32 || kind == tyUInt32 || kind == tyChar32 { return "w"; } - if kind == tyChar8 { return "b"; } - if kind == tyChar16 { return "h"; } + if kind == tyChar8 { return "w"; } + if kind == tyChar16 { return "w"; } return "l"; } @@ -576,7 +576,7 @@ func QBE_EmitExpr(qbe: *QbeEmitter, node: *HirNode) -> String { QBE_EmitIndent(qbe); QBE_Emit(qbe, tmp); QBE_Emit(qbe, " =l add "); - QBE_Emit(qbe, base); + QBE_Emit(qbe, QBE_EnsureLocal(base)); QBE_Emit(qbe, ", 0"); QBE_EmitLine(qbe, ""); return tmp;