summaryrefslogtreecommitdiffhomepage
path: root/ir/be/ia32
diff options
context:
space:
mode:
authorChristoph Mallon <christoph.mallon@gmx.de>2019-03-04 08:36:55 +0100
committerChristoph Mallon <christoph.mallon@gmx.de>2019-04-05 20:44:54 +0200
commit8661e326d4f90dc9749f8df60184f03ad029fba8 (patch)
tree0337c2fd01859e2d0567cdff95bbb7eef26ad47e /ir/be/ia32
parent4aacad60e2ba5c17db38e3e106a4947a21ac2983 (diff)
beasm: Handle operand modifier 'l' in all backends.
Diffstat (limited to 'ir/be/ia32')
-rw-r--r--ir/be/ia32/ia32_emitter.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ir/be/ia32/ia32_emitter.c b/ir/be/ia32/ia32_emitter.c
index ee96481..304519a 100644
--- a/ir/be/ia32/ia32_emitter.c
+++ b/ir/be/ia32/ia32_emitter.c
@@ -750,6 +750,7 @@ static void emit_ia32_asm_operand(ir_node const *const node, char const modifier
* X: no modifying effect (gcc doc: don't print any sort of PIC '@' suffix for a symbol)
* b: 8 bit low name of register
* c: immediate without prefix '$'
+ * l: label without prefix '$'
* h: 8 bit high name of register
* k: 32 bit name of register
* p: like 'c' and other operands unmodified (gcc doc: "print raw symbol")
@@ -789,7 +790,8 @@ static void emit_ia32_asm_operand(ir_node const *const node, char const modifier
return;
case BE_ASM_OPERAND_LABEL:
- be_emit_char('$');
+ if (modifier != 'l')
+ be_emit_char('$');
be_emit_cfop_target_pos(node, op->op.pos);
return;
}