diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2006-10-23 07:55:52 -0400 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2006-10-23 07:55:52 -0400 |
commit | 20208d00e6566a7946e589184a7ed9dffb54fc74 (patch) | |
tree | 77764410222fd4f064360a8fa624675121d9f40f /src/arch/sparc/isa/decoder.isa | |
parent | e9908e3c854e534a391448907773ca03c60b13c8 (diff) | |
download | gem5-20208d00e6566a7946e589184a7ed9dffb54fc74.tar.xz |
Broke Load/Store instructions into microcode, and partially refactored memory operations in the SPARC ISA description.
--HG--
rename : src/arch/sparc/isa/formats.isa => src/arch/sparc/isa/formats/formats.isa
rename : src/arch/sparc/isa/formats/mem.isa => src/arch/sparc/isa/formats/mem/basicmem.isa
rename : src/arch/sparc/isa/formats/blockmem.isa => src/arch/sparc/isa/formats/mem/blockmem.isa
rename : src/arch/sparc/isa/formats/mem.isa => src/arch/sparc/isa/formats/mem/mem.isa
extra : convert_revision : dbbb00f997a102871b084b209b9fa08c5e1853ee
Diffstat (limited to 'src/arch/sparc/isa/decoder.isa')
-rw-r--r-- | src/arch/sparc/isa/decoder.isa | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/arch/sparc/isa/decoder.isa b/src/arch/sparc/isa/decoder.isa index 9da6bdd33..45d3616d9 100644 --- a/src/arch/sparc/isa/decoder.isa +++ b/src/arch/sparc/isa/decoder.isa @@ -846,11 +846,10 @@ decode OP default Unknown::unknown() }}); } 0x0E: Store::stx({{Mem.udw = Rd}}); - 0x0F: LoadStore::swap({{ - uint32_t temp = Rd; - Rd = Mem.uw; - Mem.uw = temp; - }}); + 0x0F: LoadStore::swap( + {{*temp = Rd.uw; + Rd.uw = Mem.uw;}}, + {{Mem.uw = *temp;}}); format Load { 0x10: lduwa({{Rd = Mem.uw;}}); 0x11: lduba({{Rd = Mem.ub;}}); @@ -873,16 +872,14 @@ decode OP default Unknown::unknown() 0x1A: ldsha({{Rd = (int16_t)Mem.shw;}}); 0x1B: ldxa({{Rd = (int64_t)Mem.sdw;}}); } - 0x1D: LoadStore::ldstuba({{ - Rd = Mem.ub; - Mem.ub = 0xFF; - }}); + 0x1D: LoadStore::ldstuba( + {{Rd = Mem.ub;}}, + {{Mem.ub = 0xFF}}); 0x1E: Store::stxa({{Mem.udw = Rd}}); - 0x1F: LoadStore::swapa({{ - uint32_t temp = Rd; - Rd = Mem.uw; - Mem.uw = temp; - }}); + 0x1F: LoadStore::swapa( + {{*temp = Rd.uw; + Rd.uw = Mem.uw;}}, + {{Mem.uw = *temp;}}); format Trap { 0x20: Load::ldf({{Frd.uw = Mem.uw;}}); 0x21: decode X { |