ia64/pv_ops: paravirtualized instruction checker.
This patch implements a checker to detect instructions which should be paravirtualized instead of direct writing raw instruction. This patch does rough check so that it doesn't fully cover all cases, but it can detects most cases of paravirtualization breakage of hand written assembly codes. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:

committed by
Tony Luck

parent
98c99d7c27
commit
f8d1f99f39
32
arch/ia64/scripts/pvcheck.sed
Normal file
32
arch/ia64/scripts/pvcheck.sed
Normal file
@@ -0,0 +1,32 @@
|
||||
#
|
||||
# Checker for paravirtualizations of privileged operations.
|
||||
#
|
||||
s/ssm.*psr\.ic.*/.warning \"ssm psr.ic should not be used directly\"/g
|
||||
s/rsm.*psr\.ic.*/.warning \"rsm psr.ic should not be used directly\"/g
|
||||
s/ssm.*psr\.i.*/.warning \"ssm psr.i should not be used directly\"/g
|
||||
s/rsm.*psr\.i.*/.warning \"rsm psr.i should not be used directly\"/g
|
||||
s/ssm.*psr\.dt.*/.warning \"ssm psr.dt should not be used directly\"/g
|
||||
s/rsm.*psr\.dt.*/.warning \"rsm psr.dt should not be used directly\"/g
|
||||
s/mov.*=.*cr\.ifa/.warning \"cr.ifa should not used directly\"/g
|
||||
s/mov.*=.*cr\.itir/.warning \"cr.itir should not used directly\"/g
|
||||
s/mov.*=.*cr\.isr/.warning \"cr.isr should not used directly\"/g
|
||||
s/mov.*=.*cr\.iha/.warning \"cr.iha should not used directly\"/g
|
||||
s/mov.*=.*cr\.ipsr/.warning \"cr.ipsr should not used directly\"/g
|
||||
s/mov.*=.*cr\.iim/.warning \"cr.iim should not used directly\"/g
|
||||
s/mov.*=.*cr\.iip/.warning \"cr.iip should not used directly\"/g
|
||||
s/mov.*=.*cr\.ivr/.warning \"cr.ivr should not used directly\"/g
|
||||
s/mov.*=[^\.]*psr/.warning \"psr should not used directly\"/g # avoid ar.fpsr
|
||||
s/mov.*=.*ar\.eflags/.warning \"ar.eflags should not used directly\"/g
|
||||
s/mov.*cr\.ifa.*=.*/.warning \"cr.ifa should not used directly\"/g
|
||||
s/mov.*cr\.itir.*=.*/.warning \"cr.itir should not used directly\"/g
|
||||
s/mov.*cr\.iha.*=.*/.warning \"cr.iha should not used directly\"/g
|
||||
s/mov.*cr\.ipsr.*=.*/.warning \"cr.ipsr should not used directly\"/g
|
||||
s/mov.*cr\.ifs.*=.*/.warning \"cr.ifs should not used directly\"/g
|
||||
s/mov.*cr\.iip.*=.*/.warning \"cr.iip should not used directly\"/g
|
||||
s/mov.*cr\.kr.*=.*/.warning \"cr.kr should not used directly\"/g
|
||||
s/mov.*ar\.eflags.*=.*/.warning \"ar.eflags should not used directly\"/g
|
||||
s/itc\.i.*/.warning \"itc.i should not be used directly.\"/g
|
||||
s/itc\.d.*/.warning \"itc.d should not be used directly.\"/g
|
||||
s/bsw\.0/.warning \"bsw.0 should not be used directly.\"/g
|
||||
s/bsw\.1/.warning \"bsw.1 should not be used directly.\"/g
|
||||
s/ptc\.ga.*/.warning \"ptc.ga should not be used directly.\"/g
|
Reference in New Issue
Block a user