Messages in this thread | | | From | David Laight <> | Subject | RE: [RFC PATCH v2 20/21] x86: Add support for CONFIG_CFI_CLANG | Date | Tue, 17 May 2022 07:56:05 +0000 |
| |
From: Sami Tolvanen > Sent: 16 May 2022 23:03 > > On Mon, May 16, 2022 at 2:44 PM Peter Zijlstra <peterz@infradead.org> wrote: > > > > On Mon, May 16, 2022 at 09:32:55PM +0000, David Laight wrote: > > > > > > The compiler always generates this specific instruction sequence. > > > > > > Yes, but there are several ways to encode 'cmpl imm,-6(reg)'. > > > > Yes, but we don't care. This *always* uses the 32bit immediate form. > > Even if the immediate is small. > > Yes, that part is not a problem, but it's a valid point that LLVM > might not always use r8-r15 here, so I will have to check for the REX > prefix before blindly attempting to decode the instruction.
Are you allowing for the REX prefix at all? The encoding of: > > > + * cmpl <id>, -6(%reg) ; 7 bytes is <opcode><mod/TTT/rm><off8><imm32> which is 7 bytes without the REX. If reg is r11 there is an extra REX byte - for 8 in total.
Without the REX byte the decode will be using %bx. So the testing should all have failed. Which means that something else is wrong as well.
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| |