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
85ab4aaa
Commit
85ab4aaa
authored
28 years ago
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(expand_builtin, case BUILT_IN_{SET,LONG}JMP): Properly handle case
when ptr_mode != Pmode. From-SVN: r12294
parent
9cc96794
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
12 deletions
+19
-12
gcc/expr.c
+19
-12
No files found.
gcc/expr.c
View file @
85ab4aaa
...
...
@@ -8676,13 +8676,8 @@ expand_builtin (exp, target, subtarget, mode, ignore)
break
;
{
rtx
buf_addr
=
force_reg
(
Pmode
,
convert_modes
(
Pmode
,
ptr_mode
,
expand_expr
(
TREE_VALUE
(
arglist
),
subtarget
,
VOIDmode
,
0
),
1
));
rtx
buf_addr
=
expand_expr
(
TREE_VALUE
(
arglist
),
subtarget
,
VOIDmode
,
0
);
rtx
lab1
=
gen_label_rtx
(),
lab2
=
gen_label_rtx
();
enum
machine_mode
sa_mode
=
Pmode
;
rtx
stack_save
;
...
...
@@ -8693,6 +8688,12 @@ expand_builtin (exp, target, subtarget, mode, ignore)
CUMULATIVE_ARGS
args_so_far
;
int
i
;
#ifdef POINTERS_EXTEND_UNSIGNED
buf_addr
=
convert_memory_address
(
Pmode
,
buf_addr
);
#endif
buf_addr
=
force_reg
(
Pmode
,
buf_addr
);
if
(
target
==
0
||
GET_CODE
(
target
)
!=
REG
||
REGNO
(
target
)
<
FIRST_PSEUDO_REGISTER
)
target
=
gen_reg_rtx
(
value_mode
);
...
...
@@ -8827,13 +8828,19 @@ expand_builtin (exp, target, subtarget, mode, ignore)
tree
dummy_id
=
get_identifier
(
"__dummy"
);
tree
dummy_type
=
build_function_type
(
void_type_node
,
NULL_TREE
);
tree
dummy_decl
=
build_decl
(
FUNCTION_DECL
,
dummy_id
,
dummy_type
);
#ifdef POINTERS_EXTEND_UNSIGNED
rtx
buf_addr
=
force_reg
(
Pmode
,
convert_modes
(
Pmode
,
ptr_mode
,
expand_expr
(
TREE_VALUE
(
arglist
),
NULL_RTX
,
VOIDmode
,
0
),
1
));
convert_memory_address
(
Pmode
,
expand_expr
(
TREE_VALUE
(
arglist
),
NULL_RTX
,
VOIDmode
,
0
)));
#else
rtx
buf_addr
=
force_reg
(
Pmode
,
expand_expr
(
TREE_VALUE
(
arglist
),
NULL_RTX
,
VOIDmode
,
0
));
#endif
rtx
fp
=
gen_rtx
(
MEM
,
Pmode
,
buf_addr
);
rtx
lab
=
gen_rtx
(
MEM
,
Pmode
,
plus_constant
(
buf_addr
,
GET_MODE_SIZE
(
Pmode
)));
...
...
This diff is collapsed.
Click to expand it.
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