Problem with inline Intel assembly and optimized build
Problem with inline Intel assembly and optimized build
- Subject: Problem with inline Intel assembly and optimized build
- From: Monroe Williams <email@hidden>
- Date: Fri, 13 Jan 2006 16:40:21 -0800
I'm in the process of bringing an XCode 2.2 project up on Intel. It
builds and runs with the "Development" configuration, but when I
switch to "Deployment" I get the following at the end of a block of
inline assembly (file and function names changed to protect the
innocent). The block consists almost entirely of MMX/SSE instructions.
foo.cpp: In function 'void bar(blah blah)':
foo.cpp:741: error: unable to find a register to spill in class
'SSE_REGS'
foo.cpp:741: error: this is the insn:
(insn:HI 30 29 31 0 foo.cpp:560 (set (reg/v:SF 64 [ last_weight ])
(mem/u/i:SF (symbol_ref/u:SI ("*LC43") [flags 0x2]) [5 S4
A32])) 60 {*movsf_1} (nil)
(nil))
foo.cpp:741: confused by earlier errors, bailing out
{standard input}:12192:FATAL:.abort detected. Assembly stopping.
Disabling the optimizer for this file (-O0) makes the error go away.
'last_weight' is a 'float' variable that's used elsewhere in the
function, but not referenced from the inline assembly blocks.
Has anyone else seen an error like this? Any suggestions on other
ways to get around it? Obviously, this is code that I'd rather not
disable the optimizer on (since it's performance-critical enough to
warrant MMX optimizations in the first place).
Thanks,
-- monroe
------------------------------------------------------------------------
Monroe Williams email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden