This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: PATCH: Move operand/address-size override prefixes before SIMD prefix


On Wed, 6 Dec 2006, Menezes, Evandro wrote:

Yes i know and now realize the mistake i made in the example
byte stream -
the line should have read:
0xf3 0x66 0x0f 0x11 ..

The original question remains:
<quote>
What will it be? `movss', `movupd' #UD? Does the first prefix takes
precedence or is there some sort of built in precedence rules (i.e.
not all prefixes are equal)?
</quote>

Off the top of my head, the opcode 0x0f 0x11 preceeded by both 0xf3 and 0x66 is an illegal instruction.

So your position is that it's #UD. Objdump disagrees with you, whether rightfully or not is an open question (or original question if you will)


<transcript>
pref$ cat pref.s
.text
        .byte 0x66, 0xf3, 0x0f, 0x11, 0x00
pref$ as -o pref.o pref.s
pref$ objdump -d pref.o

pref.o: file format elf32-i386

Disassembly of section .text:

00000000 <.text>:
   0:   66                      data16
   1:   f3 0f 11 00             movss  %xmm0,(%eax)

pref$ as --version | head -1
GNU assembler 2.15.90.0.1.1 20040303 (SuSE Linux)

pref$ objdump --version | head -1
GNU objdump 2.15.90.0.1.1 20040303 (SuSE Linux)
</transcript>

--
vale


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]