Lines Matching refs:addressSpace
102 static bool findFDE(A &addressSpace, pint_t pc, pint_t ehSectionStart,
105 static const char *decodeFDE(A &addressSpace, pint_t fdeStart,
107 static bool parseFDEInstructions(A &addressSpace, const FDE_Info &fdeInfo,
111 static const char *parseCIE(A &addressSpace, pint_t cie, CIE_Info *cieInfo);
114 static bool parseInstructions(A &addressSpace, pint_t instructions,
123 const char *CFI_Parser<A>::decodeFDE(A &addressSpace, pint_t fdeStart, in decodeFDE() argument
126 pint_t cfiLength = (pint_t)addressSpace.get32(p); in decodeFDE()
130 cfiLength = (pint_t)addressSpace.get64(p); in decodeFDE()
135 uint32_t ciePointer = addressSpace.get32(p); in decodeFDE()
140 const char *err = parseCIE(addressSpace, cieStart, cieInfo); in decodeFDE()
146 addressSpace.getEncodedP(p, nextCFI, cieInfo->pointerEncoding); in decodeFDE()
148 addressSpace.getEncodedP(p, nextCFI, cieInfo->pointerEncoding & 0x0F); in decodeFDE()
153 pint_t augLen = (pint_t)addressSpace.getULEB128(p, nextCFI); in decodeFDE()
158 if (addressSpace.getEncodedP(p, nextCFI, cieInfo->lsdaEncoding & 0x0F) != in decodeFDE()
163 addressSpace.getEncodedP(p, nextCFI, cieInfo->lsdaEncoding); in decodeFDE()
178 bool CFI_Parser<A>::findFDE(A &addressSpace, pint_t pc, pint_t ehSectionStart, in findFDE() argument
187 pint_t cfiLength = addressSpace.get32(p); in findFDE()
191 cfiLength = (pint_t)addressSpace.get64(p); in findFDE()
196 uint32_t id = addressSpace.get32(p); in findFDE()
203 uint32_t ciePointer = addressSpace.get32(p); in findFDE()
207 if (parseCIE(addressSpace, cieStart, cieInfo) == NULL) { in findFDE()
211 addressSpace.getEncodedP(p, nextCFI, cieInfo->pointerEncoding); in findFDE()
212 pint_t pcRange = addressSpace.getEncodedP( in findFDE()
220 pint_t augLen = (pint_t)addressSpace.getULEB128(p, nextCFI); in findFDE()
225 if (addressSpace.getEncodedP( in findFDE()
229 fdeInfo->lsda = addressSpace in findFDE()
258 const char *CFI_Parser<A>::parseCIE(A &addressSpace, pint_t cie, in parseCIE() argument
274 pint_t cieLength = (pint_t)addressSpace.get32(p); in parseCIE()
279 cieLength = (pint_t)addressSpace.get64(p); in parseCIE()
286 if (addressSpace.get32(p) != 0) in parseCIE()
290 uint8_t version = addressSpace.get8(p); in parseCIE()
296 while (addressSpace.get8(p) != 0) in parseCIE()
300 cieInfo->codeAlignFactor = (uint32_t)addressSpace.getULEB128(p, cieContentEnd); in parseCIE()
302 cieInfo->dataAlignFactor = (int)addressSpace.getSLEB128(p, cieContentEnd); in parseCIE()
304 uint64_t raReg = addressSpace.getULEB128(p, cieContentEnd); in parseCIE()
309 if (addressSpace.get8(strStart) == 'z') { in parseCIE()
311 addressSpace.getULEB128(p, cieContentEnd); in parseCIE()
312 for (pint_t s = strStart; addressSpace.get8(s) != '\0'; ++s) { in parseCIE()
313 switch (addressSpace.get8(s)) { in parseCIE()
318 cieInfo->personalityEncoding = addressSpace.get8(p); in parseCIE()
321 cieInfo->personality = addressSpace in parseCIE()
325 cieInfo->lsdaEncoding = addressSpace.get8(p); in parseCIE()
329 cieInfo->pointerEncoding = addressSpace.get8(p); in parseCIE()
354 bool CFI_Parser<A>::parseFDEInstructions(A &addressSpace, in parseFDEInstructions() argument
363 return parseInstructions(addressSpace, cieInfo.cieInstructions, in parseFDEInstructions()
366 parseInstructions(addressSpace, fdeInfo.fdeInstructions, in parseFDEInstructions()
374 bool CFI_Parser<A>::parseInstructions(A &addressSpace, pint_t instructions, in parseInstructions() argument
392 uint8_t opcode = addressSpace.get8(p); in parseInstructions()
404 addressSpace.getEncodedP(p, instructionsEnd, cieInfo.pointerEncoding); in parseInstructions()
408 codeOffset += (addressSpace.get8(p) * cieInfo.codeAlignFactor); in parseInstructions()
414 codeOffset += (addressSpace.get16(p) * cieInfo.codeAlignFactor); in parseInstructions()
420 codeOffset += (addressSpace.get32(p) * cieInfo.codeAlignFactor); in parseInstructions()
426 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
427 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()
441 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
451 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
461 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
477 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
478 reg2 = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
522 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
523 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
534 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
545 addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
553 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
561 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
569 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
578 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
585 addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor; in parseInstructions()
593 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
595 addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor; in parseInstructions()
609 (addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor); in parseInstructions()
615 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
623 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()
632 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
639 addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor; in parseInstructions()
647 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
655 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
663 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
668 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
674 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()
729 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()