diff options
author | Dave Brolley <brolley@redhat.com> | 2003-09-24 19:04:54 +0000 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2003-09-24 19:04:54 +0000 |
commit | d03124067c162553fb099983d2a6c9bf6e247284 (patch) | |
tree | 5539465a332890db23fdb4163c451e2c75a4736c /cpu/frv.cpu | |
parent | 24daaebce8a29b276319001e01a278bb388cfa06 (diff) | |
download | gdb-d03124067c162553fb099983d2a6c9bf6e247284.zip gdb-d03124067c162553fb099983d2a6c9bf6e247284.tar.gz gdb-d03124067c162553fb099983d2a6c9bf6e247284.tar.bz2 |
2003-09-24 Dave Brolley <brolley@redhat.com>
* frv.cpu (u-commit): New modelling unit for fr500.
(mwtaccg): Use frv_ref_SI to reference ACC40Sk as an input operand.
(commit-r): Use u-commit model for fr500.
(commit): Ditto.
(conditional-float-binary-op): Take profiling data as an argument.
Update callers.
(ne-float-binary-op): Ditto.
Diffstat (limited to 'cpu/frv.cpu')
-rw-r--r-- | cpu/frv.cpu | 57 |
1 files changed, 42 insertions, 15 deletions
diff --git a/cpu/frv.cpu b/cpu/frv.cpu index 8c33d96..9ded338 100644 --- a/cpu/frv.cpu +++ b/cpu/frv.cpu @@ -505,6 +505,14 @@ () ; outputs () ; profile action (default) ) + ; commit unit + (unit u-commit "Commit Unit" () + 1 1 ; issue done + () ; state + ((GRk INT -1) (FRk INT -1)) ; inputs + () ; outputs + () ; profile action (default) + ) ) ; Tomcat machine. Early version of fr500 machine @@ -5798,7 +5806,7 @@ (.str name "$pack $" reg "k") (+ pack (.sym reg k) op (rs-null) ope (GRj-null)) (commit-semantics (index-of (.sym reg k)) is_float) - () + ((fr500 (unit u-commit))) ) ) @@ -5812,7 +5820,7 @@ (.str name "$pack") (+ pack (rd-null) op (rs-null) ope (GRj-null)) (commit-semantics -1 is_float) - () + ((fr500 (unit u-commit))) ) ) @@ -6118,7 +6126,7 @@ (float-binary-op-d fmuld mul OP_7A OPE1_08 F-3 "mul double float") (float-binary-op-d fdivd div OP_7A OPE1_09 F-4 "div double float") -(define-pmacro (conditional-float-binary-op name pipe attr operation op ope comment) +(define-pmacro (conditional-float-binary-op name pipe attr operation op ope profile comment) (dni name (comment) (.splice (UNIT pipe) (MACH simple,tomcat,fr500,frv) @@ -6127,16 +6135,24 @@ (+ pack FRk op FRi CCi cond ope FRj) (if (eq CCi (or cond 2)) (set FRk (operation FRi FRj))) - ((fr500 (unit u-float-arith))) + profile ) ) -(conditional-float-binary-op cfadds FMALL ((FR500-MAJOR F-2)) add OP_6D OPE4_0 "cond add single") -(conditional-float-binary-op cfsubs FMALL ((FR500-MAJOR F-2)) sub OP_6D OPE4_1 "cond sub single") -(conditional-float-binary-op cfmuls FM01 ((FR500-MAJOR F-3)) mul OP_6E OPE4_0 "cond mul single") -(conditional-float-binary-op cfdivs FM01 ((FR500-MAJOR F-4)) div OP_6E OPE4_1 "cond div single") +(conditional-float-binary-op cfadds FMALL ((FR500-MAJOR F-2)) add OP_6D OPE4_0 + ((fr500 (unit u-float-arith))) + "cond add single") +(conditional-float-binary-op cfsubs FMALL ((FR500-MAJOR F-2)) sub OP_6D OPE4_1 + ((fr500 (unit u-float-arith))) + "cond sub single") +(conditional-float-binary-op cfmuls FM01 ((FR500-MAJOR F-3)) mul OP_6E OPE4_0 + ((fr500 (unit u-float-arith))) + "cond mul single") +(conditional-float-binary-op cfdivs FM01 ((FR500-MAJOR F-4)) div OP_6E OPE4_1 + ((fr500 (unit u-float-div))) + "cond div single") -(define-pmacro (ne-float-binary-op name pipe attr operation op ope comment) +(define-pmacro (ne-float-binary-op name pipe attr operation op ope profile comment) (dni name (comment) (.splice (UNIT pipe) (MACH simple,tomcat,fr500,frv) @@ -6146,14 +6162,22 @@ (sequence () (c-call VOID "@cpu@_set_ne_index" (index-of FRk)) (set FRk (operation FRi FRj))) - ((fr500 (unit u-float-arith))) + profile ) ) -(ne-float-binary-op nfadds FMALL ((FR500-MAJOR F-2)) add OP_79 OPE1_26 "ne add single") -(ne-float-binary-op nfsubs FMALL ((FR500-MAJOR F-2)) sub OP_79 OPE1_27 "ne sub single") -(ne-float-binary-op nfmuls FM01 ((FR500-MAJOR F-3)) mul OP_79 OPE1_28 "ne mul single") -(ne-float-binary-op nfdivs FM01 ((FR500-MAJOR F-4)) div OP_79 OPE1_29 "ne div single") +(ne-float-binary-op nfadds FMALL ((FR500-MAJOR F-2)) add OP_79 OPE1_26 + ((fr500 (unit u-float-arith))) + "ne add single") +(ne-float-binary-op nfsubs FMALL ((FR500-MAJOR F-2)) sub OP_79 OPE1_27 + ((fr500 (unit u-float-arith))) + "ne sub single") +(ne-float-binary-op nfmuls FM01 ((FR500-MAJOR F-3)) mul OP_79 OPE1_28 + ((fr500 (unit u-float-arith))) + "ne mul single") +(ne-float-binary-op nfdivs FM01 ((FR500-MAJOR F-4)) div OP_79 OPE1_29 + ((fr500 (unit u-float-div))) + "ne div single") (define-pmacro (fcc-eq) 8) (define-pmacro (fcc-lt) 4) @@ -8193,7 +8217,10 @@ ((UNIT FM01) (FR500-MAJOR M-3) (FR400-MAJOR M-1)) "mwtaccg$pack $FRinti,$ACCGk" (+ pack ACCGk OP_7B FRinti OPE1_3F (FRj-null)) - (set ACCGk FRinti) + (sequence () + ; hack to get these referenced for profiling + (c-raw-call VOID "frv_ref_SI" ACCGk) + (set ACCGk FRinti)) ((fr400 (unit u-media-4-accg)) (fr500 (unit u-media))) ) |