Displaying 20 results from an estimated 400 matches similar to: "[LLVMdev] Some bugs in x86 disasm (llvm-mc)"
2013 Nov 27
0
[LLVMdev] Some bugs in x86 disasm (llvm-mc)
Hi Jun,
I'm not sure how to fix this yet, but this looks incorrectly defined in
lib/Target/X86/X86InstrInfo.td:
def MOV32o32a : Ii32 <0xA1, RawFrm, (outs), (ins offset32:$src),
"mov{l}\t{$src, %eax|eax, $src}", [], IIC_MOV_MEM>,
Requires<[In32BitMode]>;
This instruction can be REX-prefixed for a 64-bit move, and that also
2014 Jan 14
2
[LLVMdev] Some bugs in x86 disasm (llvm-mc)
On Thu, Nov 28, 2013 at 1:03 AM, Kay Tiong Khoo <kkhoo at perfwizard.com>wrote:
> Hi Jun,
>
> I'm not sure how to fix this yet, but this looks incorrectly defined in
> lib/Target/X86/X86InstrInfo.td:
>
> def MOV32o32a : Ii32 <0xA1, RawFrm, (outs), (ins offset32:$src),
> "mov{l}\t{$src, %eax|eax, $src}", [], IIC_MOV_MEM>,
>
2014 Jan 15
2
[LLVMdev] Some bugs in x86 disasm (llvm-mc)
On Tue, 2014-01-14 at 22:59 -0800, Craig Topper wrote:
> I started trying to fix this tonight but it's pretty nasty to fix.
> I'll try to make another go at it later this week.
Much of it seems fixed already; what's left to fix? The segment prefix
override? Does that mean we get to fix disassembly of '0x65 0xa4' while
we're at it? (Although we can't even
2011 Sep 30
2
[LLVMdev] LLVM backends instruction selection
I am new to the LLVM backends, I am wondering how instruction selection is
done in LLVM backends, I looked at the .td files in Target/X86, they all
seem to be small and do not deal with common X86 instructions, i.e. mov,
push, pop, etc.
Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2013 Nov 27
2
[LLVMdev] Some bugs in x86 disasm (llvm-mc)
> I would file a bugzilla in the x86 component and cc Craig Topper, the x86
> disasm/codegen expert.
If you chase down the revision history, there are already a couple of
bugs filed: PR16961 and PR16962.
Cheers.
Tim.
2013 Nov 27
0
[LLVMdev] Some bugs in x86 disasm (llvm-mc)
Thanks, Tim!
As Craig noted:
http://llvm.org/bugs/show_bug.cgi?id=16962#c1
"There are many things wrong with these instructions."
:)
On Wed, Nov 27, 2013 at 10:17 AM, Tim Northover <t.p.northover at gmail.com>wrote:
> > I would file a bugzilla in the x86 component and cc Craig Topper, the x86
> > disasm/codegen expert.
>
> If you chase down the revision
2018 Mar 28
4
x86 instruction format which takes a single 64-bit immediate
I am attempting to create an instruction which takes a single 64-bit
immediate. This doesn't seem like a thing that would exist already (because
who needs an instruction which just takes an immediate?) How might I
implement this easily? Perhaps I could use a format which encodes a
register, which is then unused?
Thanks for the help.
Gus
-------------- next part --------------
An HTML
2017 Jul 07
2
Unhandled reg/opcode register encoding VR2048 Error in backend
Hello,
I m working towards backend.
Here i need to define vector load and stores for 64 i32 elements. so in
x86instrinfo.td i wrote;
def VMOV_256B_RM : I<0x6F, MRMSrcMem, (outs VR2048:$dst), (ins
i32mem:$src),
"vmov_256B_rm\t{$src, $dst|$dst, $src}",
[(set VR2048:$dst, (v64i32 (scalar_to_vector (loadi32
addr:$src))))],
2015 Mar 24
3
[LLVMdev] [PATCH] fix outs/ins of MOV16mr instruction (X86)
Hi,
This patch fixes outs/ins of MOV16mr instruction of X86.
Thanks.
diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td
index e9a0431..f5b2064 100644
--- a/lib/Target/X86/X86InstrInfo.td
+++ b/lib/Target/X86/X86InstrInfo.td
@@ -1412,7 +1412,7 @@ let SchedRW = [WriteStore] in {
def MOV8mr : I<0x88, MRMDestMem, (outs), (ins i8mem :$dst, GR8 :$src),
2013 Sep 12
1
[LLVMdev] bug in X86 disasm code?
hi,
i found this code in X86DisassemblerDecoder.h
#define EA_BASES_32BIT \
ENTRY(EAX) \
ENTRY(ECX) \
ENTRY(EDX) \
ENTRY(EBX) \
ENTRY(sib) \
ENTRY(EBP) \
ENTRY(ESI) \
ENTRY(EDI) \
ENTRY(R8D) \
ENTRY(R9D) \
ENTRY(R10D) \
ENTRY(R11D) \
2013 Nov 27
1
[LLVMdev] Some bugs in x86 disasm (llvm-mc)
> As Craig noted:
> http://llvm.org/bugs/show_bug.cgi?id=16962#c1
>
> "There are many things wrong with these instructions."
I think he fixed quite a few of them shortly afterwards (r189201),
though obviously not all, as you discovered.
Cheers.
Tim.
2017 Aug 07
3
VBROADCAST Implementation Issues
Thank You. Still getting errors.I have modified my instructions as you said
as follows:
def GATHER_256B : I<0x68, MRMSrcMem, (outs VR_2048:$dst, VK64WM:$mask_wb),
(ins VR_2048:$src1, VK64WM:$mask, i2048mem:$src2),
"GATHER_256B\t{$src2, {$dst} {${mask}}|${dst}
{${mask}}, $src2}",
[(set VR_2048:$dst, VK64WM:$mask_wb, (v64i32
(masked_gather
2014 Jan 16
2
[LLVMdev] Some bugs in x86 disasm (llvm-mc)
I believe I have now fixed the 0x64 0xa1 0x00 0x00 0x00 0x00 bug in r199364.
On Wed, Jan 15, 2014 at 10:53 AM, Craig Topper <craig.topper at gmail.com>wrote:
> To fix it we need to change offset8/offset16/etc to have two suboperands
> and update the printer to understand that. Also update the disassembler to
> add the segment to the MCInst when its creating it. When I did these
2017 Aug 07
2
VBROADCAST Implementation Issues
Hello,
I did as you said,
Please tell me whether the following correct now??
def GATHER_256B : I<0x68, MRMSrcMem, (outs VR_2048:$dst, _.KRCWM:$mask_wb),
(VR_2048:$src1, _.KRCWM:$mask, ins i2048mem:$src2),
"GATHER_256B\t{$src2, {$dst}{${mask}}|${dst} {${mask}},
$src2}"),
[(set VR_2048:$dst, _.KRCWM:$mask_wb, (v64i32
(GatherNode
2005 May 06
2
[LLVMdev] initialize 'dag' variable and interpret asmstring in tablegen .td file
llvm/lib/Target/X86/X86InstrInfo.td:
class X86Inst<bits<8> opcod, Format f, ImmType i, dag ops, string
AsmStr> : Instruction {
....
dag OperandList = ops;
string AsmString = AsmStr;
}
def MOV32mi : Ii32<0xC7, MRM0m, (ops i32mem:$dst, i32imm:$src),
"mov{l} {$src, $dst|$dst, $src}">;
I cannot find any document on initializing the
2017 Aug 06
2
VBROADCAST Implementation Issues
i want to implement gather for v64i32. i wrote following code.
def GATHER_256B : I<0x68, MRMSrcMem, (outs VR_2048:$dst), (ins
i2048mem:$src),
"GATHER_256B\t{$src, $dst|$dst, $src}",
[(set VR_2048:$dst, (v64i32 (masked_gather
addr:$src)))],
IIC_MOV_MEM>, TA;
def: Pat<(v64f32 (masked_gather addr:$src)), (GATHER_256B
2016 May 01
2
Storage of byte code-compiled functions in sysdata.rda
Thanks, Luke, for having a look to it.
Sure, I can give you some reproducible example -- even in two degrees of
completeness ;-): see below.
Thanks again, Peter
%-----------------------------------
(I) first example
%-----------------------------------
Just to reproduce the error, on r-devel, try:
install.packages("RobAStRDA")
require(RobAStRDA)
getFromNamespace(".RMXE", ns
2018 Mar 28
0
x86 instruction format which takes a single 64-bit immediate
Copy Ii32 in X86InstrFormats.td rename to Ii64 and change Imm32 to Imm64.
Instantiate your instruction inheriting from Ii64. Pass RawFrm to the form
parameter.
Initial documentation for the encoding system is attached.
~Craig
On Wed, Mar 28, 2018 at 4:50 PM, Gus Smith via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> I am attempting to create an instruction which takes a single
2011 Oct 12
2
[LLVMdev] llvm-objdump related patch
Michael,
I have rework the patch according to your suggestion. And I have
read binutil/objdump source code and found that it has a logic that if
there's no symtab, it will use dynsym, which is missing in llvm-objdump.
Songmao
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Fix-the-address-calculation-for-llvm-objdump.patch
Type: text/x-patch
2017 Jul 11
2
error: In anonymous_4820: Unrecognized node 'VRR128'!
hello,
i need to use v32i32 and v32f32 in store instructions.
I defined my register as;
def VRR128 : RegisterClass<"X86", [v32i32, v32f32],
1024, (add R_0_V_0, R_1_V_0, R_2_V_0)>;
def STORE_DWORD : I<0x70, MRMDestMem, (outs), (ins i2048mem:$dst,
VRR128:$src),
"STORE_DWORD\t{$src, $dst|$dst, $src}",