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
4adf63f9
Commit
4adf63f9
authored
May 23, 2014
by
Eric Botcazou
Committed by
Eric Botcazou
May 23, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
From-SVN: r210856
parent
0aadce73
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
14 deletions
+20
-14
gcc/ChangeLog
+4
-0
gcc/varasm.c
+16
-14
No files found.
gcc/ChangeLog
View file @
4adf63f9
2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
* varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
* gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
* gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
...
...
gcc/varasm.c
View file @
4adf63f9
...
@@ -5082,18 +5082,21 @@ output_constructor_bitfield (oc_local_state *local, unsigned int bit_offset)
...
@@ -5082,18 +5082,21 @@ output_constructor_bitfield (oc_local_state *local, unsigned int bit_offset)
this_time
=
MIN
(
end_offset
-
next_offset
,
BITS_PER_UNIT
-
next_bit
);
this_time
=
MIN
(
end_offset
-
next_offset
,
BITS_PER_UNIT
-
next_bit
);
if
(
BYTES_BIG_ENDIAN
)
if
(
BYTES_BIG_ENDIAN
)
{
{
/* On big-endian machine, take the most significant bits
/* On big-endian machine, take the most significant bits
(of the
first (of the bits that are significant)
bits that are significant) first and put them into bytes from
and put them into bytes from
the most significant end. */
the most significant end. */
shift
=
end_offset
-
next_offset
-
this_time
;
shift
=
end_offset
-
next_offset
-
this_time
;
/* Don't try to take a bunch of bits that cross
/* Don't try to take a bunch of bits that cross
the word boundary in the INTEGER_CST. We can
the word boundary in the INTEGER_CST. We can
only select bits from the LOW or HIGH part
only select bits from one element. */
not from both. */
if
((
shift
/
HOST_BITS_PER_WIDE_INT
)
if
((
shift
/
HOST_BITS_PER_WIDE_INT
)
!=
((
shift
+
this_time
)
/
HOST_BITS_PER_WIDE_INT
))
!=
((
shift
+
this_time
-
1
)
/
HOST_BITS_PER_WIDE_INT
))
this_time
=
(
shift
+
this_time
)
&
(
HOST_BITS_PER_WIDE_INT
-
1
);
{
const
int
end
=
shift
+
this_time
-
1
;
shift
=
end
&
-
HOST_BITS_PER_WIDE_INT
;
this_time
=
end
-
shift
+
1
;
}
/* Now get the bits from the appropriate constant word. */
/* Now get the bits from the appropriate constant word. */
value
=
TREE_INT_CST_ELT
(
local
->
val
,
shift
/
HOST_BITS_PER_WIDE_INT
);
value
=
TREE_INT_CST_ELT
(
local
->
val
,
shift
/
HOST_BITS_PER_WIDE_INT
);
...
@@ -5107,19 +5110,18 @@ output_constructor_bitfield (oc_local_state *local, unsigned int bit_offset)
...
@@ -5107,19 +5110,18 @@ output_constructor_bitfield (oc_local_state *local, unsigned int bit_offset)
}
}
else
else
{
{
/* On little-endian machines,
/* On little-endian machines, take the least significant bits of
take first the least significant bits of the value
the value first and pack them starting at the least significant
and pack them starting at the least significant
bits of the bytes. */
bits of the bytes. */
shift
=
next_offset
-
byte_relative_ebitpos
;
shift
=
next_offset
-
byte_relative_ebitpos
;
/* Don't try to take a bunch of bits that cross
/* Don't try to take a bunch of bits that cross
the word boundary in the INTEGER_CST. We can
the word boundary in the INTEGER_CST. We can
only select bits from the LOW or HIGH part
only select bits from one element. */
not from both. */
if
((
shift
/
HOST_BITS_PER_WIDE_INT
)
if
((
shift
/
HOST_BITS_PER_WIDE_INT
)
!=
((
shift
+
this_time
)
/
HOST_BITS_PER_WIDE_INT
))
!=
((
shift
+
this_time
-
1
)
/
HOST_BITS_PER_WIDE_INT
))
this_time
=
(
HOST_BITS_PER_WIDE_INT
-
shift
);
this_time
=
HOST_BITS_PER_WIDE_INT
-
(
shift
&
(
HOST_BITS_PER_WIDE_INT
-
1
));
/* Now get the bits from the appropriate constant word. */
/* Now get the bits from the appropriate constant word. */
value
=
TREE_INT_CST_ELT
(
local
->
val
,
shift
/
HOST_BITS_PER_WIDE_INT
);
value
=
TREE_INT_CST_ELT
(
local
->
val
,
shift
/
HOST_BITS_PER_WIDE_INT
);
...
...
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