443 lines
15 KiB
Diff
443 lines
15 KiB
Diff
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
||
index a3566f5c77d..9b06ac3be06 100644
|
||
--- a/gcc/config.gcc
|
||
+++ b/gcc/config.gcc
|
||
@@ -5606,7 +5606,7 @@ case "${target}" in
|
||
| rs64 \
|
||
| 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
|
||
| 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
|
||
- | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
|
||
+ | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 | espresso \
|
||
| a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
|
||
| titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
|
||
# OK
|
||
diff --git a/gcc/config/rs6000/7xx.md b/gcc/config/rs6000/7xx.md
|
||
index c7512beab3e..1553f46a094 100644
|
||
--- a/gcc/config/rs6000/7xx.md
|
||
+++ b/gcc/config/rs6000/7xx.md
|
||
@@ -47,79 +47,79 @@
|
||
|
||
(define_insn_reservation "ppc750-load" 2
|
||
(and (eq_attr "type" "load,fpload,vecload,load_l")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,lsu_7xx")
|
||
|
||
(define_insn_reservation "ppc750-store" 2
|
||
(and (eq_attr "type" "store,fpstore,vecstore")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,lsu_7xx")
|
||
|
||
(define_insn_reservation "ppc750-storec" 8
|
||
(and (eq_attr "type" "store_c")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,lsu_7xx")
|
||
|
||
(define_insn_reservation "ppc750-integer" 1
|
||
(and (ior (eq_attr "type" "integer,insert,trap,cntlz,isel")
|
||
(and (eq_attr "type" "add,logical,shift,exts")
|
||
(eq_attr "dot" "no")))
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,iu1_7xx|iu2_7xx")
|
||
|
||
(define_insn_reservation "ppc750-two" 1
|
||
(and (eq_attr "type" "two")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,iu1_7xx|iu2_7xx,iu1_7xx|iu2_7xx")
|
||
|
||
(define_insn_reservation "ppc750-three" 1
|
||
(and (eq_attr "type" "three")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,iu1_7xx|iu2_7xx,iu1_7xx|iu2_7xx,iu1_7xx|iu2_7xx")
|
||
|
||
(define_insn_reservation "ppc750-imul" 4
|
||
(and (eq_attr "type" "mul")
|
||
(eq_attr "size" "32")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,iu1_7xx*4")
|
||
|
||
(define_insn_reservation "ppc750-imul2" 3
|
||
(and (eq_attr "type" "mul")
|
||
(eq_attr "size" "16")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,iu1_7xx*2")
|
||
|
||
(define_insn_reservation "ppc750-imul3" 2
|
||
(and (eq_attr "type" "mul")
|
||
(eq_attr "size" "8")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,iu1_7xx")
|
||
|
||
(define_insn_reservation "ppc750-idiv" 19
|
||
(and (eq_attr "type" "div")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,iu1_7xx*19")
|
||
|
||
(define_insn_reservation "ppc750-compare" 2
|
||
(and (ior (eq_attr "type" "cmp")
|
||
(and (eq_attr "type" "add,logical,shift,exts")
|
||
(eq_attr "dot" "yes")))
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,(iu1_7xx|iu2_7xx)")
|
||
|
||
(define_insn_reservation "ppc750-fpcompare" 2
|
||
(and (eq_attr "type" "fpcompare")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,fpu_7xx")
|
||
|
||
(define_insn_reservation "ppc750-fp" 3
|
||
(and (eq_attr "type" "fp,fpsimple")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,fpu_7xx")
|
||
|
||
(define_insn_reservation "ppc750-dmul" 4
|
||
(and (eq_attr "type" "dmul")
|
||
- (eq_attr "cpu" "ppc750"))
|
||
+ (eq_attr "cpu" "ppc750,espresso"))
|
||
"ppc750_du,fpu_7xx*2")
|
||
|
||
(define_insn_reservation "ppc7400-dmul" 3
|
||
@@ -130,37 +130,37 @@
|
||
; Divides are not pipelined
|
||
(define_insn_reservation "ppc750-sdiv" 17
|
||
(and (eq_attr "type" "sdiv")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,fpu_7xx*17")
|
||
|
||
(define_insn_reservation "ppc750-ddiv" 31
|
||
(and (eq_attr "type" "ddiv")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,fpu_7xx*31")
|
||
|
||
(define_insn_reservation "ppc750-mfcr" 2
|
||
(and (eq_attr "type" "mfcr,mtcr")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"ppc750_du,iu1_7xx")
|
||
|
||
(define_insn_reservation "ppc750-crlogical" 3
|
||
(and (eq_attr "type" "cr_logical")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"nothing,sru_7xx*2")
|
||
|
||
(define_insn_reservation "ppc750-mtjmpr" 2
|
||
(and (eq_attr "type" "mtjmpr,isync,sync")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"nothing,sru_7xx*2")
|
||
|
||
(define_insn_reservation "ppc750-mfjmpr" 3
|
||
(and (eq_attr "type" "mfjmpr")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"nothing,sru_7xx*2")
|
||
|
||
(define_insn_reservation "ppc750-jmpreg" 1
|
||
(and (eq_attr "type" "jmpreg,branch,isync")
|
||
- (eq_attr "cpu" "ppc750,ppc7400"))
|
||
+ (eq_attr "cpu" "ppc750,ppc7400,espresso"))
|
||
"nothing,bpu_7xx")
|
||
|
||
;; Altivec
|
||
diff --git a/gcc/config/rs6000/driver-rs6000.cc b/gcc/config/rs6000/driver-rs6000.cc
|
||
index f4900724b98..617a4f8d6f2 100644
|
||
--- a/gcc/config/rs6000/driver-rs6000.cc
|
||
+++ b/gcc/config/rs6000/driver-rs6000.cc
|
||
@@ -508,6 +508,7 @@ static const struct asm_name asm_names[] = {
|
||
{ "630", "-mppc64" },
|
||
{ "740", "-mppc" },
|
||
{ "750", "-mppc" },
|
||
+ { "espresso", "-mppc" },
|
||
{ "G3", "-mppc" },
|
||
{ "7400", "-mppc %{!mvsx:%{!maltivec:-maltivec}}" },
|
||
{ "7450", "-mppc %{!mvsx:%{!maltivec:-maltivec}}" },
|
||
diff --git a/gcc/config/rs6000/rs6000-c.cc b/gcc/config/rs6000/rs6000-c.cc
|
||
index 68519e1397f..82aa147d308 100644
|
||
--- a/gcc/config/rs6000/rs6000-c.cc
|
||
+++ b/gcc/config/rs6000/rs6000-c.cc
|
||
@@ -649,6 +649,8 @@ rs6000_cpu_cpp_builtins (cpp_reader *pfile)
|
||
/* Used by lwarx/stwcx. errata work-around. */
|
||
if (rs6000_cpu == PROCESSOR_PPC405)
|
||
builtin_define ("__PPC405__");
|
||
+ if (rs6000_cpu == PROCESSOR_ESPRESSO)
|
||
+ builtin_define ("__ESPRESSO__");
|
||
/* Used by libstdc++. */
|
||
if (TARGET_NO_LWSYNC)
|
||
builtin_define ("__NO_LWSYNC__");
|
||
diff --git a/gcc/config/rs6000/rs6000-cpus.def b/gcc/config/rs6000/rs6000-cpus.def
|
||
index 84fac8bdac1..a79d15a415a 100644
|
||
--- a/gcc/config/rs6000/rs6000-cpus.def
|
||
+++ b/gcc/config/rs6000/rs6000-cpus.def
|
||
@@ -203,6 +203,7 @@ RS6000_CPU ("740", PROCESSOR_PPC750, OPTION_MASK_PPC_GFXOPT)
|
||
RS6000_CPU ("7400", PROCESSOR_PPC7400, POWERPC_7400_MASK)
|
||
RS6000_CPU ("7450", PROCESSOR_PPC7450, POWERPC_7400_MASK)
|
||
RS6000_CPU ("750", PROCESSOR_PPC750, OPTION_MASK_PPC_GFXOPT)
|
||
+RS6000_CPU ("espresso", PROCESSOR_ESPRESSO, OPTION_MASK_PPC_GFXOPT)
|
||
RS6000_CPU ("801", PROCESSOR_MPCCORE, OPTION_MASK_SOFT_FLOAT)
|
||
RS6000_CPU ("821", PROCESSOR_MPCCORE, OPTION_MASK_SOFT_FLOAT)
|
||
RS6000_CPU ("823", PROCESSOR_MPCCORE, OPTION_MASK_SOFT_FLOAT)
|
||
diff --git a/gcc/config/rs6000/rs6000-logue.cc b/gcc/config/rs6000/rs6000-logue.cc
|
||
index edc0d6c8f52..f70ca4e1bba 100644
|
||
--- a/gcc/config/rs6000/rs6000-logue.cc
|
||
+++ b/gcc/config/rs6000/rs6000-logue.cc
|
||
@@ -4313,6 +4313,7 @@ rs6000_emit_epilogue (enum epilogue_type epilogue_type)
|
||
bool using_mtcr_multiple = (rs6000_tune == PROCESSOR_PPC601
|
||
|| rs6000_tune == PROCESSOR_PPC603
|
||
|| rs6000_tune == PROCESSOR_PPC750
|
||
+ || rs6000_tune == PROCESSOR_ESPRESSO
|
||
|| optimize_size);
|
||
|
||
/* Restore via the backchain when we have a large frame, since this
|
||
diff --git a/gcc/config/rs6000/rs6000-opts.h b/gcc/config/rs6000/rs6000-opts.h
|
||
index 88e357835a5..b92f9b0780d 100644
|
||
--- a/gcc/config/rs6000/rs6000-opts.h
|
||
+++ b/gcc/config/rs6000/rs6000-opts.h
|
||
@@ -40,6 +40,7 @@ enum processor_type
|
||
PROCESSOR_PPC750,
|
||
PROCESSOR_PPC7400,
|
||
PROCESSOR_PPC7450,
|
||
+ PROCESSOR_ESPRESSO,
|
||
|
||
PROCESSOR_PPC403,
|
||
PROCESSOR_PPC405,
|
||
diff --git a/gcc/config/rs6000/rs6000-tables.opt b/gcc/config/rs6000/rs6000-tables.opt
|
||
index a5649fef1ec..c44ddff735a 100644
|
||
--- a/gcc/config/rs6000/rs6000-tables.opt
|
||
+++ b/gcc/config/rs6000/rs6000-tables.opt
|
||
@@ -96,97 +96,97 @@ EnumValue
|
||
Enum(rs6000_cpu_opt_value) String(750) Value(22)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(801) Value(23)
|
||
+Enum(rs6000_cpu_opt_value) String(espresso) Value(23)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(821) Value(24)
|
||
+Enum(rs6000_cpu_opt_value) String(801) Value(24)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(823) Value(25)
|
||
+Enum(rs6000_cpu_opt_value) String(821) Value(25)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(8540) Value(26)
|
||
+Enum(rs6000_cpu_opt_value) String(823) Value(26)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(8548) Value(27)
|
||
+Enum(rs6000_cpu_opt_value) String(8540) Value(27)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(a2) Value(28)
|
||
+Enum(rs6000_cpu_opt_value) String(8548) Value(28)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(e300c2) Value(29)
|
||
+Enum(rs6000_cpu_opt_value) String(a2) Value(29)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(e300c3) Value(30)
|
||
+Enum(rs6000_cpu_opt_value) String(e300c2) Value(30)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(e500mc) Value(31)
|
||
+Enum(rs6000_cpu_opt_value) String(e300c3) Value(31)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(e500mc64) Value(32)
|
||
+Enum(rs6000_cpu_opt_value) String(e500mc) Value(32)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(e5500) Value(33)
|
||
+Enum(rs6000_cpu_opt_value) String(e5500mc64) Value(33)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(e6500) Value(34)
|
||
+Enum(rs6000_cpu_opt_value) String(e5500) Value(34)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(860) Value(35)
|
||
+Enum(rs6000_cpu_opt_value) String(e6500) Value(35)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(970) Value(36)
|
||
+Enum(rs6000_cpu_opt_value) String(860) Value(36)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(cell) Value(37)
|
||
+Enum(rs6000_cpu_opt_value) String(970) Value(37)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(ec603e) Value(38)
|
||
+Enum(rs6000_cpu_opt_value) String(cell) Value(38)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(G3) Value(39)
|
||
+Enum(rs6000_cpu_opt_value) String(ec603e) Value(39)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(G4) Value(40)
|
||
+Enum(rs6000_cpu_opt_value) String(G3) Value(40)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(G5) Value(41)
|
||
+Enum(rs6000_cpu_opt_value) String(G4) Value(41)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(titan) Value(42)
|
||
+Enum(rs6000_cpu_opt_value) String(G5) Value(42)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power3) Value(43)
|
||
+Enum(rs6000_cpu_opt_value) String(titan) Value(43)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power4) Value(44)
|
||
+Enum(rs6000_cpu_opt_value) String(power3) Value(44)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power5) Value(45)
|
||
+Enum(rs6000_cpu_opt_value) String(power4) Value(45)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power5+) Value(46)
|
||
+Enum(rs6000_cpu_opt_value) String(power5) Value(46)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power6) Value(47)
|
||
+Enum(rs6000_cpu_opt_value) String(power5+) Value(47)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power6x) Value(48)
|
||
+Enum(rs6000_cpu_opt_value) String(power6) Value(48)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power7) Value(49)
|
||
+Enum(rs6000_cpu_opt_value) String(power6x) Value(49)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power8) Value(50)
|
||
+Enum(rs6000_cpu_opt_value) String(power7) Value(50)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power9) Value(51)
|
||
+Enum(rs6000_cpu_opt_value) String(power8) Value(51)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power10) Value(52)
|
||
+Enum(rs6000_cpu_opt_value) String(power9) Value(52)
|
||
|
||
EnumValue
|
||
-Enum(rs6000_cpu_opt_value) String(power11) Value(53)
|
||
+Enum(rs6000_cpu_opt_value) String(power10) Value(53)
|
||
|
||
EnumValue
|
||
Enum(rs6000_cpu_opt_value) String(powerpc) Value(54)
|
||
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
|
||
index 5fd31bf8242..b1b6674f2f6 100644
|
||
--- a/gcc/config/rs6000/rs6000.cc
|
||
+++ b/gcc/config/rs6000/rs6000.cc
|
||
@@ -4656,6 +4656,7 @@ rs6000_option_override_internal (bool global_init_p)
|
||
|
||
case PROCESSOR_PPC750:
|
||
case PROCESSOR_PPC7400:
|
||
+ case PROCESSOR_ESPRESSO:
|
||
rs6000_cost = &ppc750_cost;
|
||
break;
|
||
|
||
@@ -16830,6 +16831,10 @@ emit_store_conditional (machine_mode mode, rtx res, rtx mem, rtx val)
|
||
if (PPC405_ERRATUM77)
|
||
emit_insn (gen_hwsync ());
|
||
|
||
+ /* Emit dcbst before stwcx. to address Espresso erratum */
|
||
+ if (ESPRESSO_ERRATUM)
|
||
+ emit_insn (gen_rs6000_dcbst (mem));
|
||
+
|
||
emit_insn (fn (res, mem, val));
|
||
}
|
||
|
||
@@ -18250,6 +18255,7 @@ rs6000_adjust_cost (rtx_insn *insn, int dep_type, rtx_insn *dep_insn, int cost,
|
||
|| rs6000_tune == PROCESSOR_PPC620
|
||
|| rs6000_tune == PROCESSOR_PPC630
|
||
|| rs6000_tune == PROCESSOR_PPC750
|
||
+ || rs6000_tune == PROCESSOR_ESPRESSO
|
||
|| rs6000_tune == PROCESSOR_PPC7400
|
||
|| rs6000_tune == PROCESSOR_PPC7450
|
||
|| rs6000_tune == PROCESSOR_PPCE5500
|
||
@@ -18807,6 +18813,7 @@ rs6000_issue_rate (void)
|
||
case PROCESSOR_PPC440:
|
||
case PROCESSOR_PPC603:
|
||
case PROCESSOR_PPC750:
|
||
+ case PROCESSOR_ESPRESSO:
|
||
case PROCESSOR_PPC7400:
|
||
case PROCESSOR_PPC8540:
|
||
case PROCESSOR_PPC8548:
|
||
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
|
||
index 197922fbb84..43772bdbc98 100644
|
||
--- a/gcc/config/rs6000/rs6000.h
|
||
+++ b/gcc/config/rs6000/rs6000.h
|
||
@@ -77,6 +77,9 @@
|
||
#define PPC405_ERRATUM77 0
|
||
#endif
|
||
|
||
+/* Support Espresso stwcx erratum. */
|
||
+#define ESPRESSO_ERRATUM (rs6000_cpu == PROCESSOR_ESPRESSO)
|
||
+
|
||
#ifndef SUBTARGET_DRIVER_SELF_SPECS
|
||
# define SUBTARGET_DRIVER_SELF_SPECS ""
|
||
#endif
|
||
@@ -144,6 +147,7 @@
|
||
mcpu=630: -mppc64; \
|
||
mcpu=740: -mppc; \
|
||
mcpu=750: -mppc; \
|
||
+ mcpu=espresso: -mppc; \
|
||
mcpu=G3: -mppc; \
|
||
mcpu=7400: -mppc %{!mvsx:%{!maltivec:-maltivec}}; \
|
||
mcpu=7450: -mppc %{!mvsx:%{!maltivec:-maltivec}}; \
|
||
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
|
||
index 74b87f926d7..c93a828073f 100644
|
||
--- a/gcc/config/rs6000/rs6000.md
|
||
+++ b/gcc/config/rs6000/rs6000.md
|
||
@@ -347,7 +347,7 @@
|
||
;; enumeration in rs6000-opts.h.
|
||
(define_attr "cpu"
|
||
"ppc601,ppc603,ppc604,ppc604e,ppc620,ppc630,
|
||
- ppc750,ppc7400,ppc7450,
|
||
+ ppc750,ppc7400,ppc7450,espresso,
|
||
ppc403,ppc405,ppc440,ppc476,
|
||
ppc8540,ppc8548,ppce300c2,ppce300c3,ppce500mc,ppce500mc64,ppce5500,ppce6500,
|
||
power4,power5,power6,power7,power8,power9,power10,power11,
|
||
diff --git a/gcc/config/rs6000/sync.md b/gcc/config/rs6000/sync.md
|
||
index 425eff855d2..6dce7d8b327 100644
|
||
--- a/gcc/config/rs6000/sync.md
|
||
+++ b/gcc/config/rs6000/sync.md
|
||
@@ -347,6 +347,13 @@
|
||
"<stcx> %2,%y1"
|
||
[(set_attr "type" "store_c")])
|
||
|
||
+;; I am pretty sure VOID is correct since this actually affects a cache-block sized
|
||
+;; chunk of memory
|
||
+(define_insn "rs6000_dcbst"
|
||
+ [(match_operand:VOID 0 "memory_operand" "=Z")]
|
||
+ ""
|
||
+ "dcbst %y0")
|
||
+
|
||
;; Use a temporary register to force getting an even register for the
|
||
;; lqarx/stqcrx. instructions. Normal optimizations will eliminate this extra
|
||
;; copy on big endian systems.
|