diff options
| author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-02-10 22:45:39 +0000 |
|---|---|---|
| committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-02-10 22:45:39 +0000 |
| commit | d3cb04dc230b6f4ea462a06a6850733b35592b7d (patch) | |
| tree | 42a804dbd702b73f353b6738116385a6ed0b2aab | |
| parent | 52b078bc05ac920d6f1f322e19e5d6ec3b086c3b (diff) | |
| download | ppe42-gcc-d3cb04dc230b6f4ea462a06a6850733b35592b7d.tar.gz ppe42-gcc-d3cb04dc230b6f4ea462a06a6850733b35592b7d.zip | |
* config/h8300/h8300.md (abssf2): New.
(*abssf2_h8300): Likewise.
(*abssf2_h8300hs): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62654 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/config/h8300/h8300.md | 26 |
2 files changed, 32 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cf7897e8683..ab101b8063f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-02-10 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/h8300.md (abssf2): New. + (*abssf2_h8300): Likewise. + (*abssf2_h8300hs): Likewise. + 2003-02-10 Phil Edwards <pme@gcc.gnu.org> * tree.c (build_tree_list): Fix parameter names in comment. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 808b53f31cc..69e2f720c3a 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -1437,7 +1437,33 @@ "xor.w\\t#32768,%e0" [(set_attr "cc" "clobber") (set_attr "length" "4")]) + +;; ---------------------------------------------------------------------- +;; ABSOLUTE VALUE INSTRUCTIONS +;; ---------------------------------------------------------------------- +(define_expand "abssf2" + [(set (match_operand:SF 0 "register_operand" "") + (abs:SF (match_operand:SF 1 "register_operand" "")))] + "" + "") + +(define_insn "*abssf2_h8300" + [(set (match_operand:SF 0 "register_operand" "=r") + (abs:SF (match_operand:SF 1 "register_operand" "0")))] + "TARGET_H8300" + "and.b\\t#127,%z0" + [(set_attr "cc" "clobber") + (set_attr "length" "2")]) + +(define_insn "*abssf2_h8300hs" + [(set (match_operand:SF 0 "register_operand" "=r") + (abs:SF (match_operand:SF 1 "register_operand" "0")))] + "TARGET_H8300H || TARGET_H8300S" + "and.w\\t#32767,%e0" + [(set_attr "cc" "clobber") + (set_attr "length" "4")]) + ;; ---------------------------------------------------------------------- ;; NOT INSTRUCTIONS ;; ---------------------------------------------------------------------- |

