fix(qbe): QBE_EnsureLocal for hFieldPtr base, char types w→w
This commit is contained in:
@@ -45,8 +45,8 @@ func QbeBackend_TypeWord(kind: int) -> String {
|
|||||||
if kind == tyFloat64 { return "d"; }
|
if kind == tyFloat64 { return "d"; }
|
||||||
if kind == tyBool || kind == tyBool8 || kind == tyBool16 || kind == tyBool32 { return "w"; }
|
if kind == tyBool || kind == tyBool8 || kind == tyBool16 || kind == tyBool32 { return "w"; }
|
||||||
if kind == tyInt32 || kind == tyUInt32 || kind == tyChar32 { return "w"; }
|
if kind == tyInt32 || kind == tyUInt32 || kind == tyChar32 { return "w"; }
|
||||||
if kind == tyChar8 { return "b"; }
|
if kind == tyChar8 { return "w"; }
|
||||||
if kind == tyChar16 { return "h"; }
|
if kind == tyChar16 { return "w"; }
|
||||||
return "l";
|
return "l";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,7 +576,7 @@ func QBE_EmitExpr(qbe: *QbeEmitter, node: *HirNode) -> String {
|
|||||||
QBE_EmitIndent(qbe);
|
QBE_EmitIndent(qbe);
|
||||||
QBE_Emit(qbe, tmp);
|
QBE_Emit(qbe, tmp);
|
||||||
QBE_Emit(qbe, " =l add ");
|
QBE_Emit(qbe, " =l add ");
|
||||||
QBE_Emit(qbe, base);
|
QBE_Emit(qbe, QBE_EnsureLocal(base));
|
||||||
QBE_Emit(qbe, ", 0");
|
QBE_Emit(qbe, ", 0");
|
||||||
QBE_EmitLine(qbe, "");
|
QBE_EmitLine(qbe, "");
|
||||||
return tmp;
|
return tmp;
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ func QbeBackend_TypeWord(kind: int) -> String {
|
|||||||
if kind == tyFloat64 { return "d"; }
|
if kind == tyFloat64 { return "d"; }
|
||||||
if kind == tyBool || kind == tyBool8 || kind == tyBool16 || kind == tyBool32 { return "w"; }
|
if kind == tyBool || kind == tyBool8 || kind == tyBool16 || kind == tyBool32 { return "w"; }
|
||||||
if kind == tyInt32 || kind == tyUInt32 || kind == tyChar32 { return "w"; }
|
if kind == tyInt32 || kind == tyUInt32 || kind == tyChar32 { return "w"; }
|
||||||
if kind == tyChar8 { return "b"; }
|
if kind == tyChar8 { return "w"; }
|
||||||
if kind == tyChar16 { return "h"; }
|
if kind == tyChar16 { return "w"; }
|
||||||
return "l";
|
return "l";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,7 +576,7 @@ func QBE_EmitExpr(qbe: *QbeEmitter, node: *HirNode) -> String {
|
|||||||
QBE_EmitIndent(qbe);
|
QBE_EmitIndent(qbe);
|
||||||
QBE_Emit(qbe, tmp);
|
QBE_Emit(qbe, tmp);
|
||||||
QBE_Emit(qbe, " =l add ");
|
QBE_Emit(qbe, " =l add ");
|
||||||
QBE_Emit(qbe, base);
|
QBE_Emit(qbe, QBE_EnsureLocal(base));
|
||||||
QBE_Emit(qbe, ", 0");
|
QBE_Emit(qbe, ", 0");
|
||||||
QBE_EmitLine(qbe, "");
|
QBE_EmitLine(qbe, "");
|
||||||
return tmp;
|
return tmp;
|
||||||
|
|||||||
Reference in New Issue
Block a user