Created
November 18, 2018 01:03
-
-
Save classilla/8be32569cb2418691e2d9a9bbd6fe65b to your computer and use it in GitHub Desktop.
Fix for hqemu-2.5.2 to build full system emulation on ppc64le.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- a/tcg/ppc/tcg.target.c 2018-11-17 14:51:38.523121046 -0800 | |
+++ b/tcg/ppc/tcg-target.c 2018-11-17 17:00:01.991427542 -0800 | |
@@ -1372,16 +1372,37 @@ | |
[MO_LEUW] = helper_le_stw_mmu, | |
[MO_LEUL] = helper_le_stl_mmu, | |
[MO_LEQ] = helper_le_stq_mmu, | |
[MO_BEUW] = helper_be_stw_mmu, | |
[MO_BEUL] = helper_be_stl_mmu, | |
[MO_BEQ] = helper_be_stq_mmu, | |
}; | |
+/* helpers for LLVM */ | |
+void * const llvm_ld_helpers[16] = { | |
+ [MO_UB] = llvm_ret_ldub_mmu, | |
+ [MO_LEUW] = llvm_le_lduw_mmu, | |
+ [MO_LEUL] = llvm_le_ldul_mmu, | |
+ [MO_LEQ] = llvm_le_ldq_mmu, | |
+ [MO_BEUW] = llvm_be_lduw_mmu, | |
+ [MO_BEUL] = llvm_be_ldul_mmu, | |
+ [MO_BEQ] = llvm_be_ldq_mmu, | |
+}; | |
+ | |
+void * const llvm_st_helpers[16] = { | |
+ [MO_UB] = llvm_ret_stb_mmu, | |
+ [MO_LEUW] = llvm_le_stw_mmu, | |
+ [MO_LEUL] = llvm_le_stl_mmu, | |
+ [MO_LEQ] = llvm_le_stq_mmu, | |
+ [MO_BEUW] = llvm_be_stw_mmu, | |
+ [MO_BEUL] = llvm_be_stl_mmu, | |
+ [MO_BEQ] = llvm_be_stq_mmu, | |
+}; | |
+ | |
/* Perform the TLB load and compare. Places the result of the comparison | |
in CR7, loads the addend of the TLB into R3, and returns the register | |
containing the guest address (zero-extended into R4). Clobbers R0 and R2. * | |
/ | |
static TCGReg tcg_out_tlb_read(TCGContext *s, TCGMemOp opc, | |
TCGReg addrlo, TCGReg addrhi, | |
int mem_index, bool is_read) | |
{ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment