decoder.isa (3826:e35adf01a285) | decoder.isa (3835:97b3b03865fb) |
---|---|
1// Copyright (c) 2006 The Regents of The University of Michigan 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions are 6// met: redistributions of source code must retain the above copyright 7// notice, this list of conditions and the following disclaimer; 8// redistributions in binary form must reproduce the above copyright --- 1016 unchanged lines hidden (view full) --- 1025 } 1026 } 1027 } 1028 0x3: decode OP3 { 1029 format Load { 1030 0x00: lduw({{Rd = Mem.uw;}}); 1031 0x01: ldub({{Rd = Mem.ub;}}); 1032 0x02: lduh({{Rd = Mem.uhw;}}); | 1// Copyright (c) 2006 The Regents of The University of Michigan 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions are 6// met: redistributions of source code must retain the above copyright 7// notice, this list of conditions and the following disclaimer; 8// redistributions in binary form must reproduce the above copyright --- 1016 unchanged lines hidden (view full) --- 1025 } 1026 } 1027 } 1028 0x3: decode OP3 { 1029 format Load { 1030 0x00: lduw({{Rd = Mem.uw;}}); 1031 0x01: ldub({{Rd = Mem.ub;}}); 1032 0x02: lduh({{Rd = Mem.uhw;}}); |
1033 0x03: ldd({{ | 1033 0x03: ldtw({{ |
1034 uint64_t val = Mem.udw; 1035 RdLow = val<31:0>; 1036 RdHigh = val<63:32>; 1037 }}); 1038 } 1039 format Store { 1040 0x04: stw({{Mem.uw = Rd.sw;}}); 1041 0x05: stb({{Mem.ub = Rd.sb;}}); 1042 0x06: sth({{Mem.uhw = Rd.shw;}}); | 1034 uint64_t val = Mem.udw; 1035 RdLow = val<31:0>; 1036 RdHigh = val<63:32>; 1037 }}); 1038 } 1039 format Store { 1040 0x04: stw({{Mem.uw = Rd.sw;}}); 1041 0x05: stb({{Mem.ub = Rd.sb;}}); 1042 0x06: sth({{Mem.uhw = Rd.shw;}}); |
1043 0x07: std({{Mem.udw = RdLow<31:0> | (RdHigh<31:0> << 32);}}); | 1043 0x07: sttw({{Mem.udw = RdLow<31:0> | (RdHigh<31:0> << 32);}}); |
1044 } 1045 format Load { 1046 0x08: ldsw({{Rd = (int32_t)Mem.sw;}}); 1047 0x09: ldsb({{Rd = (int8_t)Mem.sb;}}); 1048 0x0A: ldsh({{Rd = (int16_t)Mem.shw;}}); 1049 0x0B: ldx({{Rd = (int64_t)Mem.sdw;}}); 1050 } 1051 0x0D: LoadStore::ldstub( 1052 {{Rd = Mem.ub;}}, 1053 {{Mem.ub = 0xFF;}}); 1054 0x0E: Store::stx({{Mem.udw = Rd}}); 1055 0x0F: LoadStore::swap( 1056 {{uReg0 = Rd.uw; 1057 Rd.uw = Mem.uw;}}, 1058 {{Mem.uw = uReg0;}}); 1059 format LoadAlt { 1060 0x10: lduwa({{Rd = Mem.uw;}}, {{EXT_ASI}}); 1061 0x11: lduba({{Rd = Mem.ub;}}, {{EXT_ASI}}); 1062 0x12: lduha({{Rd = Mem.uhw;}}, {{EXT_ASI}}); | 1044 } 1045 format Load { 1046 0x08: ldsw({{Rd = (int32_t)Mem.sw;}}); 1047 0x09: ldsb({{Rd = (int8_t)Mem.sb;}}); 1048 0x0A: ldsh({{Rd = (int16_t)Mem.shw;}}); 1049 0x0B: ldx({{Rd = (int64_t)Mem.sdw;}}); 1050 } 1051 0x0D: LoadStore::ldstub( 1052 {{Rd = Mem.ub;}}, 1053 {{Mem.ub = 0xFF;}}); 1054 0x0E: Store::stx({{Mem.udw = Rd}}); 1055 0x0F: LoadStore::swap( 1056 {{uReg0 = Rd.uw; 1057 Rd.uw = Mem.uw;}}, 1058 {{Mem.uw = uReg0;}}); 1059 format LoadAlt { 1060 0x10: lduwa({{Rd = Mem.uw;}}, {{EXT_ASI}}); 1061 0x11: lduba({{Rd = Mem.ub;}}, {{EXT_ASI}}); 1062 0x12: lduha({{Rd = Mem.uhw;}}, {{EXT_ASI}}); |
1063 0x13: ldda({{ | 1063 0x13: ldtwa({{ |
1064 uint64_t val = Mem.udw; 1065 RdLow = val<31:0>; 1066 RdHigh = val<63:32>; 1067 }}, {{EXT_ASI}}); 1068 } 1069 format StoreAlt { 1070 0x14: stwa({{Mem.uw = Rd;}}, {{EXT_ASI}}); 1071 0x15: stba({{Mem.ub = Rd;}}, {{EXT_ASI}}); 1072 0x16: stha({{Mem.uhw = Rd;}}, {{EXT_ASI}}); | 1064 uint64_t val = Mem.udw; 1065 RdLow = val<31:0>; 1066 RdHigh = val<63:32>; 1067 }}, {{EXT_ASI}}); 1068 } 1069 format StoreAlt { 1070 0x14: stwa({{Mem.uw = Rd;}}, {{EXT_ASI}}); 1071 0x15: stba({{Mem.ub = Rd;}}, {{EXT_ASI}}); 1072 0x16: stha({{Mem.uhw = Rd;}}, {{EXT_ASI}}); |
1073 0x17: stda({{Mem.udw = RdLow<31:0> | RdHigh<31:0> << 32;}}, {{EXT_ASI}}); | 1073 0x17: sttwa({{Mem.udw = RdLow<31:0> | RdHigh<31:0> << 32;}}, {{EXT_ASI}}); |
1074 } 1075 format LoadAlt { 1076 0x18: ldswa({{Rd = (int32_t)Mem.sw;}}, {{EXT_ASI}}); 1077 0x19: ldsba({{Rd = (int8_t)Mem.sb;}}, {{EXT_ASI}}); 1078 0x1A: ldsha({{Rd = (int16_t)Mem.shw;}}, {{EXT_ASI}}); 1079 0x1B: ldxa({{Rd = (int64_t)Mem.sdw;}}, {{EXT_ASI}}); 1080 } 1081 0x1D: LoadStoreAlt::ldstuba( --- 207 unchanged lines hidden --- | 1074 } 1075 format LoadAlt { 1076 0x18: ldswa({{Rd = (int32_t)Mem.sw;}}, {{EXT_ASI}}); 1077 0x19: ldsba({{Rd = (int8_t)Mem.sb;}}, {{EXT_ASI}}); 1078 0x1A: ldsha({{Rd = (int16_t)Mem.shw;}}, {{EXT_ASI}}); 1079 0x1B: ldxa({{Rd = (int64_t)Mem.sdw;}}, {{EXT_ASI}}); 1080 } 1081 0x1D: LoadStoreAlt::ldstuba( --- 207 unchanged lines hidden --- |