similar to: [LLVMdev] Emitting assembler code

Displaying 20 results from an estimated 1100 matches similar to: "[LLVMdev] Emitting assembler code"

2004 Jun 07
0
[LLVMdev] Emitting assembler code
On Mon, 7 Jun 2004, Vladimir Prus wrote: > > Hello, > I'm trying to write assembler code writer, and of course, have new questions. > I'd like the structure my implementation like this: > if (/*binary instruction*/) { > if (/* unary instruction */ ) { > if (/*control instruction*/) { Okay, that should be no problem. > The question is how to write those
2010 Mar 25
1
[LLVMdev] TSFlagsFields and TSFlagsShifts obsolete?
I think we can get rid of the TSFlagsFields and TSFlagsShifts hack in the InstrInfo TableGen class now. This seems to work just fine: class Instruction { bits<32> TSFlags; } class Domain<bits<2> val> { bits<2> Value = val; } def GenericDomain : Domain<0>; def SSEPackedInt : Domain<1>; def SSEPackedSingle : Domain<2>; def SSEPackedDouble :
2009 May 11
1
[LLVMdev] Instruction categories in the backend
Dear all, I would like to classify all target specific instructions in a set of categories. The category of each instruction would then be available in the backend. Just to illustrate what I am trying to do, the first thing I thought about how to achieve this was to group instruction definitions in InstrInfo.td in the order of categories, and to put pseudo instructions in between to mark category
2008 Apr 16
0
[LLVMdev] Being able to know the jitted code-size before emitting
Comments below. On Apr 15, 2008, at 4:24 AM, Nicolas Geoffray wrote: > OK, here's a new patch that adds the infrastructure and the > implementation for X86, ARM and PPC of GetInstSize and > GetFunctionSize. Both functions are virtual functions defined in > TargetInstrInfo.h. > > For X86, I moved some commodity functions from X86CodeEmitter to > X86InstrInfo. >
2012 Nov 02
0
[LLVMdev] Alternate instruction encoding for subtargets - SOLVED
>> Can I tell tablegen to have two encodings and switch between them >> using a predicate? After some deliberations, I modified tablegen to generate several versions of the GenCodeEmitter file. My tablegen now accepts a new command line parameter called "emitter-instfld". This specifies the name of the field in Instruction that holds the encoded bytes. In my target's td
2008 Apr 15
4
[LLVMdev] Being able to know the jitted code-size before emitting
OK, here's a new patch that adds the infrastructure and the implementation for X86, ARM and PPC of GetInstSize and GetFunctionSize. Both functions are virtual functions defined in TargetInstrInfo.h. For X86, I moved some commodity functions from X86CodeEmitter to X86InstrInfo. What do you think? Nicolas Evan Cheng wrote: > > I think both of these belong to TargetInstrInfo. And
2013 Jan 17
1
[LLVMdev] MC X86 lacking support for hyphenated VIA Padlock instructions
On Wed, Jan 16, 2013 at 12:04:52PM -0500, Stephen Checkoway wrote: > > On Jan 16, 2013, at 10:07 AM, Brad Smith <brad at comstyle.com> wrote: > > > I was wondering if someone with more familiarity with MC > > on X86 could consider looking into adding support for > > the hyphenated versions of the VIA Padlock instructions? > > > Take a look at
2005 Jul 11
0
[LLVMdev] X86AsmPrinter + MASM and NASM backends
On Tue, 12 Jul 2005, Aaron Gray wrote: >>>> You shouldn't have to add new classes to the .td file, just modify >>>> printOp for your asmprinters. >>> I dont think printOp is virtual and therefore cannot be overriden ? >> Why does it need to be virtual? No 'intel' printers want % signs. > > The GAS intel code generator generates percents,
2005 Jul 12
2
[LLVMdev] X86AsmPrinter + MASM and NASM backends
>> The GAS intel code generator generates percents, look at the >> X86InstrInfo.td file it is full of them. > > Ah, I see what you're talking about. Please feel free to remove all of > those from the Intel format. For example, change this: > > def IN8rr : I<0xEC, RawFrm, (ops), > "in{b} {%dx, %al|%AL, %DX}">, Imp<[DX],
2014 Oct 31
2
[LLVMdev] TSFlags in AsmBackend
Hello LLVM, I'd like to check TSFlags in my AsmBackend code. However AsmBackend objects don't have a reference to MCInstrInfo, which is the only way I've seen to reach TSFlags. A quickie grep shows that none of the existing targets check TSFlags in their AsmBackends. Is there any reason I shouldn't check TSFlags in AsmBackend? If not, what's the best way to go about it?
2012 May 04
0
[LLVMdev] form field in target specific td Instruction classes
Most ports pass a format code down to various instructions formats. This ends up getting packed into TSFlags via FormBits. The Mips compiler does not really use this at all except for one place in the old style jit but I think that that code can be eliminated and replaced with something simpler. Is this just an old remnant or are other people using this too? I'm adding a new port to Mips
2018 Sep 06
2
Adding an trinsics in x86
Hi Everyone! I am a newbie at llvm. So the question may be fundamental but difficult to me. I want to add an trinsics in x86 and make the following changes.I want that max_qb can find the max of two Integers and return it. In src/include/llvm/IR/Intrinsics.td : let TargetPrefix = "x86" in { def int_x86_max_qb: GCCBuiltin<"__builtin_x86_max_qb">,
2019 Jun 25
2
x86 instructions EFLAGS in TableGen
Hello, Here is one question regarding the LLVM TableGen: Which file in the llvm/lib/Target/X86 folder describes how the bits in the EFLAGS register are modified by the x86 instructions? For example, in the "X86InstrInfo.td" file, lines 2134-2135, it says: let SchedRW = [WriteALU], Defs = [EFLAGS], Uses = [EFLAGS] in { def CLC : I<0xF8, RawFrm, (outs), (ins), "clc",
2011 Feb 01
1
[LLVMdev] X86 Instructions on LLVM
Hi all, Just a quick question about X86 instructions inside LLVM. I found it hard to do one-to-one mapping from the instructions in X86GenInstInfo.inc to the instructions in the intel Manual. For example, what instructions are DIVR_F32m and DIVR_F64m mapped to in the intel manual? It would be great if there is some docs about the X86 instructions. Thanks tons! Bin
2014 Apr 17
2
yum - package version database
When I query for installed package on the system, I get following result: # yum list installed openssl Loaded plugins: fastestmirror, tsflags, verify, versionlock Loading mirror speeds from cached hostfile Installed Packages openssl.x86_64 1.0.1e-16.el6_5.4 @updates/$releasever When I try to install already installed package (just playing with yum), I get following result: # yum install
2017 Sep 04
2
Issues in Vector Add Instruction Machine Code Emission
Thank You. My add instruction has TA as follows: def P_256B_VADD : I<0xE1, MRMDestReg, (outs VRP_2048:$dst), (ins VRP_2048:$src1, VRPIM_2048:$src2),"P_256B_VADD\t{$src1, $src2, $dst|$dst, $src1, $src2}", [(set VRP_2048:$dst, (add (v64i32 VRP_2048:$src1), (v64i32 VRP_2048:$src2)))]>, TA; so i defined; bool HasTA = TSFlags & X86II::TA; in x86MCCodeEmitter.cpp then used
2016 Nov 28
2
RFC: code size reduction in X86 by replacing EVEX with VEX encoding
Hal, that’s a good point. There are more manually-maintained tables in the X86 backend that should probably be tablegened: the memory-folding tables and ReplaceableInstrs, to name a couple. If you have ideas on how to get these auto-generated, please let us know. From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Hal Finkel via llvm-dev Sent: Wednesday, November 23, 2016
2015 Jul 10
2
[LLVMdev] TSFlags
Hello all, I wan to ask, what is exactly the purpose of TSFlags and can it be used for the condition handling in instructions? How can I implement the conditions in the instruction when I don't have access to the Status Register? Best regards, ES -------------- next part -------------- An HTML attachment was scrubbed... URL:
2017 Sep 04
2
Issues in Vector Add Instruction Machine Code Emission
Hello, I am trying to emit binary for my implemented vector instructions. Although yet i havent done any change or addition in MC framework, For vector load instruction there are no error coming. But for vector add instruction is something like this; > %R_0_REG2048b_1<def> = P_256B_VADD %R_0_REG2048b_1<kill>, %R_0_REG2048b_0<kill> I am getting the following error: Unknown
2017 Sep 04
2
Issues in Vector Add Instruction Machine Code Emission
You are right. But when i defined my instruction as follows: def P_256B_VADD : I<0xE1, MRMDestReg, (outs VRP_2048:$dst), (ins VRP_2048:$src1, VRPIM_2048:$src2),"P_256B_VADD\t{$src1, $src2, $dst|$dst, $src1, $src2}", [(set VRP_2048:$dst, (add (v64i32 VRP_2048:$src1), (v64i32 VRP_2048:$src2)))]>, VEX_4V; I get opcode conflicts? Then what to do? On Tue, Sep 5, 2017 at 3:51 AM,