On some targets, all the user-visible registers are pseudo-registers. What we need is a gdbarch method (optional) that the tracepoint code could call, passing it a struct agent_expr and a pseudo-register number, to have the architecture code append the appropriate bytecodes to access that register.