You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The 'C' extension and its subsets have complex relations, depending on
the implemented floating point extensions.
They are the expansions related in this context:
'C' == 'Zca'
'C' + 'F' == 'Zca' + 'Zcf' + 'F' (RV32)
'C' + 'F' == 'Zca' + 'F' (RV64)
'C' + 'F' + 'D' == 'Zca' + 'Zcf' + 'Zcd' + 'F' + 'D' (RV32)
'C' + 'F' + 'D' == 'Zca' + 'Zcd' + 'F' + 'D' (RV64)
[they exclude dependencies from 'F' and 'D']
This commit implements those implications.
Note that some test cases are modified to reflect new compressed
instruction extensions:
1. Test cases that use ".option arch, -c" to turn off RVC
(at least the 'Zca' extension must be also turned off).
2. Test cases that test RISC-V attributes and/or mapping symbols
when the 'C' extension is enabled.
bfd/ChangeLog:
* elfxx-riscv.c (check_implicit_for_d_c): New.
(check_implicit_for_f_c): New.
(riscv_implicit_subsets): Add unconditional implication,
'C' -> 'Zca'. Add conditional implications, 'D' -> 'Zcd'
and 'F' -> 'Zcf'.
gas/ChangeLog:
* testsuite/gas/riscv/march-imply-c.d: Test implied
extensions from 'C' alone.
* testsuite/gas/riscv/march-imply-c-d-32.d: New to test implied
extensions from 'C' and 'D' on RV32.
* testsuite/gas/riscv/march-imply-c-d-64.d: New to test implied
extensions from 'C' and 'D' on RV64.
* testsuite/gas/riscv/attribute-10.d: Reflect reorganization of
compressed instruction extensions.
* testsuite/gas/riscv/dis-addr-overflow-32.d: Likewise.
* testsuite/gas/riscv/dis-addr-overflow-64.d: Likewise.
* testsuite/gas/riscv/dis-addr-overflow.s: Likewise.
* testsuite/gas/riscv/mapping-symbols.d: Likewise.
* testsuite/gas/riscv/mapping.s: Likewise.
* testsuite/gas/riscv/march-ok-reorder.d: Likewise.
* testsuite/gas/riscv/option-arch-01.s: Likewise.
* testsuite/gas/riscv/option-arch-01b.d: Likewise.
* testsuite/gas/riscv/option-arch-02.d: Likewise.
* testsuite/gas/riscv/option-arch-02.s: Likewise.
* testsuite/gas/riscv/option-arch-03.d: Likewise.
* testsuite/gas/riscv/option-arch-03.s: Likewise.
0 commit comments