Loading arch/ia64/include/asm/intrinsics.h +5 −1 Original line number Diff line number Diff line Loading @@ -202,7 +202,11 @@ extern long ia64_cmpxchg_called_with_bad_pointer (void); #ifndef __ASSEMBLY__ #if defined(CONFIG_PARAVIRT) && defined(__KERNEL__) #ifdef ASM_SUPPORTED # define IA64_INTRINSIC_API(name) paravirt_ ## name #else # define IA64_INTRINSIC_API(name) pv_cpu_ops.name #endif #define IA64_INTRINSIC_MACRO(name) paravirt_ ## name #else #define IA64_INTRINSIC_API(name) ia64_native_ ## name Loading arch/ia64/include/asm/module.h +6 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,12 @@ struct mod_arch_specific { struct elf64_shdr *got; /* global offset table */ struct elf64_shdr *opd; /* official procedure descriptors */ struct elf64_shdr *unwind; /* unwind-table section */ #ifdef CONFIG_PARAVIRT struct elf64_shdr *paravirt_bundles; /* paravirt_alt_bundle_patch table */ struct elf64_shdr *paravirt_insts; /* paravirt_alt_inst_patch table */ #endif unsigned long gp; /* global-pointer for module */ void *core_unw_table; /* core unwind-table cookie returned by unwinder */ Loading arch/ia64/include/asm/native/inst.h +13 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ #define __paravirt_work_processed_syscall_target \ ia64_work_processed_syscall #define paravirt_fsyscall_table ia64_native_fsyscall_table #define paravirt_fsys_bubble_down ia64_native_fsys_bubble_down #ifdef CONFIG_PARAVIRT_GUEST_ASM_CLOBBER_CHECK # define PARAVIRT_POISON 0xdeadbeefbaadf00d # define CLOBBER(clob) \ Loading Loading @@ -74,6 +77,11 @@ (pred) mov reg = psr \ CLOBBER(clob) #define MOV_FROM_ITC(pred, pred_clob, reg, clob) \ (pred) mov reg = ar.itc \ CLOBBER(clob) \ CLOBBER_PRED(pred_clob) #define MOV_TO_IFA(reg, clob) \ mov cr.ifa = reg \ CLOBBER(clob) Loading Loading @@ -158,6 +166,11 @@ #define RSM_PSR_DT \ rsm psr.dt #define RSM_PSR_BE_I(clob0, clob1) \ rsm psr.be | psr.i \ CLOBBER(clob0) \ CLOBBER(clob1) #define SSM_PSR_DT_AND_SRLZ_I \ ssm psr.dt \ ;; \ Loading arch/ia64/include/asm/native/patchlist.h 0 → 100644 +38 −0 Original line number Diff line number Diff line /****************************************************************************** * arch/ia64/include/asm/native/inst.h * * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> * VA Linux Systems Japan K.K. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #define __paravirt_start_gate_fsyscall_patchlist \ __ia64_native_start_gate_fsyscall_patchlist #define __paravirt_end_gate_fsyscall_patchlist \ __ia64_native_end_gate_fsyscall_patchlist #define __paravirt_start_gate_brl_fsys_bubble_down_patchlist \ __ia64_native_start_gate_brl_fsys_bubble_down_patchlist #define __paravirt_end_gate_brl_fsys_bubble_down_patchlist \ __ia64_native_end_gate_brl_fsys_bubble_down_patchlist #define __paravirt_start_gate_vtop_patchlist \ __ia64_native_start_gate_vtop_patchlist #define __paravirt_end_gate_vtop_patchlist \ __ia64_native_end_gate_vtop_patchlist #define __paravirt_start_gate_mckinley_e9_patchlist \ __ia64_native_start_gate_mckinley_e9_patchlist #define __paravirt_end_gate_mckinley_e9_patchlist \ __ia64_native_end_gate_mckinley_e9_patchlist arch/ia64/include/asm/native/pvchk_inst.h +8 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,11 @@ IS_PRED_IN(pred) \ IS_RREG_OUT(reg) \ IS_RREG_CLOB(clob) #define MOV_FROM_ITC(pred, pred_clob, reg, clob) \ IS_PRED_IN(pred) \ IS_PRED_CLOB(pred_clob) \ IS_RREG_OUT(reg) \ IS_RREG_CLOB(clob) #define MOV_TO_IFA(reg, clob) \ IS_RREG_IN(reg) \ IS_RREG_CLOB(clob) Loading Loading @@ -246,6 +251,9 @@ IS_RREG_CLOB(clob2) #define RSM_PSR_DT \ nop 0 #define RSM_PSR_BE_I(clob0, clob1) \ IS_RREG_CLOB(clob0) \ IS_RREG_CLOB(clob1) #define SSM_PSR_DT_AND_SRLZ_I \ nop 0 #define BSW_0(clob0, clob1, clob2) \ Loading Loading
arch/ia64/include/asm/intrinsics.h +5 −1 Original line number Diff line number Diff line Loading @@ -202,7 +202,11 @@ extern long ia64_cmpxchg_called_with_bad_pointer (void); #ifndef __ASSEMBLY__ #if defined(CONFIG_PARAVIRT) && defined(__KERNEL__) #ifdef ASM_SUPPORTED # define IA64_INTRINSIC_API(name) paravirt_ ## name #else # define IA64_INTRINSIC_API(name) pv_cpu_ops.name #endif #define IA64_INTRINSIC_MACRO(name) paravirt_ ## name #else #define IA64_INTRINSIC_API(name) ia64_native_ ## name Loading
arch/ia64/include/asm/module.h +6 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,12 @@ struct mod_arch_specific { struct elf64_shdr *got; /* global offset table */ struct elf64_shdr *opd; /* official procedure descriptors */ struct elf64_shdr *unwind; /* unwind-table section */ #ifdef CONFIG_PARAVIRT struct elf64_shdr *paravirt_bundles; /* paravirt_alt_bundle_patch table */ struct elf64_shdr *paravirt_insts; /* paravirt_alt_inst_patch table */ #endif unsigned long gp; /* global-pointer for module */ void *core_unw_table; /* core unwind-table cookie returned by unwinder */ Loading
arch/ia64/include/asm/native/inst.h +13 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ #define __paravirt_work_processed_syscall_target \ ia64_work_processed_syscall #define paravirt_fsyscall_table ia64_native_fsyscall_table #define paravirt_fsys_bubble_down ia64_native_fsys_bubble_down #ifdef CONFIG_PARAVIRT_GUEST_ASM_CLOBBER_CHECK # define PARAVIRT_POISON 0xdeadbeefbaadf00d # define CLOBBER(clob) \ Loading Loading @@ -74,6 +77,11 @@ (pred) mov reg = psr \ CLOBBER(clob) #define MOV_FROM_ITC(pred, pred_clob, reg, clob) \ (pred) mov reg = ar.itc \ CLOBBER(clob) \ CLOBBER_PRED(pred_clob) #define MOV_TO_IFA(reg, clob) \ mov cr.ifa = reg \ CLOBBER(clob) Loading Loading @@ -158,6 +166,11 @@ #define RSM_PSR_DT \ rsm psr.dt #define RSM_PSR_BE_I(clob0, clob1) \ rsm psr.be | psr.i \ CLOBBER(clob0) \ CLOBBER(clob1) #define SSM_PSR_DT_AND_SRLZ_I \ ssm psr.dt \ ;; \ Loading
arch/ia64/include/asm/native/patchlist.h 0 → 100644 +38 −0 Original line number Diff line number Diff line /****************************************************************************** * arch/ia64/include/asm/native/inst.h * * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> * VA Linux Systems Japan K.K. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #define __paravirt_start_gate_fsyscall_patchlist \ __ia64_native_start_gate_fsyscall_patchlist #define __paravirt_end_gate_fsyscall_patchlist \ __ia64_native_end_gate_fsyscall_patchlist #define __paravirt_start_gate_brl_fsys_bubble_down_patchlist \ __ia64_native_start_gate_brl_fsys_bubble_down_patchlist #define __paravirt_end_gate_brl_fsys_bubble_down_patchlist \ __ia64_native_end_gate_brl_fsys_bubble_down_patchlist #define __paravirt_start_gate_vtop_patchlist \ __ia64_native_start_gate_vtop_patchlist #define __paravirt_end_gate_vtop_patchlist \ __ia64_native_end_gate_vtop_patchlist #define __paravirt_start_gate_mckinley_e9_patchlist \ __ia64_native_start_gate_mckinley_e9_patchlist #define __paravirt_end_gate_mckinley_e9_patchlist \ __ia64_native_end_gate_mckinley_e9_patchlist
arch/ia64/include/asm/native/pvchk_inst.h +8 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,11 @@ IS_PRED_IN(pred) \ IS_RREG_OUT(reg) \ IS_RREG_CLOB(clob) #define MOV_FROM_ITC(pred, pred_clob, reg, clob) \ IS_PRED_IN(pred) \ IS_PRED_CLOB(pred_clob) \ IS_RREG_OUT(reg) \ IS_RREG_CLOB(clob) #define MOV_TO_IFA(reg, clob) \ IS_RREG_IN(reg) \ IS_RREG_CLOB(clob) Loading Loading @@ -246,6 +251,9 @@ IS_RREG_CLOB(clob2) #define RSM_PSR_DT \ nop 0 #define RSM_PSR_BE_I(clob0, clob1) \ IS_RREG_CLOB(clob0) \ IS_RREG_CLOB(clob1) #define SSM_PSR_DT_AND_SRLZ_I \ nop 0 #define BSW_0(clob0, clob1, clob2) \ Loading