"Naughty" register error in Cmm
When experimenting with Cmm code, I found the following bug/trap.
This Cmm code,
foo {
bits8 x;
x = 5;
bits8[12] = x;
R1 = x;
jump bar;
}
causes the following error
/tmp/ghc6613_0/ghc6613_0.s: Assembler messages:
/tmp/ghc6613_0/ghc6613_0.s:7:0:
Error: junk `naughty I386 byte register' after expression
The assembly that is produced is:
.text
.align 4,0x90
.globl foo
foo:
movl $5,%eax
movb %al,12
movb %al,very naughty I386 byte register
jmp bar
.section .note.GNU-stack,"",@progbits
.ident "GHC 6.7.20070612"
Note the "very naughty I386 byte register" in there.
I am not sure whether this kind of Cmm can be generated from Haskell code.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.7 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |