Merge remote-tracking branch

'origin/GP-3449_ghizard_32-bit_Win_8-byte_type_alignment'

Conflicts:
	Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/DataOrganizationImpl.java
This commit is contained in:
Ryan Kurtz 2023-06-15 16:31:26 -04:00
commit da9a9ecb4e
4 changed files with 62 additions and 28 deletions

View file

@ -17,7 +17,7 @@ package ghidra.program.model.data;
/**
* <code>DataOrganizationTestUtils</code> provides various methods for modifying
* a DataOrganization to reflect a specific processor/compiler spec. This can be used
* a DataOrganization to reflect a specific processor/compiler spec. This can be used
* when only the DataOrganization is needed and not the Language/CompilerSpec.
*/
public class DataOrganizationTestUtils {
@ -57,6 +57,37 @@ public class DataOrganizationTestUtils {
dataOrg.setBitFieldPacking(bitFieldPacking);
}
/**
* Initialize data organization to reflect x86gcc.cspec specification
* @param dataOrg data organization
*/
public static void initDataOrganizationGcc32BitX86(DataOrganizationImpl dataOrg) {
dataOrg.setBigEndian(false);
dataOrg.setAbsoluteMaxAlignment(0);
dataOrg.setMachineAlignment(2);
dataOrg.setDefaultAlignment(1);
dataOrg.setDefaultPointerAlignment(4);
dataOrg.setPointerSize(4);
dataOrg.setWideCharSize(4);
dataOrg.setShortSize(2);
dataOrg.setIntegerSize(4);
dataOrg.setLongSize(4);
dataOrg.setLongLongSize(8);
dataOrg.setFloatSize(4);
dataOrg.setDoubleSize(8);
dataOrg.setLongDoubleSize(16);
dataOrg.setSizeAlignment(1, 1);
dataOrg.setSizeAlignment(2, 2);
dataOrg.setSizeAlignment(4, 4);
dataOrg.setSizeAlignment(8, 4);
dataOrg.setSizeAlignment(16, 16);
BitFieldPackingImpl bitFieldPacking = new BitFieldPackingImpl(); // use defaults
dataOrg.setBitFieldPacking(bitFieldPacking);
}
/**
* Initialize data organization to reflect x86-64-gcc.cspec specification
* @param dataOrg data organization
@ -82,6 +113,7 @@ public class DataOrganizationTestUtils {
dataOrg.setSizeAlignment(2, 2);
dataOrg.setSizeAlignment(4, 4);
dataOrg.setSizeAlignment(8, 8);
dataOrg.setSizeAlignment(16, 16);
BitFieldPackingImpl bitFieldPacking = new BitFieldPackingImpl(); // use defaults
dataOrg.setBitFieldPacking(bitFieldPacking);