Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] Getting MCInst "ins" and "outs""
2012 Dec 26
0
[LLVMdev] Getting MCInst "ins" and "outs"
The MCInstrDesc has a method getNumDefs() which tells you how many 'out registers' that MCInst has. The 'out' registers are always at the beginning of the list. You can also use getNumOperands().
Not sure if this is what you are looking for.
-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Vladimir Pouzanov
2012 Dec 26
1
[LLVMdev] Getting MCInst "ins" and "outs"
Hi,
Am Mittwoch, 26. Dezember 2012, 15:20:27 schrieb Manny Ko:
> The MCInstrDesc has a method getNumDefs() which tells you how many 'out
> registers' that MCInst has. The 'out' registers are always at the beginning
> of the list. You can also use getNumOperands().
I've run into the problem, that this doesn't work for instructions which have
variadic arguments
2016 Dec 03
2
Immediate operand for vector instructions
Hello.
I have problems specifying vector instructions with immediate values in TableGen.
I wrote the following specification (I got inspired from the MSA vector instructions
for the Mips back end):
class MSA_I16_FMT<bits<9> opcode>: MSAInst {
bits<16> s16;
let Inst{31-23} = opcode;
let Inst{26-11} = s16;
}
2018 Sep 28
3
error: expected memory with 32-bit signed offset
Hi,
I want to encode Loongson ISA initially
https://gist.github.com/xiangzhai/8ae6966e2f02a94e180dd16ff1cd60ac
gslbx $2,0($3,$4)
It is equivalent to:
dadd $1, $3, $4
lb $2,0($1)
I just use mem_simmptr as the default value of DAGOperand MO ,
because MipsMemAsmOperand use parseMemOperand to parse general
MemOffset and only *one* AnyRegister , for example:
0($1)
But
2012 Mar 02
0
[LLVMdev] how to annotate assembler
On 02.03.2012, at 09:20, Konstantin Vladimirov wrote:
> Hi,
>
> In GCC there is one useful option -dp (or -dP for more verbose output)
> to annotate assembler with instruction patterns, that was used when
> assembler was generated. For example:
The internal "-mllvm -show-mc-inst" option is probably as close as you can get.
$ clang -S -O0 test.c -mllvm -show-mc-inst -o
2012 Nov 29
0
[LLVMdev] Support for bundles of MCInst?
Mario,
On Nov 29, 2012, at 3:00 PM, Mario Guerra <mariog at codeaurora.org> wrote:
> We're developing an integrated assembler for a VLIW target, and some of the
> optimizing our assembler needs to do must be done on a per-packet basis.
> This requires us to be able to traverse instruction within a packet, and one
> particular optimization requires traversal of previous
2018 Mar 23
1
ARM Backend BuildMI operand issues
Thank you for your help Tom
you are totally right with the registers but the command you suggest
also doesn't work.
After some research I found the following thread on the mailing list:
http://lists.llvm.org/pipermail/llvm-dev/2017-February/110086.html
With your help and the information about the condition codes I was able
to resolve the error:
BuildMI(BB, BB.end(), DL,
2019 Mar 25
2
Printing PC-relative offsets - how to get the instruction length?
Hi
In my MC6809 backend, in llvm/lib/Target/MC6809/InstPrinter/MC6809InstPrinter.cpp, I have the routine
void MC6809InstPrinter::printPCRelImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O) {
const MCOperand &Op = MI->getOperand(OpNo);
ZZ
if (Op.isImm()) {
int64_t Imm = Op.getImm() + 2; <<<========================
O << "$";
if (Imm
2018 Jun 26
2
MachineFunction Instructions Pass using Segment Registers
This shouldn't have parsed.
movq (%gs), %r14
That's trying to use%gs as a base register which isn't valid. GNU assembler
rejects it. And coincidentally llvm-mc started rejecting it on trunk late
last week. That's probably why it printed as %ebp.
I don't know if there is an instruction to read the base of %gs directly.
Maybe rdgsbase, but that's only available on Ivy
2012 Mar 02
3
[LLVMdev] how to annotate assembler
Hi,
In GCC there is one useful option -dp (or -dP for more verbose output)
to annotate assembler with instruction patterns, that was used when
assembler was generated. For example:
double
test(long long s)
{
return s;
}
gcc -S -dp -O0 test.c
test:
.LFB0:
.cfi_startproc
pushq %rbp # 18 *pushdi2_rex64/1 [length = 1]
.cfi_def_cfa_offset 16
movq %rsp, %rbp # 19 *movdi_1_rex64/2
2018 Mar 22
2
ARM Backend BuildMI operand issues
Hello everyone,
I'm working on a MachineFunctionPass that inserts a list of instructions
into an Module so a later Pass can work on them.
To do so I load a dummy .ll file created from a main stub, create the
needed function stubs (ModulePass), insert Blocks and create
instructions using BuildMI.
I started with branch instructions:
const TargetMachine &TM = MF.getTarget();
2012 Nov 29
4
[LLVMdev] Support for bundles of MCInst?
Hello all,
We're developing an integrated assembler for a VLIW target, and some of the
optimizing our assembler needs to do must be done on a per-packet basis.
This requires us to be able to traverse instruction within a packet, and one
particular optimization requires traversal of previous packets as well.
We're considering adding support for MCInst bundles in the MC layer to
2012 Dec 28
2
[LLVMdev] Disassembly broken?
Hi all.
I came across a strange behaviour in the instruction printer for Thumbv2:
The instruction is 0xf000b800, which is a b.w #0
LLVM returns it as b.w #-262144, which doesn't make any sense to me.
Should I consider it a bug?
--
Vladimir Pouzanov
http://www.farcaller.net/
2012 Sep 26
2
[LLVMdev] What does MCOperand model?
A question for LLVM code generator developers:
After having read through "The LLVM Target-Independent Code Generator"
[1] I'm unclear about what precisely the objects MCInst and MCOperand
represent. They sit in the space between assembly syntax and binary
encodings, but which are they modeling? For example, a Thumb 2 branch
instruction 'b' takes an immediate. That syntax
2012 Mar 26
1
[LLVMdev] Disassembly broken for thumb LDR
Hi all.
I'm investigating an issue with incorrect lldb's disassembly output. I have two bytes in question: 4e5f
lldb (via the llvm's LLVMARMCodeGen) is providing the following mnemonics:
ldr r6, #380,
However the value for ldr is "an 8-bit value that is multiplied by 4 and added to the value of the PC to form the memory address" (via ARMARM), so that the correct
2012 Dec 10
3
[LLVMdev] typeinfo for llvm::MCAsmInfo is missing
I've actually tried to compile both LLVM and my lib with -frtti with same results.
On Dec 10, 2012, at 21:57, Jim Grosbach <grosbach at apple.com> wrote:
> Llvm typically doesn't build with RTTI enabled. Perhaps that's what you're running into?
>
> Jim
--
Vladimir Pouzanov
http://www.farcaller.net/
-------------- next part --------------
A non-text attachment
2012 Dec 10
2
[LLVMdev] typeinfo for llvm::MCAsmInfo is missing
Hi all.
I fully understand that the problem is a bit OT for llvmdev, but I'm stuck for two days now and I really need some direct push.
To the problem. I have a C++ shared library, that's working with llvm C++ api. Consider a function:
static Object llvm_Target_createMCAsmInfo(Object self, Object tripleName)
{
llvm::Target target = from_ruby<llvm::Target>(self);
char const
2018 Mar 22
0
ARM Backend BuildMI operand issues
On 03/22/2018 09:29 AM, Julius Hiller via llvm-dev wrote:
> Hello everyone,
>
> I'm working on a MachineFunctionPass that inserts a list of instructions into an Module so a later Pass can work on them.
> To do so I load a dummy .ll file created from a main stub, create the needed function stubs (ModulePass), insert Blocks and create instructions using BuildMI.
> I started with
2012 Sep 26
0
[LLVMdev] What does MCOperand model?
Owen is correct in his descriptions. The MCOperand values are intended to model the instruction encoding. Where that doesn't match the assembly syntax, the asm parser (and codegen) and the instruction printer are responsible for encoding/decoding the values.
For targets that predate the MC layer, this isn't always the case, leading to things being a bit confusing when just reading the
2018 Jun 30
2
Using BuildMI to insert Intel MPX instruction BNDCU failed
Hello everyone, I'm a newbie of llvm. I'm trying to insert Intel MPX
instruction BNDCU with BuildMI. I add my machinefunctionpass
at addPreEmitPass2.
Here is the code of insertion:
BuildMI(MBB, MI, DL, TII->get(X86::BNDCU64rr)).addReg(X86::BND2,
RegState::Define).addReg(X86::R10);
And here is to stack track when I compiler program with modified llc: