mirror of https://github.com/yasm/yasm.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
346 lines
5.9 KiB
346 lines
5.9 KiB
struc PPC_CPU_State |
|
dummy: |
|
gpr: |
|
fpr: |
|
cr: |
|
fpscr: |
|
xer: |
|
xer_ca: |
|
lr: |
|
ctr: |
|
|
|
msr: |
|
pvr: |
|
|
|
ibatu: |
|
ibatl: |
|
ibat_bl17: |
|
|
|
dbatu: |
|
dbatl: |
|
dbat_bl17: |
|
|
|
sdr1: |
|
|
|
sr: |
|
|
|
dar: |
|
dsisr: |
|
sprg: |
|
srr0: |
|
srr1: |
|
|
|
decr: |
|
ear: |
|
pir: |
|
tb: |
|
|
|
hid: |
|
|
|
pc: |
|
npc: |
|
current_opc: |
|
|
|
exception_pending: |
|
dec_exception: |
|
ext_exception: |
|
stop_exception: |
|
singlestep_ignore: |
|
align1: |
|
align2: |
|
align3: |
|
|
|
pagetable_base: |
|
pagetable_hashmask: |
|
reserve: |
|
have_reservation: |
|
|
|
tlb_last: |
|
tlb_pa: |
|
tlb_va: |
|
|
|
effective_code_page: |
|
physical_code_page: |
|
pdec: |
|
ptb: |
|
|
|
temp: |
|
temp2: |
|
x87cw: |
|
pc_ofs: |
|
current_code_base: |
|
endstruc |
|
|
|
struc JITC |
|
clientPages |
|
|
|
tlb_code_0_eff |
|
tlb_data_0_eff |
|
tlb_data_8_eff |
|
tlb_code_0_phys |
|
tlb_data_0_phys |
|
tlb_data_8_phys |
|
tlb_code_0_hits |
|
tlb_data_0_hits |
|
tlb_data_8_hits |
|
tlb_code_0_misses |
|
tlb_data_0_misses |
|
tlb_data_8_misses |
|
|
|
nativeReg |
|
|
|
nativeRegState |
|
|
|
nativeFlags |
|
|
|
nativeFlagsState |
|
nativeCarryState |
|
|
|
clientReg |
|
|
|
nativeRegsList |
|
|
|
LRUreg |
|
MRUreg |
|
|
|
LRUpage |
|
MRUpage |
|
|
|
freeFragmentsList |
|
|
|
freeClientPages |
|
|
|
translationCache |
|
endstruc |
|
|
|
extern gCPU, gJITC, gMemory, gMemorySize, |
|
extern jitc_error, ppc_isi_exception_asm, ppc_dsi_exception_asm |
|
extern jitcDestroyAndFreeClientPage |
|
extern io_mem_read_glue |
|
extern io_mem_write_glue |
|
extern io_mem_read64_glue |
|
extern io_mem_write64_glue |
|
extern io_mem_read128_glue |
|
extern io_mem_write128_glue |
|
extern io_mem_read128_native_glue |
|
extern io_mem_write128_native_glue |
|
global ppc_effective_to_physical_code, ppc_effective_to_physical_data |
|
global ppc_write_effective_byte_asm |
|
global ppc_write_effective_half_asm |
|
global ppc_write_effective_word_asm |
|
global ppc_write_effective_dword_asm |
|
global ppc_write_effective_qword_asm |
|
global ppc_write_effective_qword_sse_asm |
|
global ppc_read_effective_byte_asm |
|
global ppc_read_effective_half_z_asm |
|
global ppc_read_effective_half_s_asm |
|
global ppc_read_effective_word_asm |
|
global ppc_read_effective_dword_asm |
|
global ppc_read_effective_qword_asm |
|
global ppc_read_effective_qword_sse_asm |
|
global ppc_mmu_tlb_invalidate_all_asm |
|
global ppc_mmu_tlb_invalidate_entry_asm |
|
global ppc_opc_lswi_asm |
|
global ppc_opc_stswi_asm |
|
global ppc_opc_icbi_asm |
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
;; |
|
ppc_mmu_tlb_invalidate_all_asm: |
|
mov edi, gJITC+tlb_code_0_eff |
|
|
|
ppc_mmu_tlb_invalidate_entry_asm: |
|
|
|
ppc_pte_protection: |
|
|
|
%macro bat_lookup 4 |
|
%%npr: |
|
%%ok: |
|
%%bat_lookup_failed: |
|
%endmacro |
|
|
|
%macro pg_table_lookup 3 |
|
%%invalid: |
|
%endmacro |
|
|
|
protection_fault_0_code: |
|
protection_fault_0_data: |
|
protection_fault_8_data: |
|
|
|
%macro tlb_lookup 2 |
|
%%tlb_lookup_failed: |
|
%endmacro |
|
|
|
ppc_effective_to_physical_code_ret: |
|
ppc_effective_to_physical_code: |
|
tlb_lookup 0, code |
|
|
|
bat_lookup i, 0, 0, code |
|
bat_lookup i, 1, 0, code |
|
bat_lookup i, 2, 0, code |
|
bat_lookup i, 3, 0, code |
|
|
|
pg_table_lookup 0, 0, code |
|
pg_table_lookup 0, 0, code |
|
pg_table_lookup 0, 0, code |
|
pg_table_lookup 0, 0, code |
|
pg_table_lookup 0, 0, code |
|
pg_table_lookup 0, 0, code |
|
pg_table_lookup 0, 0, code |
|
pg_table_lookup 0, 0, code |
|
|
|
pg_table_lookup (1<<6), 0, code |
|
pg_table_lookup (1<<6), 0, code |
|
pg_table_lookup (1<<6), 0, code |
|
pg_table_lookup (1<<6), 0, code |
|
pg_table_lookup (1<<6), 0, code |
|
pg_table_lookup (1<<6), 0, code |
|
pg_table_lookup (1<<6), 0, code |
|
pg_table_lookup (1<<6), 0, code |
|
|
|
.noexec: |
|
ppc_effective_to_physical_data_read_ret: |
|
ppc_effective_to_physical_data_read: |
|
tlb_lookup 0, data |
|
|
|
bat_lookup d, 0, 0, data |
|
bat_lookup d, 1, 0, data |
|
bat_lookup d, 2, 0, data |
|
bat_lookup d, 3, 0, data |
|
|
|
pg_table_lookup 0, 0, data |
|
pg_table_lookup 0, 0, data |
|
pg_table_lookup 0, 0, data |
|
pg_table_lookup 0, 0, data |
|
pg_table_lookup 0, 0, data |
|
pg_table_lookup 0, 0, data |
|
pg_table_lookup 0, 0, data |
|
pg_table_lookup 0, 0, data |
|
|
|
pg_table_lookup (1<<6), 0, data |
|
pg_table_lookup (1<<6), 0, data |
|
pg_table_lookup (1<<6), 0, data |
|
pg_table_lookup (1<<6), 0, data |
|
pg_table_lookup (1<<6), 0, data |
|
pg_table_lookup (1<<6), 0, data |
|
pg_table_lookup (1<<6), 0, data |
|
pg_table_lookup (1<<6), 0, data |
|
|
|
ppc_effective_to_physical_data_write_ret: |
|
ppc_effective_to_physical_data_write: |
|
tlb_lookup 8, data |
|
|
|
bat_lookup d, 0, 8, data |
|
bat_lookup d, 1, 8, data |
|
bat_lookup d, 2, 8, data |
|
bat_lookup d, 3, 8, data |
|
|
|
pg_table_lookup 0, 8, data |
|
pg_table_lookup 0, 8, data |
|
pg_table_lookup 0, 8, data |
|
pg_table_lookup 0, 8, data |
|
pg_table_lookup 0, 8, data |
|
pg_table_lookup 0, 8, data |
|
pg_table_lookup 0, 8, data |
|
pg_table_lookup 0, 8, data |
|
|
|
pg_table_lookup (1<<6), 8, data |
|
pg_table_lookup (1<<6), 8, data |
|
pg_table_lookup (1<<6), 8, data |
|
pg_table_lookup (1<<6), 8, data |
|
pg_table_lookup (1<<6), 8, data |
|
pg_table_lookup (1<<6), 8, data |
|
pg_table_lookup (1<<6), 8, data |
|
pg_table_lookup (1<<6), 8, data |
|
|
|
ppc_write_effective_byte_asm: |
|
.mmio: |
|
ppc_write_effective_half_asm: |
|
.mmio: |
|
.overlap: |
|
.overlapped_mmio_1_back: |
|
.overlapped_mmio_1: |
|
.overlapped_mmio_2: |
|
ppc_write_effective_word_asm: |
|
.mmio: |
|
.overlap: |
|
.loop1: |
|
.overlapped_mmio_1_back: |
|
.loop2: |
|
.overlapped_mmio_1: |
|
.overlapped_mmio_1_loop: |
|
.overlapped_mmio_2: |
|
.overlapped_mmio_2_loop: |
|
ppc_write_effective_dword_asm: |
|
.mmio: |
|
|
|
.overlap: |
|
.loop1: |
|
.overlapped_mmio_1_back: |
|
.loop2: |
|
.overlapped_mmio_1: |
|
.overlapped_mmio_1_loop: |
|
.overlapped_mmio_2: |
|
.overlapped_mmio_2_loop: |
|
ppc_write_effective_qword_asm: |
|
.mmio: |
|
|
|
ppc_write_effective_qword_sse_asm: |
|
.mmio: |
|
ppc_read_effective_byte_asm: |
|
.mmio: |
|
ppc_read_effective_half_z_asm: |
|
.mmio: |
|
.overlap: |
|
.loop1: |
|
.mmio1: |
|
.mmio2: |
|
ppc_read_effective_half_s_asm: |
|
.mmio: |
|
.overlap: |
|
.loop1: |
|
|
|
.mmio1: |
|
.mmio2: |
|
ppc_read_effective_word_asm: |
|
.mmio: |
|
.overlap: |
|
.loop1: |
|
.overlapped_mmio_1_back: |
|
.loop2: |
|
|
|
.overlapped_mmio_1: |
|
.overlapped_mmio_1_loop: |
|
.overlapped_mmio_2: |
|
.overlapped_mmio_2_loop: |
|
ppc_read_effective_dword_asm: |
|
.mmio: |
|
.overlap: |
|
.loop1: |
|
.overlapped_mmio_1_back: |
|
.loop2: |
|
|
|
.overlapped_mmio_1: |
|
.overlapped_mmio_1_loop: |
|
.overlapped_mmio_2: |
|
.overlapped_mmio_2_loop: |
|
ppc_read_effective_qword_asm: |
|
.mmio: |
|
|
|
ppc_read_effective_qword_sse_asm: |
|
.mmio: |
|
ppc_opc_stswi_asm: |
|
.loop: |
|
.ok1: |
|
.back: |
|
.mmio: |
|
ppc_opc_lswi_asm: |
|
.loop: |
|
.ok1: |
|
.back: |
|
.loop2: |
|
.ret: |
|
.mmio: |
|
ppc_opc_icbi_asm: |
|
.destroy: |
|
.ok:
|
|
|