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 = <val>" 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 <yhs@fb.com> Acked-by:
Alexei Starovoitov <ast@kernel.org> llvm-svn: 312978
Showing
- llvm/lib/Target/BPF/BPFInstrInfo.td 1 addition, 1 deletionllvm/lib/Target/BPF/BPFInstrInfo.td
- llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.cpp 1 addition, 1 deletionllvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.cpp
- llvm/test/CodeGen/BPF/cc_args.ll 2 additions, 2 deletionsllvm/test/CodeGen/BPF/cc_args.ll
- llvm/test/CodeGen/BPF/cc_args_be.ll 2 additions, 2 deletionsllvm/test/CodeGen/BPF/cc_args_be.ll
- llvm/test/CodeGen/BPF/cc_ret.ll 1 addition, 1 deletionllvm/test/CodeGen/BPF/cc_ret.ll
- llvm/test/CodeGen/BPF/ex1.ll 1 addition, 1 deletionllvm/test/CodeGen/BPF/ex1.ll
- llvm/test/CodeGen/BPF/intrinsics.ll 1 addition, 1 deletionllvm/test/CodeGen/BPF/intrinsics.ll
- llvm/test/CodeGen/BPF/mem_offset_be.ll 1 addition, 1 deletionllvm/test/CodeGen/BPF/mem_offset_be.ll
- llvm/test/CodeGen/BPF/sanity.ll 1 addition, 1 deletionllvm/test/CodeGen/BPF/sanity.ll
Please register or sign in to comment