[gcc] Yet another gen_lowpart code confused by prt_mode != Pmode

Test from David Meyer, 64-bit mode with -O1:

typedef unsigned int size_t;

extern "C" {
  size_t strlen (const char *);

class StringRef {
  const char *Data;
  size_t Length;

 StringRef(const char *Str)
    : Data(Str), Length(::strlen(Str)) {}

StringRef GetDLLSuffix() {
  return &(".so"[1]);

Reports internal error while trying to replace Pmode register with ptr_mode CONST.

The change fixes the origin of such a CONST in gen_lowpart_for_combine. This is kinda hacky and clearly not upstreamable...

TEST=see above

Review URL: http://codereview.chromium.org/5968010
1 file changed