<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Oct 24, 2015, at 11:17 AM, Matt Arsenault <<a href="mailto:arsenm2@gmail.com" class="">arsenm2@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">The crash is easy enough to fix by checking isReg() before the setModifiers, but then the instruction is incorrectly rejected. I’m not really sure what’s going on with that right now, but I’m guessing it has to do with the way the modifiers are part of the same parsed operand, but separate in the MCInst’s operands and the missing modifier operand isn’t being added for immediates. I’m not really sure the right way to fix this.</span></div></blockquote></div><br class=""><div class="">It seems it’s being rejected here in AMDGPUGenAsmMatcher.inc</div><div class=""><br class=""></div><div class=""><div class="">  // 'RegWithInputMods' class</div><div class="">  if (Kind == MCK_RegWithInputMods) {</div><div class="">    if (Operand.isRegWithInputMods())</div><div class="">      return MCTargetAsmParser::Match_Success;</div><div class="">  }</div></div><div class=""><br class=""></div><div class="">Operand is actually an immediate. I would expect this to be reaching </div><div class=""><br class=""></div><div class=""><div class="">  // 'VCSrc32' class</div><div class="">  if (Kind == MCK_VCSrc32) {</div><div class="">    if (Operand.isVCSrc32())</div><div class="">      return MCTargetAsmParser::Match_Success;</div><div class="">  }</div></div><div class=""><br class=""></div><div class="">and passing here, but for some reason it isn’t.</div></body></html>