Lines Matching refs:addressSpace
100 static bool findFDE(A &addressSpace, pint_t pc, pint_t ehSectionStart,
103 static const char *decodeFDE(A &addressSpace, pint_t fdeStart,
105 static bool parseFDEInstructions(A &addressSpace, const FDE_Info &fdeInfo,
109 static const char *parseCIE(A &addressSpace, pint_t cie, CIE_Info *cieInfo);
112 static bool parseInstructions(A &addressSpace, pint_t instructions,
121 const char *CFI_Parser<A>::decodeFDE(A &addressSpace, pint_t fdeStart, in decodeFDE() argument
124 pint_t cfiLength = (pint_t)addressSpace.get32(p); in decodeFDE()
128 cfiLength = (pint_t)addressSpace.get64(p); in decodeFDE()
133 uint32_t ciePointer = addressSpace.get32(p); in decodeFDE()
138 const char *err = parseCIE(addressSpace, cieStart, cieInfo); in decodeFDE()
144 addressSpace.getEncodedP(p, nextCFI, cieInfo->pointerEncoding); in decodeFDE()
146 addressSpace.getEncodedP(p, nextCFI, cieInfo->pointerEncoding & 0x0F); in decodeFDE()
151 pint_t augLen = (pint_t)addressSpace.getULEB128(p, nextCFI); in decodeFDE()
156 if (addressSpace.getEncodedP(p, nextCFI, cieInfo->lsdaEncoding & 0x0F) != in decodeFDE()
161 addressSpace.getEncodedP(p, nextCFI, cieInfo->lsdaEncoding); in decodeFDE()
176 bool CFI_Parser<A>::findFDE(A &addressSpace, pint_t pc, pint_t ehSectionStart, in findFDE() argument
185 pint_t cfiLength = addressSpace.get32(p); in findFDE()
189 cfiLength = (pint_t)addressSpace.get64(p); in findFDE()
194 uint32_t id = addressSpace.get32(p); in findFDE()
201 uint32_t ciePointer = addressSpace.get32(p); in findFDE()
205 if (parseCIE(addressSpace, cieStart, cieInfo) == NULL) { in findFDE()
209 addressSpace.getEncodedP(p, nextCFI, cieInfo->pointerEncoding); in findFDE()
210 pint_t pcRange = addressSpace.getEncodedP( in findFDE()
218 pint_t augLen = (pint_t)addressSpace.getULEB128(p, nextCFI); in findFDE()
223 if (addressSpace.getEncodedP( in findFDE()
227 fdeInfo->lsda = addressSpace in findFDE()
256 const char *CFI_Parser<A>::parseCIE(A &addressSpace, pint_t cie, in parseCIE() argument
269 pint_t cieLength = (pint_t)addressSpace.get32(p); in parseCIE()
274 cieLength = (pint_t)addressSpace.get64(p); in parseCIE()
281 if (addressSpace.get32(p) != 0) in parseCIE()
285 uint8_t version = addressSpace.get8(p); in parseCIE()
291 while (addressSpace.get8(p) != 0) in parseCIE()
295 cieInfo->codeAlignFactor = (uint32_t)addressSpace.getULEB128(p, cieContentEnd); in parseCIE()
297 cieInfo->dataAlignFactor = (int)addressSpace.getSLEB128(p, cieContentEnd); in parseCIE()
299 uint64_t raReg = addressSpace.getULEB128(p, cieContentEnd); in parseCIE()
304 if (addressSpace.get8(strStart) == 'z') { in parseCIE()
306 addressSpace.getULEB128(p, cieContentEnd); in parseCIE()
307 for (pint_t s = strStart; addressSpace.get8(s) != '\0'; ++s) { in parseCIE()
308 switch (addressSpace.get8(s)) { in parseCIE()
313 cieInfo->personalityEncoding = addressSpace.get8(p); in parseCIE()
316 cieInfo->personality = addressSpace in parseCIE()
320 cieInfo->lsdaEncoding = addressSpace.get8(p); in parseCIE()
324 cieInfo->pointerEncoding = addressSpace.get8(p); in parseCIE()
344 bool CFI_Parser<A>::parseFDEInstructions(A &addressSpace, in parseFDEInstructions() argument
353 return parseInstructions(addressSpace, cieInfo.cieInstructions, in parseFDEInstructions()
356 parseInstructions(addressSpace, fdeInfo.fdeInstructions, in parseFDEInstructions()
363 bool CFI_Parser<A>::parseInstructions(A &addressSpace, pint_t instructions, in parseInstructions() argument
381 uint8_t opcode = addressSpace.get8(p); in parseInstructions()
393 addressSpace.getEncodedP(p, instructionsEnd, cieInfo.pointerEncoding); in parseInstructions()
397 codeOffset += (addressSpace.get8(p) * cieInfo.codeAlignFactor); in parseInstructions()
403 codeOffset += (addressSpace.get16(p) * cieInfo.codeAlignFactor); in parseInstructions()
409 codeOffset += (addressSpace.get32(p) * cieInfo.codeAlignFactor); in parseInstructions()
415 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
416 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()
430 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
441 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
451 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
467 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
468 reg2 = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
512 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
513 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
524 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
536 addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
544 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
552 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
560 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
569 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
577 addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor; in parseInstructions()
585 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
587 addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor; in parseInstructions()
601 (addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor); in parseInstructions()
607 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
615 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()
624 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
631 addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor; in parseInstructions()
639 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
647 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
655 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
660 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
666 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()
684 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()