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 |