Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
10670d47
Commit
10670d47
authored
May 17, 1994
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Don't use the extsd/extd instructions on the ns32532.
From-SVN: r7321
parent
6baa89b5
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
3 deletions
+20
-3
gcc/config/ns32k/ns32k.md
+20
-3
No files found.
gcc/config/ns32k/ns32k.md
View file @
10670d47
;;- Machine description for GNU compiler, ns32000 Version
;; Copyright (C) 1988, 1994 Free Software Foundation, Inc.
;; Contributed by Michael Tiemann (tiemann@
mcc
.com)
;; Contributed by Michael Tiemann (tiemann@
cygnus
.com)
;; This file is part of GNU CC.
...
...
@@ -1861,12 +1861,29 @@
return
\"
adjspb %$-4
\"
;
}")
;; The extsd/extd isntructions have the problem that they always access
;; 32 bits even if the bitfield is smaller. For example the instruction
;; extsd 7(r1),r0,2,5
;; would read not only at address 7(r1) but also at 8(r1) to 10(r1).
;; If these addresses are in a different (unmapped) page a memory fault
;; is the result.
;;
;; Timing considerations:
;; movd 0(r1),r0 3 bytes
;; lshd -26,r0 4
;; andd 0x1f,r0 5
;; takes about 13 cycles on the 532 while
;; extsd 7(r1),r0,2,5 5 bytes
;; takes about 21 cycles.
;;
;; So lets forget about extsd/extd on the 532.
(define_insn ""
[
(set (match_operand:SI 0 "general_operand" "=g<")
(zero_extract:SI (match_operand:SI 1 "register_operand" "g")
(match_operand:SI 2 "const_int_operand" "i")
(match_operand:SI 3 "general_operand" "rK")))]
""
"
! TARGET_32532
"
"
*
{ if (GET_CODE (operands
[
3
]
) == CONST_INT)
return
\"
extsd %1,%0,%3,%2
\"
;
...
...
@@ -1878,7 +1895,7 @@
(zero_extract:SI (match_operand:QI 1 "general_operand" "g")
(match_operand:SI 2 "const_int_operand" "i")
(match_operand:SI 3 "general_operand" "rK")))]
""
"
! TARGET_32532
"
"
*
{ if (GET_CODE (operands
[
3
]
) == CONST_INT)
return
\"
extsd %1,%0,%3,%2
\"
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment