public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] gas/symbols: do not panic upon resolving O_md
@ 2022-07-14 21:26 Dmitry Selyutin
  2022-07-15  4:50 ` Alan Modra
  2022-07-18  9:46 ` [PATCH] gas/symbols: introduce md_resolve_symbol Dmitry Selyutin
  0 siblings, 2 replies; 8+ messages in thread
From: Dmitry Selyutin @ 2022-07-14 21:26 UTC (permalink / raw)
  To: binutils; +Cc: Alan Modra, Luke Kenneth Casson Leighton, Dmitry Selyutin

Assuming GMSD is a special operand, marked as O_md1, the code:

    .set VREG, GMSD
    .set REG, VREG
    extsw REG, 2

...fails upon attempts to resolve the value of the symbol. This happens
since machine-dependent values are not handled in the giant op switch.

Machine-dependent expressions don't really need to be resolved, since
the resolving process is really machine-dependent. We could have marked
such symbols as resolving in port. However, we don't want to access
the field which seems to be internal, and we especially don't want
to perform this for each and every port.
---
 gas/symbols.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gas/symbols.c b/gas/symbols.c
index 6904a3102c..fd2117f7da 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -1408,6 +1408,16 @@ resolve_symbol_value (symbolS *symp)
 	  BAD_CASE (op);
 	  break;
 
+	case O_md1...O_md32:
+	  /* Machine-dependent expressions don't really need
+	   * to be resolved, since the resolving process is
+	   * really machine-dependent. We could have marked
+	   * such symbols as resolving in port. However, we
+	   * don't want to access the field which seems to be
+	   * internal, and we especially don't want to perform
+	   * this for each and every port. */
+	  break;
+
 	case O_absent:
 	  final_val = 0;
 	  /* Fall through.  */
-- 
2.37.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-07-20 13:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-14 21:26 [PATCH] gas/symbols: do not panic upon resolving O_md Dmitry Selyutin
2022-07-15  4:50 ` Alan Modra
2022-07-15  5:13   ` Dmitry Selyutin
2022-07-16  2:02     ` Alan Modra
2022-07-18  9:35       ` Dmitry Selyutin
2022-07-18  9:46 ` [PATCH] gas/symbols: introduce md_resolve_symbol Dmitry Selyutin
2022-07-20  3:06   ` Alan Modra
2022-07-20 13:21     ` Dmitry Selyutin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).