byteman  1.3 (Build #225)
Bitstream relocation and manipulation tool
inlineAssembly.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2022 Kristiyan Manev (University of Manchester)
3  *
4  * Licensed under the Apache License, Version 2.0(the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *****************************************************************************/
16 
17 inline void assemblyOutputData(std::ifstream& fin, std::ofstream& fout, std::streamoff sizeInBytes)
18 {
19  std::streamoff numOfWords = sizeInBytes/(std::streamoff)4;
20  for(std::streamoff i = 0 ; i < numOfWords ; i++){
21  uint32_t aWord = FileIO::read32(fin, loadedBitstreamEndianness);
22  fout << ".word " << "0x" << std::uppercase << std::hex << std::setw(8) << std::setfill('0') << aWord << std::endl;
23  }
24  std::streamoff numOfBytes = sizeInBytes % (std::streamoff)4;
25  for(std::streamoff i = 0 ; i < numOfBytes ; i++){
26  uint8_t aByte = FileIO::read32(fin, loadedBitstreamEndianness);
27  fout << ".byte " << "0x" << std::uppercase << std::hex << std::setw(2) << std::setfill('0') << aByte << std::endl;
28  }
29 }
void assemblyOutputData(std::ifstream &fin, std::ofstream &fout, std::streamoff sizeInBytes)
uint32_t read32(std::ifstream &fin, Endianness e=Endianness::NATIVE)
Definition: FileIO.h:131