On Tue, Feb 17, 2015 at 11:39 AM, Terry Guo <flame...@gmail.com> wrote: > On Sun, Feb 15, 2015 at 7:35 PM, Segher Boessenkool > <seg...@kernel.crashing.org> wrote: >> Hi Terry, >> >> I still think this is stage1 material. >> >>> + /* Don't combine if dest contains a user specified register and i3 >>> contains >>> + ASM_OPERANDS, because the user specified register (same with dest) in >>> i3 >>> + would be replaced by the src of insn which might be different with >>> + the user's expectation. */ >> >> "Do not eliminate a register asm in an asm input" or similar? Text >> explaining why REG_USERVAR_P && HARD_REGISTER_P works here would be >> good to have, too. >> >>> + if (REG_P (dest) && REG_USERVAR_P (dest) && HARD_REGISTER_P (dest) >>> + && (GET_CODE (PATTERN (i3)) == SET >>> + && GET_CODE (SET_SRC (PATTERN (i3))) == ASM_OPERANDS)) >>> + return 0; >> >> That works only for asms with exactly one output. You want >> extract_asm_operands. >> >> >> Segher > > Thanks Segher. Patch is updated per you suggestion. Is this one ok for stage > 1? > > BR, > Terry
Hi Segher, Any comments on the updated patch, is it OK? BR, Terry