| Index: gcc/gcc/config/i386/i386.md | 
| diff --git a/gcc/gcc/config/i386/i386.md b/gcc/gcc/config/i386/i386.md | 
| index 2a1d573bb9bcb0fb0f4cd91dd5d728cd1de9d75d..a29f022909e98dbf78c9ba02a5e62515825be23b 100644 | 
| --- a/gcc/gcc/config/i386/i386.md | 
| +++ b/gcc/gcc/config/i386/i386.md | 
| @@ -19536,7 +19536,17 @@ | 
| (plus:DI (match_dup 3) | 
| (const_int 8)))] | 
| "TARGET_64BIT" | 
| -  "movsq" | 
| +{ | 
| + if (TARGET_NACL) | 
| +  { | 
| +    return "movsq %%nacl:(%%rsi),%%nacl:(%%rdi),%%r15" | 
| +	   "\nmovl\t%%esi, %%esi\nmovl\t%%edi, %%edi"; | 
| +  } | 
| + else | 
| +  { | 
| +    return "movsq"; | 
| + } | 
| +} | 
| [(set_attr "type" "str") | 
| (set_attr "mode" "DI") | 
| (set_attr "memory" "both")]) | 
| @@ -19566,7 +19576,17 @@ | 
| (plus:DI (match_dup 3) | 
| (const_int 4)))] | 
| "TARGET_64BIT" | 
| -  "movs{l|d}" | 
| +{ | 
| + if (TARGET_NACL) | 
| +  { | 
| +    return "movsl %%nacl:(%%rsi),%%nacl:(%%rdi),%%r15" | 
| +	   "\nmovl\t%%esi, %%esi\nmovl\t%%edi, %%edi"; | 
| +  } | 
| + else | 
| +  { | 
| +    return "movs{l|d}"; | 
| + } | 
| +} | 
| [(set_attr "type" "str") | 
| (set_attr "mode" "SI") | 
| (set_attr "memory" "both")]) | 
| @@ -19626,7 +19646,17 @@ | 
| (plus:DI (match_dup 3) | 
| (const_int 1)))] | 
| "TARGET_64BIT" | 
| -  "movsb" | 
| +{ | 
| + if (TARGET_NACL) | 
| +  { | 
| +    return "movsb %%nacl:(%%rsi),%%nacl:(%%rdi),%%r15" | 
| +	   "\nmovl\t%%esi, %%esi\nmovl\t%%edi, %%edi"; | 
| +  } | 
| + else | 
| +  { | 
| +    return "movsb"; | 
| + } | 
| +} | 
| [(set_attr "type" "str") | 
| (set_attr "memory" "both") | 
| (set_attr "mode" "QI")]) | 
| @@ -19659,8 +19689,7 @@ | 
| { | 
| if (TARGET_NACL) | 
| { | 
| -    return "movl\t%%esi, %%esi\nleaq\t(%%r15,%%rsi), %%rsi\n" | 
| -	   "rep movsq (%%rsi),%%nacl:(%%rdi),%%r15" | 
| +    return "rep movsq %%nacl:(%%rsi),%%nacl:(%%rdi),%%r15" | 
| "\nmovl\t%%esi, %%esi\nmovl\t%%edi, %%edi"; | 
| } | 
| else | 
| @@ -19708,8 +19737,7 @@ | 
| { | 
| if (TARGET_NACL) | 
| { | 
| -    return "movl\t%%esi, %%esi\nleaq\t(%%r15,%%rsi), %%rsi\n" | 
| -	   "rep movs{l|d} (%%rsi),%%nacl:(%%rdi),%%r15" | 
| +    return "rep movs{l|d} %%nacl:(%%rsi),%%nacl:(%%rdi),%%r15" | 
| "\nmovl\t%%esi, %%esi\nmovl\t%%edi, %%edi"; | 
| } | 
| else | 
| @@ -19753,8 +19781,7 @@ | 
| { | 
| if (TARGET_NACL) | 
| { | 
| -    return "movl\t%%esi, %%esi\nleaq\t(%%r15,%%rsi), %%rsi\n" | 
| -	   "rep movsb (%%rsi),%%nacl:(%%rdi),%%r15" | 
| +    return "rep movsb %%nacl:(%%rsi),%%nacl:(%%rdi),%%r15" | 
| "\nmovl\t%%esi, %%esi\nmovl\t%%edi, %%edi"; | 
| } | 
| else | 
| @@ -20207,9 +20234,7 @@ | 
| { | 
| if (TARGET_NACL) | 
| { | 
| -    return "movl\t%%esi, %%esi\nleaq\t(%%r15,%%rsi), %%rsi\n" | 
| -	   "movl\t%%edi, %%edi\nleaq\t(%%r15,%%rdi), %%rdi\n" | 
| -	   "repz cmpsb" | 
| +    return "repz cmpsb %%nacl:(%%rsi),%%nacl:(%%rdi),%%r15" | 
| "\nmovl\t%%esi, %%esi\nmovl\t%%edi, %%edi"; | 
| } | 
| else | 
| @@ -20272,9 +20297,7 @@ | 
| { | 
| if (TARGET_NACL) | 
| { | 
| -    return "movl\t%%esi, %%esi\nleaq\t(%%r15,%%rsi), %%rsi\n" | 
| -	   "movl\t%%edi, %%edi\nleaq\t(%%r15,%%rdi), %%rdi\n" | 
| -	   "repz cmpsb" | 
| +    return "repz cmpsb %%nacl:(%%rsi),%%nacl:(%%rdi),%%r15" | 
| "\nmovl\t%%esi, %%esi\nmovl\t%%edi, %%edi"; | 
| } | 
| else | 
|  |