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
{{ message }}
Repository navigation
ArmPattern: remaining load/store forms (signed byte/halfword, exclusive, acquire/release) #8
The new parse_load_store<op, scale, unscaled> in ArmPattern.hpp makes most of these one table row each.
LDRSB/LDRSH and LDURSB/LDURSH: opc is 10 for an X destination and 11 for W, so bit 22 comes from Rt (like bit 30 does for LDR). Needs a small tweak to parse_load_store.
LDPSW, LDNP/STNP.
Exclusive and acquire/release: LDXR/STXR/LDAXR/STLXR (+ B/H forms), LDAR/STLR, LDAPR.
LDXR/STXR/LDAXR/STLXR/LDAR/STLR/LDAPR with their B/H forms, and LDXP/STXP/LDAXP/STLXP: size comes from Rt (not from Ws or Xn).
LSE: CAS, SWP, LD<op>, ST<op> for ADD/CLR/EOR/SET/SMAX/SMIN/UMAX/UMIN with every A/L/AL and B/H suffix, read from the mnemonic (parse_atomic) rather than ~130 table rows. The mnemonic buffer grew to 15 characters for LDSMAXALB.
Activity
scizzydo commentedon Oct 12, 2026
Addressed in #12:
LDRSB/LDRSHandLDURSB/LDURSH:parse_load_storegained asign_extendflag; bit 22 comes from Rt (W 1, X 0) and?leaves it open.LDPSW(X only),LDNP/STNP(signed offset only; pre/post-index gives mask 0), viaparse_ldp<opc, no_allocate>.LDXR/STXR/LDAXR/STLXR/LDAR/STLR/LDAPRwith their B/H forms, andLDXP/STXP/LDAXP/STLXP: size comes from Rt (not from Ws or Xn).CAS,SWP,LD<op>,ST<op>for ADD/CLR/EOR/SET/SMAX/SMIN/UMAX/UMIN with everyA/L/ALandB/Hsuffix, read from the mnemonic (parse_atomic) rather than ~130 table rows. The mnemonic buffer grew to 15 characters forLDSMAXALB.🤖 Generated with Claude Code