Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] A simpler method to reject undefined encodings"
2013 May 01
0
[LLVMdev] A simpler method to reject undefined encodings
Hi Mihail,
> static DecodeStatus CheckNEONConstraint(const MCInst &Inst, unsigned Insn)
[...]
> ConstraintCheckMethod = "CheckNEONConstraint"
In general I like the idea of an instruction-validation method. I
think it could also potentially solve the SoftFail/UNPREDICTABLE
issues that are looming (and partially resolved for decoding at
present).
However, I think that to cope
2017 Nov 30
2
PPC64 Disassembler
> But where is the flat set? Maybe I can debug and check what is going on.
The MCInstrDesc are in a table in lib/Target/PowerPC/PPCGenInstrInfo.inc
of your build directory.
> Some additional information:
>
> MCInst opcode: 0x7cb
> Decode Index: 0x1e
I had assumed this would have dissembled to '// Inst #234 = BC' which does
have the branch flag set, but I think that
2017 Nov 30
2
PPC64 Disassembler
The `isBranch` flag is already set on the branch instructions. Furthermore,
we do use the `isBranch()` query in a few places in the PPC back end, so
this does work. Perhaps there's something specific about the lldb usage? Is
it somehow possible that the `isBranch()` query is called on the wrong
instruction?
Would you be able to provide a test case that reproduces the issue?
On Thu, Nov 30,
2012 Dec 21
1
[LLVMdev] A potential bug in helper function "fieldFromInstruction" in tablegen'erated file "XXXGenDisassemblerTables.inc"
Helper function:
template<typename InsnType>
static InsnType fieldFromInstruction(InsnType insn, unsigned startBit,
unsigned numBits) {
assert(startBit + numBits <= (sizeof(InsnType)*8) &&
"Instruction field out of bounds!");
InsnType fieldMask;
if (numBits == sizeof(InsnType)*8)
fieldMask =
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
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
2013 Jun 25
2
[LLVMdev] Auxiliary operand types for disassembler.
I'm working on a disassembler for hexagon (vliw) architecture and I
would like to add an additional operand type, "kAux" to the MCOperand class.
The reason for this is that each insn has parse bits which are not
explicit operands and have differing meanings based on the insn's
location within the packet and the number of insns inside the packet.
In order for the disassembler
2013 Jun 26
1
[LLVMdev] Auxiliary operand types for disassembler.
On 06/25/2013 04:46 PM, Jim Grosbach wrote:
> Hi Sid,
>
> This feels like it’s exposing too much of the disassembler internals
> into the MCOperand representation. I’m not sure I follow why that’s
> necessary. Can you elaborate a bit?
>
A packet contains 1-4 insns and until the contents of the entire packet
are known the meaning of any individual insn is not known with 100%
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
2011 Nov 08
0
[LLVMdev] [cfe-dev] LLVM 3.0rc3 Testing Beginning
On 7 November 2011 22:00, Bill Wendling <wendling at apple.com> wrote:
> We are starting on our third (and hopefully last) round of testing for LLVM 3.0. Please visit:
>
> http://llvm.org/pre-releases/3.0/rc3/
>
> for the sources. There are also binaries for Darwin up there, with more to come during the week. Please build this release candidate, test it out on your
2009 Jul 10
2
[LLVMdev] MCInst
Can someone explain what MCInst is vs. MachineIntr? I'm porting some
patches we have here that affect MachineInstrs and am wondering whether I
need to make similar changes in MCInst.
Why do we have two machine instruction representations?
-Dave
2013 Jun 25
0
[LLVMdev] Auxiliary operand types for disassembler.
Hi Sid,
This feels like it’s exposing too much of the disassembler internals into the MCOperand representation. I’m not sure I follow why that’s necessary. Can you elaborate a bit?
-Jim
On Jun 25, 2013, at 8:24 AM, Sid Manning <sidneym at codeaurora.org> wrote:
>
> I'm working on a disassembler for hexagon (vliw) architecture and I would like to add an additional operand type,
2014 Mar 12
2
[LLVMdev] Hazard recognition using MCInst
Dear All,
I am following a flow to generate object files(.o) from input (.s assembly) files.
The input .s is given to AsmParser, which creates MCInst after matching instruction opcode.
These MCInst are converted to MCStream and then finally emitting to an object file using Target Code Emitter.
I am considering whether hazard recognition can be done on the list of MCInst, which I get after
2012 Dec 23
5
[LLVMdev] Getting MCInst "ins" and "outs"
Hi all.
I'm looking for some way to do code analysis with LLVM. Can someone please give me a hint, if it is possible to query an MCInst for what are input operands and what are output operands?
Small example.
Consider we have an instruction:
str r1, [sp, #8]
Being mapped into MCInst instance it has the following operands:
<MCOperand Reg:61> <-- maps to reg r1
2013 Sep 18
2
[LLVMdev] Translation between MCInst and Binary Executable
Hi, Dear LLVM Dev Group,
I am doing an LLVM project aimed to disassemble an ARM ELF binary
executable to the MCInst format, inserting some instructions or doing some
modification, and re-assemble the MCInst to an ELF binary.
As I used the llvm-mc, it seems to only have the option "llvm-mc
-disassemble", which reads strings and output strings. Is there any command
or function that can
2014 Jan 10
8
[LLVMdev] All backends now use the MC asm printer
In r198030 the last in tree backend was converted to use MCInst for
printing assembly. I removed support for the old printer in r198959.
Out of tree targets have to lower MachineInstr to MCInst to use the new printer.
Cheers,
Rafael
2009 Jul 10
0
[LLVMdev] MCInst
On Jul 9, 2009, at 5:34 PM, David Greene wrote:
> Can someone explain what MCInst is vs. MachineIntr?
Sure. MCInst is designed to be part of the "MC" set of libraries,
which is stuff dealing with machine code. We're building a suite of
assemblers and disassemblers out of this.
MCInst is integral to this plan. For an assembler you have two pieces:
1. "Recognize"
2009 Jul 10
1
[LLVMdev] MCInst
On Friday 10 July 2009 00:19, Chris Lattner wrote:
> asmprinter::printInstruction will lower a MachineInstr to an MCInst,
> then call the MCInst asmprinter to do the hard formatting work. You
> can see a horrible simple skeleton of this idea in
> X86ATTAsmPrinter::printMachineInstruction.
Yep, that's where I hit the problem. I'm patching the sources for the
comment emitter
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
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: