Displaying 20 results from an estimated 1000 matches similar to: "[BUG] Mismatch between assembler & disassembler of X86 RIP-relative instruction"
2016 May 23
0
[BUG] Mismatch between assembler & disassembler of X86 RIP-relative instruction
On Mon, May 23, 2016 at 2:44 PM, Jun Koi <junkoi2004 at gmail.com> wrote:
> Hi,
>
> I found a mismatch between assembler & disassembler of X86: I assembled an
> instruction, then disassembled the output, but the result is not the same
> as the first original code: "add qword ptr [205163983024656], 1" vs " add
> qword ptr [1985229328], 1"
>
>
2016 Oct 17
2
Dict proxy client returning empty string instead of multiline string
> > > >>>>> On 10/16/2016 11:16 PM, Pierre Jaury wrote:
> > > >>>>>> Hello,
> > > >>>>>>
> > > >>>>>> I am using a dict proxy for my sieve extdata plugin to access some
> > > >>>>>> fields from an SQLite database (autoreply text and other
> > >
2016 Oct 16
2
Dict proxy client returning empty string instead of multiline string
Hello,
I am using a dict proxy for my sieve extdata plugin to access some
fields from an SQLite database (autoreply text and other
database-configured items).
All tests are performed against version 2.2.25.
$ dovecot --version
2.2.25 (7be1766)
My configuration looks like:
dict {
sieve = sqlite:/etc/dovecot/pigeonhole-sieve.dict
}
[...]
sieve_extdata_dict_uri = proxy::sieve
I
2016 Oct 17
2
Dict proxy client returning empty string instead of multiline string
Hi!
This does sound like a bug, we'll have look.
Aki
On 17.10.2016 01:26, Pierre Jaury wrote:
> I dived a little bit further into the rabbit hole, up to the point where
> debugging has become unpracticle but I still haven't found the root
> cause for sure.
>
> I read most of the code for "p_strdup" based on datastack memory pools
> (which are used for
2016 Oct 17
2
Dict proxy client returning empty string instead of multiline string
Oh duh, it used datastack pool. Try again with the attached patch? Please remember to clear the previous one out before trying.
Aki
>
> The trace is missing some symbols, I will debug tomorrow and see where
> the call comes from exactly.
>
> Regards,
>
>
> On 10/17/2016 06:23 PM, Aki Tuomi wrote:
> > Hi!
> >
> > Looking at the code, I think the bug
2020 Aug 30
5
BUG: complete misunterstanding of the MS-ABI
Objects compiled for the MS-ABI don't conform to it!
Data types beyond 64 bit MUST BE returned by the callee via the
hidden first argument allocated by the caller, NOT in XMM0!
Demo/proof: from this source
--- llvm-bug.c ---
#ifndef __clang__
typedef struct {
unsigned __int64 low;
unsigned __int64 high;
} __uint128_t;
#else
__attribute__((ms_abi))
#endif
__uint128_t
2016 Oct 17
1
Dict proxy client returning empty string instead of multiline string
While trying to isolate properly and reproduce, I was able to trigger
the same bug with the following code:
struct dict *dict;
char* dict_uri = "proxy::sieve";
char* key = "priv/key";
char* username = "admin at domain.tld";
char* value, error;
dict_drivers_register_builtin();
dict_init(dict_uri, DICT_DATA_TYPE_STRING, username,
2020 Jan 21
2
MASM & RIP-relative addressing
Apologies - I apparently remembered part of the issue incorrectly, so this
ended up quite confusing. The problem comes when referencing labels in a
different section of the binary. To clarify, if I assemble the code:
.data
foo BYTE 5
.code
mov eax, foo
with Microsoft's ml64.exe, it emits an object file disassembling to:
0: 8b 05 00 00 00 00 mov eax, dword ptr [rip]
2011 Mar 19
2
[LLVMdev] Apparent optimizer bug on X86_64
Compiling a simple automaton created by GNU bison with -O1 or -O2
resulted in the following machine code:
1300 /*-----------------------------.
1301 | yyreduce -- Do a reduction. |
1302 `-----------------------------*/
1303 yyreduce:
1304 /* yyn is the number of a rule to reduce with. */
1305 yylen = yyr2[yyn];
0x0000000000400c14 <rpcalc_parse+628>: mov
2016 Oct 17
2
Dict proxy client returning empty string instead of multiline string
Hi!
Looking at the code, I think the bug is that it just copies pointer to the value, it should, instead, duplicate the value to some memory region. Can you see if this following patch fixes it?
Aki
> On October 17, 2016 at 4:14 PM Pierre Jaury <pierre at jaury.eu> wrote:
>
>
> Okay, it seems to me that the bug is due to "t_str_tabunescape" using
> the unsafe
2018 Jan 14
1
PCIe ordering and new VIRTIO packed ring format.
Hi,
I have a concern about the portability of offloading the new VIRTIO packed ring format to hardware.
According to the PCIe rev 2.0, paragraph 2.4.2. Update Ordering and Granularity Observed by a Read Transaction"
" if a host CPU writes a QWORD to host memory, a Requester reading that QWORD from host memory may observe a portion of the QWORD updated and another portion of it
2016 May 02
3
[PATCH] MSVC2015U2 workaround, version 2
Here's a new version of a patch that fixes a problem with MSVC2105 update2,
but it doesn't disable any optimization, so the resulting encoding
performance should be almost unaffected by this workaround.
MSVC compiles
abs_residual_partition_sums[partition] = (FLAC__uint32)_mm_cvtsi128_si32(mm_sum);
into this:
movq QWORD PTR [rsi], xmm2
while it should be
movd
2019 Oct 25
4
unnecessary reload of 8-byte struct on i386
Hello folks,
I've recently been looking at the generated code for a few functions in Chromium while investigating crashes, and I came across a curious pattern. A smallish repro case is available at https://godbolt.org/z/Dsu1WI . In that case, the function Assembler::emit_arith receives a struct (Operand) by value and passes it by value to another function. That struct is 8 bytes long, so the
2014 Dec 24
2
[LLVMdev] X86 disassembler is quite broken on handling REX
On Wed, Dec 24, 2014 at 2:43 PM, Craig Topper <craig.topper at gmail.com>
wrote:
> I believe this particular error is caused by this. That seems easy enough
> to just drop the bit. Do you have other non-mmx examples?
>
> case TYPE_MM: \
> if (index > 7) \
> *valid = 0;
2005 Mar 11
0
[LLVMdev] FP Intrinsics
Update: I have been working on this all day, and I finally got it
working more or less with the pattern instruction selector... However,
the generated code is not very good, and I haven't implemented the
expand to calls if the target does not support these FP instructions.
As an example, in the following function the sub abs and compare
compiles to 13 instructions! Also it has changed the
2014 Dec 26
2
[LLVMdev] X86 disassembler & assembler mismatch
The IMM3/IMM5 come from here
X86RecognizableInstr.cpp
943 TYPE("SSECC", TYPE_IMM3)
944: TYPE("AVXCC", TYPE_IMM5)
On Thu, Dec 25, 2014 at 8:22 PM, Jun Koi <junkoi2004 at gmail.com> wrote:
>
>
> On Fri, Dec 26, 2014 at 11:54 AM, Jun Koi <junkoi2004 at gmail.com> wrote:
>
>> hi,
>>
>> some instructions
2020 Jan 21
2
MASM & RIP-relative addressing
Hi all,
Continuing work on llvm-ml (a MASM assembler)... and my latest obstacle is
in enabling MASM's convention that (unless specified) all memory location
references should be RIP-relative. Without it, we emit the wrong
instructions for "call", "jmp", etc., and anything we build fails at the
linking stage.
My best attempt at this so far is a small patch to
2014 Dec 26
2
[LLVMdev] X86 disassembler & assembler mismatch
hi,
some instructions mismatch between assembler & disassembler, like below.
it seems this happens with all SSECC related instructions?
thanks,
Jun
$ echo "cmpps xmm1, xmm2, 23" | ./Release+Asserts/bin/llvm-mc -assemble
-triple=x86_64 --output-asm-variant=1 -x86-asm-syntax=intel -show-encoding
.text
cmpps xmm1, xmm2, 23 # encoding: [0x0f,0xc2,0xca,0x17]
$
2020 Jan 21
2
MASM & RIP-relative addressing
Are you asking what the parsing rules are, or how you should modify the LLVM code to achieve that result?
If the latter, you haven’t really given enough detail here. What code, exactly, have you tried modifying? Do you have any ideas for how it could work?
-Eli
From: Eric Astor <epastor at google.com>
Sent: Tuesday, January 21, 2020 2:44 PM
To: Eli Friedman <efriedma at
2017 May 07
2
X86 disassembler fails to handle 0x66 prefix?
Hello,
I have seen this bug for quite a while, and even in the latest code it
is still there: that is X86 disassembler does not handle 0x66 prefix
properly, if it is put behind 0xF3 prefix.
The below commands should return the same output, but not.
$ echo "0xf3 0x66 0xa5"|./build/bin/llvm-mc --disassemble
-triple=x86_64 -output-asm-variant=1
.text
rep
movsw word ptr es:[rdi], word ptr