[LLVMbugs] [Bug 3390] New: -m32 inline asm: Do not know how to expand the result of this operator
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Sat Jan 24 06:47:23 PST 2009
http://llvm.org/bugs/show_bug.cgi?id=3390
Summary: -m32 inline asm: Do not know how to expand the result of
this operator
Product: new-bugs
Version: unspecified
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: edwintorok at gmail.com
CC: llvmbugs at cs.uiuc.edu
After my attempt to fix the kernel to use same types for input/output regs, I
get a failure on 32-bit:
Am I doing something wrong?
$ llvm-gcc testcase-min.i -m32
ExpandIntegerResult #0: 0x28ce838: i64 = Register RCX
cc1:
/home/edwin/llvm-bootstrap/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:930:
void llvm::DAGTypeLegalizer::ExpandIntegerResult(llvm::SDNode*, unsigned int):
Assertion `0 && "Do not know how to expand the result of this operator!"'
failed.
testcase-min.i:17: internal compiler error: Aborted
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
C reduced testcase below, bytecode attached:
/* testcase */
typedef unsigned int __kernel_size_t;
typedef long long __kernel_loff_t;
typedef __kernel_loff_t loff_t;
typedef __kernel_size_t size_t;
__attribute__ ((regparm (0)))
long sys_sendfile64 (int out_fd, int in_fd, loff_t * offset,
size_t count)
{
if (offset)
{
if (__builtin_expect (!!((
{
__typeof__ (*(offset)) __ret_pu;
__typeof__ (*(offset)) __pu_val;
switch (sizeof (*(offset)))
{
case 8:
asm volatile ("call __put_user_8": "=a" (__ret_pu): "A" ((typeof
(*(offset))) (__pu_val)), "c" (offset):"ebx");}
(int) __ret_pu;}
)), 0))
return -14;
}
}
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list