[PATCH] sim: riscv: fix build breakage with rvv changes
Vineet Gupta
vineetg@rivosinc.com
Wed Nov 10 17:12:15 GMT 2021
Hi Andrew,
On 11/10/21 1:40 AM, Andrew Burgess wrote:
> * Vineet Gupta <vineetg@rivosinc.com> [2021-10-29 12:28:56 -0700]:
>
>> changes to gas for riscv vector extensions need to be propagated to sim
>> otherwise gdb fails to build on users/riscv/binutils-integration-branch
>>
>> This patch currently applies to that branch.
>>
>> Fixes: 144cceb058e "(RISC-V/rvv: Add rvv v0.10 instructions.)"
>> Reported-by: Dylan Reid <dylan@rivosinc.com>
>> Signed-off-by: Vineet Gupta <vineetg@rivosinc.com>
>> ---
>> sim/riscv/ChangeLog-2021 | 4 ++++
>> sim/riscv/sim-main.c | 3 ++-
>> 2 files changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/sim/riscv/ChangeLog-2021 b/sim/riscv/ChangeLog-2021
>> index e9aa74490f12..9ced6773bdd6 100644
>> --- a/sim/riscv/ChangeLog-2021
>> +++ b/sim/riscv/ChangeLog-2021
>> @@ -1,3 +1,7 @@
>> +2021-20-28 Vineet Gupta <vineetg@rivosinc.com>
>> +
>> + * sim-main.c (step_once): Fix match_func call per gas changes.
>> +
>> 2021-07-01 Mike Frysinger <vapier@gentoo.org>
>>
>> * configure: Regenerate.
>> diff --git a/sim/riscv/sim-main.c b/sim/riscv/sim-main.c
>> index 0faf9395ae52..9b4f7c6c5aad 100644
>> --- a/sim/riscv/sim-main.c
>> +++ b/sim/riscv/sim-main.c
>> @@ -956,6 +956,7 @@ void step_once (SIM_CPU *cpu)
>> sim_cia pc = cpu->pc;
>> const struct riscv_opcode *op;
>> int xlen = RISCV_XLEN (cpu);
>> + const char *error = NULL;
> Could this not be moved to the more inner scope?
Yep.
>
>>
>> if (TRACE_ANY_P (cpu))
>> trace_prefix (sd, cpu, NULL_CIA, pc, TRACE_LINENUM_P (cpu),
>> @@ -985,7 +986,7 @@ void step_once (SIM_CPU *cpu)
>> for (; op->name; op++)
>> {
>> /* Does the opcode match? */
>> - if (! op->match_func (op, iw))
>> + if (! op->match_func (op, iw, 0, /* check_constraints */ &error))
>> continue;
> I've not looked at exactly what the purpose of error is here, does it
> just provide a reason why this function returns false? i.e. is it
> always OK for us to ignore it like this? Maybe a comment explaining
> briefly why we ignore something called error would be helpful.
op->match_op is shared between gas and sim. It was updated as part of
some gas change (in the "Fixes" tag) but missed the corresponding change
in sim - all I'm doing here is propagate that - w/o needing any extra
semantics needed for gas change.
> Maybe this email wasn't really intended for me, but you only need
> approval from the branch owner before merging to a user branch, and
> that certainly isn't me in this case, so I can't approve this patch
> for the branch.
I thought so too :-) and mentioned this to Nelson at the time of
submission on binutils mailing list.
> I've added Nelson and Jim to the CC list as, along
> with Kito, they wrote the original patch.
>
> And, as this patch doesn't currently apply to master, I can't approve
> this patch for master either.
>
> I assume this fix will be merged into the original patch (commit
> 144cceb058e59977f in the user branch) before the work is officially
> posted for inclusion in upstream master.
Yeah indeed that was the idea.
Thx for taking a look.
-Vineet
More information about the Binutils
mailing list