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
382 uint8_t opcode = addressSpace.get8(p); in parseInstructions()
393 addressSpace.getEncodedP(p, instructionsEnd, cieInfo.pointerEncoding); in parseInstructions()
398 codeOffset += (addressSpace.get8(p) * cieInfo.codeAlignFactor); in parseInstructions()
405 codeOffset += (addressSpace.get16(p) * cieInfo.codeAlignFactor); in parseInstructions()
412 codeOffset += (addressSpace.get32(p) * cieInfo.codeAlignFactor); in parseInstructions()
419 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
420 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()
434 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
447 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
458 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
475 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
476 reg2 = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
520 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
521 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
532 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
545 addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
554 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
562 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
570 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
578 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
586 addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor; in parseInstructions()
594 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
596 addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor; in parseInstructions()
610 (addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor); in parseInstructions()
617 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
618 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()
627 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
634 addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor; in parseInstructions()
642 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
650 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
659 length = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
665 reg = addressSpace.getULEB128(p, instructionsEnd); in parseInstructions()
671 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()
683 offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd) in parseInstructions()