From: Paul K. <pv...@pv...> - 2011-07-22 16:01:45
|
On 2011-07-22, at 9:01 AM, Lutz Euler wrote: > > Paul Khuong wrote: > >> On 2011-07-20, at 8:50 AM, Eric Marsden wrote: >> >>> Hi, >>> >>> On SBCL 1.0.50 on Linux/AMD64: >>> >>> * (defun foo (x) (= #C(2.0 3.0) (the (complex single-float) x))) >>> FOO >>> * (foo #C(1.0 2.0)) >> >> It's indeed a bug in our encoding of RIP-relative EAs (a couple SSE >> instructions (shuffles and comparisons) have the interesting >> characteristic of not having the reg/mem operand as the last field). >> I can fix the assembler, but I have no clue how to get the >> disassembler right. > > I volunteer to do the disassembler part. I'll wait for the assembler > part to be done and base a patch on that as some of the changes will > need to be textually very near to the assembler part. The assembler fix has just been committed (9d2548c Correct RIP-relative offset for strange x86-64 instructions). The disassembler bug has been around for almost two years, and no one's complained yet, so we must be lucky (: Paul Khuong |