RISC-V: THEAD: Fix improper immediate value for MODIFY_DISP instruction on 32-bit systems.
When using '%ld' to print 'long long int' variable, 'fprintf' will produce messy output on a 32-bit system, in an incorrect instruction being generated, such as 'th.lwib a1,(a0),-16,4294967295'. And the following error occurred during compilation: Assembler messages: Error: improper immediate value (18446744073709551615) gcc/ChangeLog: * config/riscv/thead.cc (th_print_operand_address): Change %ld to %lld.
This commit is contained in:
parent
a88e08feb8
commit
4ac00b7c80
1 changed files with 1 additions and 1 deletions
|
@ -1141,7 +1141,7 @@ th_print_operand_address (FILE *file, machine_mode mode, rtx x)
|
|||
return true;
|
||||
|
||||
case ADDRESS_REG_WB:
|
||||
fprintf (file, "(%s),%ld,%u", reg_names[REGNO (addr.reg)],
|
||||
fprintf (file, "(%s),"HOST_WIDE_INT_PRINT_DEC",%u", reg_names[REGNO (addr.reg)],
|
||||
INTVAL (addr.offset) >> addr.shift, addr.shift);
|
||||
return true;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue