Lines Matching full:xn

78   // Given Xn register, returns n.
79 static unsigned indexOfXReg(Register Xn);
80 // Given n, returns Xn register.
95 bool get(ThunkKind::ThunkKindId Kind, Register Xn, Register Xm) { in get() argument
96 reg_bitmask_t XnBit = reg_bitmask_t(1) << indexOfXReg(Xn); in get()
100 void set(ThunkKind::ThunkKindId Kind, Register Xn, Register Xm) { in set() argument
101 reg_bitmask_t XnBit = reg_bitmask_t(1) << indexOfXReg(Xn); in set()
108 "Bitmask is not wide enough to hold all Xn registers");
110 // Bitmasks representing operands used, with n-th bit corresponding to Xn
203 // Most Xn registers have consecutive ids, except for FP and XZR. in indexOfXReg()
279 static SmallString<32> createThunkName(const ThunkKind &Kind, Register Xn, in createThunkName() argument
281 unsigned N = ThunksSet::indexOfXReg(Xn); in createThunkName()
307 assert(Name.starts_with("x") && "xN register name expected"); in parseThunkName()
321 Register Xn = ParseRegName(XnStr); in parseThunkName() local
324 return std::make_tuple(std::ref(Kind), Xn, Xm); in parseThunkName()
330 Register Xn, Xm; in populateThunk() local
333 std::tie(std::ignore, Xn, Xm) = KindAndRegs; in populateThunk()
356 // MOV x16, xN ; BR* instructions are not compatible with "BTI c" in populateThunk()
357 // ; branch target unless xN is x16 or x17. in populateThunk()
362 Entry->addLiveIn(Xn); in populateThunk()
366 .addReg(Xn) in populateThunk()
393 // | BLR* xN or BLR* xN, xM | in convertBLRToBL()
409 // | MOV x16, xN | in convertBLRToBL()
429 Register Xn = BLR.getOperand(0).getReg(); in convertBLRToBL() local
439 auto ThunkName = createThunkName(Kind, Xn, Xm); in convertBLRToBL()
442 if (!Thunks.get(Kind.Id, Xn, Xm)) { in convertBLRToBL()
444 Thunks.set(Kind.Id, Xn, Xm); in convertBLRToBL()