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
b864825e
Commit
b864825e
authored
Jul 30, 2000
by
Michael Hayes
Committed by
Michael Hayes
Jul 30, 2000
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
From-SVN: r35338
parent
b61ba1ef
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
7 deletions
+23
-7
gcc/ChangeLog
+5
-1
gcc/config/c4x/c4x.c
+18
-6
No files found.
gcc/ChangeLog
View file @
b864825e
2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
...
...
gcc/config/c4x/c4x.c
View file @
b864825e
...
...
@@ -2214,6 +2214,7 @@ c4x_rptb_insert (insn)
{
rtx
end_label
;
rtx
start_label
;
rtx
new_start_label
;
rtx
count_reg
;
/* If the count register has not been allocated to RC, say if
...
...
@@ -2227,21 +2228,32 @@ c4x_rptb_insert (insn)
/* Extract the start label from the jump pattern (rptb_end). */
start_label
=
XEXP
(
XEXP
(
SET_SRC
(
XVECEXP
(
PATTERN
(
insn
),
0
,
0
)),
1
),
0
);
/* We'll have to update the basic blocks. */
end_label
=
gen_label_rtx
();
LABEL_NUSES
(
end_label
)
++
;
emit_label_after
(
end_label
,
insn
);
new_start_label
=
gen_label_rtx
();
LABEL_NUSES
(
new_start_label
)
++
;
for
(;
insn
;
insn
=
PREV_INSN
(
insn
))
if
(
insn
==
start_label
)
break
;
{
if
(
insn
==
start_label
)
break
;
if
(
GET_CODE
(
insn
)
==
JUMP_INSN
&&
JUMP_LABEL
(
insn
)
==
start_label
)
redirect_jump
(
insn
,
new_start_label
,
0
);
}
if
(
!
insn
)
fatal_insn
(
"c4x_rptb_insert: Cannot find start label"
,
start_label
);
/* We'll have to update the basic blocks. */
emit_label_after
(
new_start_label
,
insn
);
if
(
TARGET_RPTS
&&
c4x_rptb_rpts_p
(
PREV_INSN
(
insn
),
0
))
emit_insn_
before
(
gen_rpts_top
(
start_label
,
end_label
),
insn
);
emit_insn_
after
(
gen_rpts_top
(
new_
start_label
,
end_label
),
insn
);
else
emit_insn_before
(
gen_rptb_top
(
start_label
,
end_label
),
insn
);
emit_insn_after
(
gen_rptb_top
(
new_start_label
,
end_label
),
insn
);
if
(
LABEL_NUSES
(
start_label
)
==
0
)
delete_insn
(
start_label
);
}
...
...
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