From 292b8a3c9169fcf587dd81fb8072e7d451e16afe Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 2 Jun 2010 12:58:00 -0500 Subject: ARM: Add an operand for accessing the current PC. --- src/arch/arm/isa/operands.isa | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/arch/arm/isa/operands.isa') diff --git a/src/arch/arm/isa/operands.isa b/src/arch/arm/isa/operands.isa index a27f61228..fefe9d925 100644 --- a/src/arch/arm/isa/operands.isa +++ b/src/arch/arm/isa/operands.isa @@ -61,6 +61,9 @@ let {{ xc->%(func)s(this, %(op_idx)s, %(final_val)s)) ''' + readPC = 'xc->readPC() & ~PcModeMask' + writePC = 'setPC(xc, %(final_val)s)' + readNPC = 'xc->readNextPC() & ~PcModeMask' writeNPC = 'setNextPC(xc, %(final_val)s)' }}; @@ -101,6 +104,8 @@ def operands {{ 'Fpsid': ('ControlReg', 'uw', 'MISCREG_FPSID', None, 43), 'Fpscr': ('ControlReg', 'uw', 'MISCREG_FPSCR', None, 44), 'Fpexc': ('ControlReg', 'uw', 'MISCREG_FPEXC', None, 45), - 'NPC': ('NPC', 'ud', None, (None, None, 'IsControl'), 50, + 'PC': ('PC', 'ud', None, (None, None, 'IsControl'), 50, + readPC, writePC), + 'NPC': ('NPC', 'ud', None, (None, None, 'IsControl'), 51, readNPC, writeNPC), }}; -- cgit v1.2.3