emit_arm64: Passthrough pagetable information
This commit is contained in:
parent
f69ae1c672
commit
f8d8618af1
3 changed files with 25 additions and 0 deletions
|
@ -276,6 +276,14 @@ EmitConfig A32AddressSpace::GetEmitConfig() {
|
||||||
.tpidrro_el0{},
|
.tpidrro_el0{},
|
||||||
.tpidr_el0{},
|
.tpidr_el0{},
|
||||||
|
|
||||||
|
.page_table_pointer = mcl::bit_cast<u64>(conf.page_table),
|
||||||
|
.page_table_address_space_bits = 32,
|
||||||
|
.page_table_pointer_mask_bits = conf.page_table_pointer_mask_bits,
|
||||||
|
.silently_mirror_page_table = true,
|
||||||
|
.absolute_offset_page_table = conf.absolute_offset_page_table,
|
||||||
|
.detect_misaligned_access_via_page_table = conf.detect_misaligned_access_via_page_table,
|
||||||
|
.only_detect_misalignment_via_page_table_on_page_boundary = conf.only_detect_misalignment_via_page_table_on_page_boundary,
|
||||||
|
|
||||||
.wall_clock_cntpct = conf.wall_clock_cntpct,
|
.wall_clock_cntpct = conf.wall_clock_cntpct,
|
||||||
.enable_cycle_counting = conf.enable_cycle_counting,
|
.enable_cycle_counting = conf.enable_cycle_counting,
|
||||||
|
|
||||||
|
|
|
@ -396,6 +396,14 @@ EmitConfig A64AddressSpace::GetEmitConfig() {
|
||||||
.tpidrro_el0 = conf.tpidrro_el0,
|
.tpidrro_el0 = conf.tpidrro_el0,
|
||||||
.tpidr_el0 = conf.tpidr_el0,
|
.tpidr_el0 = conf.tpidr_el0,
|
||||||
|
|
||||||
|
.page_table_pointer = mcl::bit_cast<u64>(conf.page_table),
|
||||||
|
.page_table_address_space_bits = conf.page_table_address_space_bits,
|
||||||
|
.page_table_pointer_mask_bits = conf.page_table_pointer_mask_bits,
|
||||||
|
.silently_mirror_page_table = conf.silently_mirror_page_table,
|
||||||
|
.absolute_offset_page_table = conf.absolute_offset_page_table,
|
||||||
|
.detect_misaligned_access_via_page_table = conf.detect_misaligned_access_via_page_table,
|
||||||
|
.only_detect_misalignment_via_page_table_on_page_boundary = conf.only_detect_misalignment_via_page_table_on_page_boundary,
|
||||||
|
|
||||||
.wall_clock_cntpct = conf.wall_clock_cntpct,
|
.wall_clock_cntpct = conf.wall_clock_cntpct,
|
||||||
.enable_cycle_counting = conf.enable_cycle_counting,
|
.enable_cycle_counting = conf.enable_cycle_counting,
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,15 @@ struct EmitConfig {
|
||||||
const u64* tpidrro_el0;
|
const u64* tpidrro_el0;
|
||||||
u64* tpidr_el0;
|
u64* tpidr_el0;
|
||||||
|
|
||||||
|
// Page table
|
||||||
|
u64 page_table_pointer;
|
||||||
|
size_t page_table_address_space_bits;
|
||||||
|
int page_table_pointer_mask_bits;
|
||||||
|
bool silently_mirror_page_table;
|
||||||
|
bool absolute_offset_page_table;
|
||||||
|
u8 detect_misaligned_access_via_page_table;
|
||||||
|
bool only_detect_misalignment_via_page_table_on_page_boundary;
|
||||||
|
|
||||||
// Timing
|
// Timing
|
||||||
bool wall_clock_cntpct;
|
bool wall_clock_cntpct;
|
||||||
bool enable_cycle_counting;
|
bool enable_cycle_counting;
|
||||||
|
|
Loading…
Reference in a new issue