From be9c00347fa7dcfb78f9f3a6c6c61a00a9071d31 Mon Sep 17 00:00:00 2001 From: Yonghong Song Date: Mon, 11 Sep 2017 23:43:35 +0000 Subject: bpf: add " ll" in the LD_IMM64 asmstring This partially revert previous fix in commit f5858045aa0b ("bpf: proper print imm64 expression in inst printer"). In that commit, the original suffix "ll" is removed from LD_IMM64 asmstring. In the customer print method, the "ll" suffix is printed if the rhs is an immediate. For example, "r2 = 5ll" => "r2 = 5ll", and "r3 = varll" => "r3 = var". This has an issue though for assembler. Since assembler relies on asmstring to do pattern matching, it will not be able to distiguish between "mov r2, 5" and "ld_imm64 r2, 5" since both asmstring is "r2 = 5". In such cases, the assembler uses 64bit load for all "r = " asm insts. This patch adds back " ll" suffix for ld_imm64 with one additional space for "#reg = #global_var" case. Signed-off-by: Yonghong Song Acked-by: Alexei Starovoitov llvm-svn: 312978 --- llvm/lib/Target/BPF/BPFInstrInfo.td | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'llvm/lib/Target/BPF/BPFInstrInfo.td') diff --git a/llvm/lib/Target/BPF/BPFInstrInfo.td b/llvm/lib/Target/BPF/BPFInstrInfo.td index d4c50e768f7..bef6ce0852a 100644 --- a/llvm/lib/Target/BPF/BPFInstrInfo.td +++ b/llvm/lib/Target/BPF/BPFInstrInfo.td @@ -249,7 +249,7 @@ class MOV_RI class LD_IMM64 Pseudo, string OpcodeStr> : InstBPF<(outs GPR:$dst), (ins u64imm:$imm), - "$dst "#OpcodeStr#" ${imm}", + "$dst "#OpcodeStr#" ${imm} ll", [(set GPR:$dst, (i64 imm:$imm))]> { bits<3> mode; -- cgit v1.2.3