Skip to content

Commit 068563a

Browse files
committed
WASM_X86: Use offset directly as label
(without pushing it to unique_id)
1 parent 9d3a5d7 commit 068563a

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/libasr/codegen/wasm_to_x86.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -206,30 +206,30 @@ class X86Visitor : public WASMDecoder<X86Visitor>,
206206
}
207207

208208
void handle_I32Compare(const std::string &compare_op) {
209-
unique_id.push_back(std::to_string(offset));
209+
std::string label = std::to_string(offset);
210210
m_a.asm_pop_r32(X86Reg::ebx);
211211
m_a.asm_pop_r32(X86Reg::eax);
212212
m_a.asm_cmp_r32_r32(X86Reg::eax, X86Reg::ebx);
213213
if (compare_op == "Eq") {
214-
m_a.asm_je_label(".compare_1" + unique_id.back());
214+
m_a.asm_je_label(".compare_1" + label);
215215
} else if (compare_op == "Gt") {
216-
m_a.asm_jg_label(".compare_1" + unique_id.back());
216+
m_a.asm_jg_label(".compare_1" + label);
217217
} else if (compare_op == "GtE") {
218-
m_a.asm_jge_label(".compare_1" + unique_id.back());
218+
m_a.asm_jge_label(".compare_1" + label);
219219
} else if (compare_op == "Lt") {
220-
m_a.asm_jl_label(".compare_1" + unique_id.back());
220+
m_a.asm_jl_label(".compare_1" + label);
221221
} else if (compare_op == "LtE") {
222-
m_a.asm_jle_label(".compare_1" + unique_id.back());
222+
m_a.asm_jle_label(".compare_1" + label);
223223
} else if (compare_op == "NotEq") {
224-
m_a.asm_jne_label(".compare_1" + unique_id.back());
224+
m_a.asm_jne_label(".compare_1" + label);
225225
} else {
226226
throw CodeGenError("Comparison operator not implemented");
227227
}
228228
m_a.asm_mov_r32_imm32(X86Reg::eax, 0);
229-
m_a.asm_jmp_label(".compare.end_" + unique_id.back());
230-
m_a.add_label(".compare_1" + unique_id.back());
229+
m_a.asm_jmp_label(".compare.end_" + label);
230+
m_a.add_label(".compare_1" + label);
231231
m_a.asm_mov_r32_imm32(X86Reg::eax, 1);
232-
m_a.add_label(".compare.end_" + unique_id.back());
232+
m_a.add_label(".compare.end_" + label);
233233
m_a.asm_push_r32(X86Reg::eax);
234234
}
235235

0 commit comments

Comments
 (0)