From cfb6f8fd01e19dbd0b3ce5cfa28d6f78f617e954 Mon Sep 17 00:00:00 2001 From: Erik Hallnor Date: Fri, 27 Feb 2004 02:40:43 -0500 Subject: [PATCH] Added copy instructions to the ISA. Well it didn't break anything yet... arch/alpha/isa_desc: Add copy_load and copy_store insts (ldf and stf respectively) cpu/simple_cpu/simple_cpu.hh: Add copy functions to SimpleCPU as well --HG-- extra : convert_revision : 1fa041da582b418c47d4eefc22dabba978a50e2d --- arch/alpha/isa_desc | 6 ++++++ cpu/simple_cpu/simple_cpu.hh | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/arch/alpha/isa_desc b/arch/alpha/isa_desc index 6a95b4e04..46fb306a4 100644 --- a/arch/alpha/isa_desc +++ b/arch/alpha/isa_desc @@ -1854,6 +1854,9 @@ decode OPCODE default Unknown::unknown() { 0x23: ldt({{ EA = Rb + disp; }}, {{ Fa = Mem.df; }}); 0x2a: ldl_l({{ EA = Rb + disp; }}, {{ Ra.sl = Mem.sl; }}, LOCKED); 0x2b: ldq_l({{ EA = Rb + disp; }}, {{ Ra.uq = Mem.uq; }}, LOCKED); + 0x20: copy_load({{EA = Ra;}}, + {{memAccessObj->copySrcTranslate(EA);}}, + IsMemRef, IsLoad, IsCopy); } format LoadOrPrefetch { @@ -1873,6 +1876,9 @@ decode OPCODE default Unknown::unknown() { 0x0f: stq_u({{ EA = (Rb + disp) & ~7; }}, {{ Mem.uq = Ra.uq; }}); 0x26: sts({{ EA = Rb + disp; }}, {{ Mem.ul = t_to_s(Fa.uq); }}); 0x27: stt({{ EA = Rb + disp; }}, {{ Mem.df = Fa; }}); + 0x24: copy_store({{EA = Rb;}}, + {{memAccessObj->copy(EA);}}, + IsMemRef, IsStore, IsCopy); } format StoreCond { diff --git a/cpu/simple_cpu/simple_cpu.hh b/cpu/simple_cpu/simple_cpu.hh index 2b881509c..4bdc69ad1 100644 --- a/cpu/simple_cpu/simple_cpu.hh +++ b/cpu/simple_cpu/simple_cpu.hh @@ -246,6 +246,17 @@ class SimpleCPU : public BaseCPU { // need to do this... } + + void copySrcTranslate(Addr src) + { + panic("Haven't implemented Copy Src translate yet in SimpleCPU\n"); + } + + void copy(Addr dest) + { + panic("Haven't implemented Copy yet in SimpleCPU\n"); + } + }; #endif // __SIMPLE_CPU_HH__ -- 2.30.2