[llvm-bugs] [Bug 38826] New: [7, trunk, regression][x86 backend] .cfi_offset doesn't allow %eip in 32bit mode
via llvm-bugs
llvm-bugs at lists.llvm.org
Tue Sep 4 10:28:16 PDT 2018
https://bugs.llvm.org/show_bug.cgi?id=38826
Bug ID: 38826
Summary: [7, trunk, regression][x86 backend] .cfi_offset
doesn't allow %eip in 32bit mode
Product: new-bugs
Version: 7.0
Hardware: PC
OS: All
Status: NEW
Severity: enhancement
Priority: P
Component: new bugs
Assignee: unassignedbugs at nondot.org
Reporter: iains-llvm at btconnect.com
CC: llvm-bugs at lists.llvm.org
Created attachment 20839
--> https://bugs.llvm.org/attachment.cgi?id=20839&action=edit
possible patch
For 7.0.0rc2 and trunk, the following code:
.text
.align 4
.globl foo
foo:
.cfi_startproc
movl (%edx), %ecx
movl 4(%edx), %ebx
movl 8(%edx), %esi
movl 12(%edx), %edi
movl 16(%edx), %ebp
.cfi_def_cfa %edx, 0
.cfi_offset %eip, 24
.cfi_register %esp, %ecx
movl %ecx, %esp
jmp *24(%edx)
.cfi_endproc
===
produces
$ ..../bin/llvm-mc -triple i386-unknown-unkown -filetype obj foo.s -o t.o
....:259:18: error: register %eip is only available in 64-bit mode
.cfi_offset %eip, 24
====
this seems to be down to : r336217
"[X86][AsmParser] Don't consider %eip as a valid register outside of 32-bit
mode."
... except that we are in 32b mode ...
The issue is that we want to exclude eip from use in base+index modes, but not
from all uses?
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20180904/a725affe/attachment.html>
More information about the llvm-bugs
mailing list