decoder.isa (3928:9486450f013f) | decoder.isa (3929:3640569369a5) |
---|---|
1// Copyright (c) 2006-2007 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 --- 172 unchanged lines hidden (view full) --- 181 0x07: xnor({{Rd = ~(Rs1.sdw ^ Rs2_or_imm13);}}); 182 0x08: addc({{Rd = Rs1.sdw + Rs2_or_imm13 + Ccr<0:0>;}}); 183 0x09: mulx({{Rd = Rs1.sdw * Rs2_or_imm13;}}); 184 0x0A: umul({{ 185 Rd = Rs1.udw<31:0> * Rs2_or_imm13<31:0>; 186 Y = Rd<63:32>; 187 }}); 188 0x0B: smul({{ | 1// Copyright (c) 2006-2007 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 --- 172 unchanged lines hidden (view full) --- 181 0x07: xnor({{Rd = ~(Rs1.sdw ^ Rs2_or_imm13);}}); 182 0x08: addc({{Rd = Rs1.sdw + Rs2_or_imm13 + Ccr<0:0>;}}); 183 0x09: mulx({{Rd = Rs1.sdw * Rs2_or_imm13;}}); 184 0x0A: umul({{ 185 Rd = Rs1.udw<31:0> * Rs2_or_imm13<31:0>; 186 Y = Rd<63:32>; 187 }}); 188 0x0B: smul({{ |
189 Rd.sdw = Rs1.sdw<31:0> * Rs2_or_imm13<31:0>; | 189 Rd.sdw = sext<32>(Rs1.sdw) * sext<32>(Rs2_or_imm13); |
190 Y = Rd.sdw<63:32>; 191 }}); 192 0x0C: subc({{Rd.sdw = Rs1.sdw + (~Rs2_or_imm13) + 1 - Ccr<0:0>}}); 193 0x0D: udivx({{ 194 if(Rs2_or_imm13 == 0) fault = new DivisionByZero; 195 else Rd.udw = Rs1.udw / Rs2_or_imm13; 196 }}); 197 0x0E: udiv({{ --- 6 unchanged lines hidden (view full) --- 204 } 205 }}); 206 0x0F: sdiv({{ 207 if(Rs2_or_imm13.sdw == 0) 208 fault = new DivisionByZero; 209 else 210 { 211 Rd.udw = ((int64_t)((Y << 32) | Rs1.sdw<31:0>)) / Rs2_or_imm13.sdw; | 190 Y = Rd.sdw<63:32>; 191 }}); 192 0x0C: subc({{Rd.sdw = Rs1.sdw + (~Rs2_or_imm13) + 1 - Ccr<0:0>}}); 193 0x0D: udivx({{ 194 if(Rs2_or_imm13 == 0) fault = new DivisionByZero; 195 else Rd.udw = Rs1.udw / Rs2_or_imm13; 196 }}); 197 0x0E: udiv({{ --- 6 unchanged lines hidden (view full) --- 204 } 205 }}); 206 0x0F: sdiv({{ 207 if(Rs2_or_imm13.sdw == 0) 208 fault = new DivisionByZero; 209 else 210 { 211 Rd.udw = ((int64_t)((Y << 32) | Rs1.sdw<31:0>)) / Rs2_or_imm13.sdw; |
212 if(Rd.udw<63:31> != 0) | 212 if((int64_t)Rd.udw >= std::numeric_limits<int32_t>::max()) |
213 Rd.udw = 0x7FFFFFFF; | 213 Rd.udw = 0x7FFFFFFF; |
214 else if(Rd.udw<63:> && Rd.udw<62:31> != 0xFFFFFFFF) 215 Rd.udw = 0xFFFFFFFF80000000ULL; | 214 else if((int64_t)Rd.udw <= std::numeric_limits<int32_t>::min()) 215 Rd.udw = ULL(0xFFFFFFFF80000000); |
216 } 217 }}); 218 } 219 format IntOpCc { 220 0x10: addcc({{ 221 int64_t resTemp, val2 = Rs2_or_imm13; 222 Rd = resTemp = Rs1 + val2;}}, 223 {{(Rs1<31:0> + val2<31:0>)<32:>}}, --- 28 unchanged lines hidden (view full) --- 252 ); 253 0x1A: umulcc({{ 254 uint64_t resTemp; 255 Rd = resTemp = Rs1.udw<31:0> * Rs2_or_imm13.udw<31:0>; 256 Y = resTemp<63:32>;}}, 257 {{0}},{{0}},{{0}},{{0}}); 258 0x1B: smulcc({{ 259 int64_t resTemp; | 216 } 217 }}); 218 } 219 format IntOpCc { 220 0x10: addcc({{ 221 int64_t resTemp, val2 = Rs2_or_imm13; 222 Rd = resTemp = Rs1 + val2;}}, 223 {{(Rs1<31:0> + val2<31:0>)<32:>}}, --- 28 unchanged lines hidden (view full) --- 252 ); 253 0x1A: umulcc({{ 254 uint64_t resTemp; 255 Rd = resTemp = Rs1.udw<31:0> * Rs2_or_imm13.udw<31:0>; 256 Y = resTemp<63:32>;}}, 257 {{0}},{{0}},{{0}},{{0}}); 258 0x1B: smulcc({{ 259 int64_t resTemp; |
260 Rd = resTemp = Rs1.sdw<31:0> * Rs2_or_imm13.sdw<31:0>; | 260 Rd = resTemp = sext<32>(Rs1.sdw) * sext<32>(Rs2_or_imm13); |
261 Y = resTemp<63:32>;}}, 262 {{0}},{{0}},{{0}},{{0}}); 263 0x1C: subccc({{ 264 int64_t resTemp, val2 = Rs2_or_imm13; 265 int64_t carryin = Ccr<0:0>; 266 Rd = resTemp = Rs1 + ~val2 + 1 - carryin;}}, 267 {{(~((Rs1<31:0> + (~(val2 + carryin))<31:0> + 1))<32:>)}}, 268 {{Rs1<31:> != val2<31:> && Rs1<31:> != resTemp<31:>}}, --- 22 unchanged lines hidden (view full) --- 291 ); 292 0x1F: sdivcc({{ 293 int64_t val2 = Rs2_or_imm13.sdw<31:0>; 294 bool overflow = false, underflow = false; 295 if(val2 == 0) fault = new DivisionByZero; 296 else 297 { 298 Rd = (int64_t)((Y << 32) | Rs1.sdw<31:0>) / val2; | 261 Y = resTemp<63:32>;}}, 262 {{0}},{{0}},{{0}},{{0}}); 263 0x1C: subccc({{ 264 int64_t resTemp, val2 = Rs2_or_imm13; 265 int64_t carryin = Ccr<0:0>; 266 Rd = resTemp = Rs1 + ~val2 + 1 - carryin;}}, 267 {{(~((Rs1<31:0> + (~(val2 + carryin))<31:0> + 1))<32:>)}}, 268 {{Rs1<31:> != val2<31:> && Rs1<31:> != resTemp<31:>}}, --- 22 unchanged lines hidden (view full) --- 291 ); 292 0x1F: sdivcc({{ 293 int64_t val2 = Rs2_or_imm13.sdw<31:0>; 294 bool overflow = false, underflow = false; 295 if(val2 == 0) fault = new DivisionByZero; 296 else 297 { 298 Rd = (int64_t)((Y << 32) | Rs1.sdw<31:0>) / val2; |
299 overflow = (Rd<63:31> != 0); 300 underflow = (Rd<63:> && Rd<62:31> != 0xFFFFFFFF); | 299 overflow = ((int64_t)Rd >= std::numeric_limits<int32_t>::max()); 300 underflow = ((int64_t)Rd <= std::numeric_limits<int32_t>::min()); |
301 if(overflow) Rd = 0x7FFFFFFF; | 301 if(overflow) Rd = 0x7FFFFFFF; |
302 else if(underflow) Rd = 0xFFFFFFFF80000000ULL; | 302 else if(underflow) Rd = ULL(0xFFFFFFFF80000000); |
303 } }}, 304 {{0}}, 305 {{overflow || underflow}}, 306 {{0}}, 307 {{0}} 308 ); 309 0x20: taddcc({{ 310 int64_t resTemp, val2 = Rs2_or_imm13; --- 60 unchanged lines hidden (view full) --- 371 0x0: srl({{Rd = Rs1.uw >> (I ? SHCNT32 : Rs2<4:0>);}}); 372 0x1: srlx({{Rd = Rs1.udw >> (I ? SHCNT64 : Rs2<5:0>);}}); 373 } 374 0x27: decode X { 375 0x0: sra({{Rd = Rs1.sw >> (I ? SHCNT32 : Rs2<4:0>);}}); 376 0x1: srax({{Rd = Rs1.sdw >> (I ? SHCNT64 : Rs2<5:0>);}}); 377 } 378 0x28: decode RS1 { | 303 } }}, 304 {{0}}, 305 {{overflow || underflow}}, 306 {{0}}, 307 {{0}} 308 ); 309 0x20: taddcc({{ 310 int64_t resTemp, val2 = Rs2_or_imm13; --- 60 unchanged lines hidden (view full) --- 371 0x0: srl({{Rd = Rs1.uw >> (I ? SHCNT32 : Rs2<4:0>);}}); 372 0x1: srlx({{Rd = Rs1.udw >> (I ? SHCNT64 : Rs2<5:0>);}}); 373 } 374 0x27: decode X { 375 0x0: sra({{Rd = Rs1.sw >> (I ? SHCNT32 : Rs2<4:0>);}}); 376 0x1: srax({{Rd = Rs1.sdw >> (I ? SHCNT64 : Rs2<5:0>);}}); 377 } 378 0x28: decode RS1 { |
379 0x00: NoPriv::rdy({{Rd = Y;}}); | 379 0x00: NoPriv::rdy({{Rd = Y<31:0>;}}); |
380 //1 should cause an illegal instruction exception 381 0x02: NoPriv::rdccr({{Rd = Ccr;}}); 382 0x03: NoPriv::rdasi({{Rd = Asi;}}); 383 0x04: PrivCheck::rdtick({{Rd = Tick;}}, {{Tick<63:>}}); 384 0x05: NoPriv::rdpc({{ 385 if(Pstate<3:>) 386 Rd = (xc->readPC())<31:0>; 387 else --- 133 unchanged lines hidden (view full) --- 521 0x1: movreq({{Rd = (Rs1.sdw == 0) ? Rs2_or_imm10 : Rd;}}); 522 0x2: movrle({{Rd = (Rs1.sdw <= 0) ? Rs2_or_imm10 : Rd;}}); 523 0x3: movrl({{Rd = (Rs1.sdw < 0) ? Rs2_or_imm10 : Rd;}}); 524 0x5: movrne({{Rd = (Rs1.sdw != 0) ? Rs2_or_imm10 : Rd;}}); 525 0x6: movrg({{Rd = (Rs1.sdw > 0) ? Rs2_or_imm10 : Rd;}}); 526 0x7: movrge({{Rd = (Rs1.sdw >= 0) ? Rs2_or_imm10 : Rd;}}); 527 } 528 0x30: decode RD { | 380 //1 should cause an illegal instruction exception 381 0x02: NoPriv::rdccr({{Rd = Ccr;}}); 382 0x03: NoPriv::rdasi({{Rd = Asi;}}); 383 0x04: PrivCheck::rdtick({{Rd = Tick;}}, {{Tick<63:>}}); 384 0x05: NoPriv::rdpc({{ 385 if(Pstate<3:>) 386 Rd = (xc->readPC())<31:0>; 387 else --- 133 unchanged lines hidden (view full) --- 521 0x1: movreq({{Rd = (Rs1.sdw == 0) ? Rs2_or_imm10 : Rd;}}); 522 0x2: movrle({{Rd = (Rs1.sdw <= 0) ? Rs2_or_imm10 : Rd;}}); 523 0x3: movrl({{Rd = (Rs1.sdw < 0) ? Rs2_or_imm10 : Rd;}}); 524 0x5: movrne({{Rd = (Rs1.sdw != 0) ? Rs2_or_imm10 : Rd;}}); 525 0x6: movrg({{Rd = (Rs1.sdw > 0) ? Rs2_or_imm10 : Rd;}}); 526 0x7: movrge({{Rd = (Rs1.sdw >= 0) ? Rs2_or_imm10 : Rd;}}); 527 } 528 0x30: decode RD { |
529 0x00: NoPriv::wry({{Y = Rs1 ^ Rs2_or_imm13;}}); | 529 0x00: NoPriv::wry({{Y = (Rs1 ^ Rs2_or_imm13)<31:0>;}}); |
530 //0x01 should cause an illegal instruction exception 531 0x02: NoPriv::wrccr({{Ccr = Rs1 ^ Rs2_or_imm13;}}); 532 0x03: NoPriv::wrasi({{Asi = Rs1 ^ Rs2_or_imm13;}}); 533 //0x04-0x05 should cause an illegal instruction exception 534 0x06: NoPriv::wrfprs({{Fprs = Rs1 ^ Rs2_or_imm13;}}); 535 //0x07-0x0E should cause an illegal instruction exception 536 0x0F: Trap::softreset({{fault = new SoftwareInitiatedReset;}}); 537 0x10: Priv::wrpcr({{Pcr = Rs1 ^ Rs2_or_imm13;}}); --- 339 unchanged lines hidden (view full) --- 877 0x37: Trap::impdep2({{fault = new IllegalInstruction;}}); 878 0x38: Branch::jmpl({{ 879 Addr target = Rs1 + Rs2_or_imm13; 880 if(target & 0x3) 881 fault = new MemAddressNotAligned; 882 else 883 { 884 if (Pstate<3:>) | 530 //0x01 should cause an illegal instruction exception 531 0x02: NoPriv::wrccr({{Ccr = Rs1 ^ Rs2_or_imm13;}}); 532 0x03: NoPriv::wrasi({{Asi = Rs1 ^ Rs2_or_imm13;}}); 533 //0x04-0x05 should cause an illegal instruction exception 534 0x06: NoPriv::wrfprs({{Fprs = Rs1 ^ Rs2_or_imm13;}}); 535 //0x07-0x0E should cause an illegal instruction exception 536 0x0F: Trap::softreset({{fault = new SoftwareInitiatedReset;}}); 537 0x10: Priv::wrpcr({{Pcr = Rs1 ^ Rs2_or_imm13;}}); --- 339 unchanged lines hidden (view full) --- 877 0x37: Trap::impdep2({{fault = new IllegalInstruction;}}); 878 0x38: Branch::jmpl({{ 879 Addr target = Rs1 + Rs2_or_imm13; 880 if(target & 0x3) 881 fault = new MemAddressNotAligned; 882 else 883 { 884 if (Pstate<3:>) |
885 (Rd = xc->readPC())<31:0>; | 885 Rd = (xc->readPC())<31:0>; |
886 else 887 Rd = xc->readPC(); 888 NNPC = target; 889 } 890 }}); 891 0x39: Branch::return({{ 892 //If both MemAddressNotAligned and 893 //a fill trap happen, it's not clear --- 159 unchanged lines hidden (view full) --- 1053 } 1054 format Load { 1055 0x08: ldsw({{Rd = (int32_t)Mem.sw;}}); 1056 0x09: ldsb({{Rd = (int8_t)Mem.sb;}}); 1057 0x0A: ldsh({{Rd = (int16_t)Mem.shw;}}); 1058 0x0B: ldx({{Rd = (int64_t)Mem.sdw;}}); 1059 } 1060 0x0D: LoadStore::ldstub( | 886 else 887 Rd = xc->readPC(); 888 NNPC = target; 889 } 890 }}); 891 0x39: Branch::return({{ 892 //If both MemAddressNotAligned and 893 //a fill trap happen, it's not clear --- 159 unchanged lines hidden (view full) --- 1053 } 1054 format Load { 1055 0x08: ldsw({{Rd = (int32_t)Mem.sw;}}); 1056 0x09: ldsb({{Rd = (int8_t)Mem.sb;}}); 1057 0x0A: ldsh({{Rd = (int16_t)Mem.shw;}}); 1058 0x0B: ldx({{Rd = (int64_t)Mem.sdw;}}); 1059 } 1060 0x0D: LoadStore::ldstub( |
1061 {{Rd = Mem.ub;}}, 1062 {{Mem.ub = 0xFF;}}); | 1061 {{uReg0 = Mem.ub;}}, 1062 {{Rd.ub = uReg0; 1063 Mem.ub = 0xFF;}}); |
1063 0x0E: Store::stx({{Mem.udw = Rd}}); 1064 0x0F: LoadStore::swap( | 1064 0x0E: Store::stx({{Mem.udw = Rd}}); 1065 0x0F: LoadStore::swap( |
1065 {{uReg0 = Rd.uw; 1066 Rd.uw = Mem.uw;}}, 1067 {{Mem.uw = uReg0;}}); | 1066 {{ uReg0 = Mem.uw}}, 1067 {{ Mem.uw = Rd.uw; 1068 Rd.uw = uReg0;}}); |
1068 format LoadAlt { 1069 0x10: lduwa({{Rd = Mem.uw;}}, {{EXT_ASI}}); 1070 0x11: lduba({{Rd = Mem.ub;}}, {{EXT_ASI}}); 1071 0x12: lduha({{Rd = Mem.uhw;}}, {{EXT_ASI}}); 1072 0x13: decode EXT_ASI { 1073 //ASI_LDTD_AIUP 1074 0x22: TwinLoad::ldtx_aiup( | 1069 format LoadAlt { 1070 0x10: lduwa({{Rd = Mem.uw;}}, {{EXT_ASI}}); 1071 0x11: lduba({{Rd = Mem.ub;}}, {{EXT_ASI}}); 1072 0x12: lduha({{Rd = Mem.uhw;}}, {{EXT_ASI}}); 1073 0x13: decode EXT_ASI { 1074 //ASI_LDTD_AIUP 1075 0x22: TwinLoad::ldtx_aiup( |
1075 {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); | 1076 {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); |
1076 //ASI_LDTD_AIUS 1077 0x23: TwinLoad::ldtx_aius( | 1077 //ASI_LDTD_AIUS 1078 0x23: TwinLoad::ldtx_aius( |
1078 {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); | 1079 {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); |
1079 //ASI_QUAD_LDD 1080 0x24: TwinLoad::ldtx_quad_ldd( | 1080 //ASI_QUAD_LDD 1081 0x24: TwinLoad::ldtx_quad_ldd( |
1081 {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); | 1082 {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); |
1082 //ASI_LDTX_REAL 1083 0x26: TwinLoad::ldtx_real( | 1083 //ASI_LDTX_REAL 1084 0x26: TwinLoad::ldtx_real( |
1084 {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); | 1085 {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); |
1085 //ASI_LDTX_N 1086 0x27: TwinLoad::ldtx_n( | 1086 //ASI_LDTX_N 1087 0x27: TwinLoad::ldtx_n( |
1087 {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); | 1088 {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); |
1088 //ASI_LDTX_L 1089 0x2C: TwinLoad::ldtx_l( | 1089 //ASI_LDTX_L 1090 0x2C: TwinLoad::ldtx_l( |
1090 {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); | 1091 {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); |
1091 //ASI_LDTX_REAL_L 1092 0x2E: TwinLoad::ldtx_real_l( | 1092 //ASI_LDTX_REAL_L 1093 0x2E: TwinLoad::ldtx_real_l( |
1093 {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); | 1094 {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); |
1094 //ASI_LDTX_N_L 1095 0x2F: TwinLoad::ldtx_n_l( | 1095 //ASI_LDTX_N_L 1096 0x2F: TwinLoad::ldtx_n_l( |
1096 {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); | 1097 {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); |
1097 //ASI_LDTX_P 1098 0xE2: TwinLoad::ldtx_p( | 1098 //ASI_LDTX_P 1099 0xE2: TwinLoad::ldtx_p( |
1099 {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); | 1100 {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); |
1100 //ASI_LDTX_S 1101 0xE3: TwinLoad::ldtx_s( | 1101 //ASI_LDTX_S 1102 0xE3: TwinLoad::ldtx_s( |
1102 {{RdTwin.udw = Mem.udw}}, {{EXT_ASI}}); | 1103 {{RdTwin.udw = Mem.udw;}}, {{EXT_ASI}}); |
1103 default: ldtwa({{ 1104 uint64_t val = Mem.udw; 1105 RdLow = val<31:0>; 1106 RdHigh = val<63:32>; 1107 }}, {{EXT_ASI}}); 1108 } 1109 } 1110 format StoreAlt { --- 4 unchanged lines hidden (view full) --- 1115 } 1116 format LoadAlt { 1117 0x18: ldswa({{Rd = (int32_t)Mem.sw;}}, {{EXT_ASI}}); 1118 0x19: ldsba({{Rd = (int8_t)Mem.sb;}}, {{EXT_ASI}}); 1119 0x1A: ldsha({{Rd = (int16_t)Mem.shw;}}, {{EXT_ASI}}); 1120 0x1B: ldxa({{Rd = (int64_t)Mem.sdw;}}, {{EXT_ASI}}); 1121 } 1122 0x1D: LoadStoreAlt::ldstuba( | 1104 default: ldtwa({{ 1105 uint64_t val = Mem.udw; 1106 RdLow = val<31:0>; 1107 RdHigh = val<63:32>; 1108 }}, {{EXT_ASI}}); 1109 } 1110 } 1111 format StoreAlt { --- 4 unchanged lines hidden (view full) --- 1116 } 1117 format LoadAlt { 1118 0x18: ldswa({{Rd = (int32_t)Mem.sw;}}, {{EXT_ASI}}); 1119 0x19: ldsba({{Rd = (int8_t)Mem.sb;}}, {{EXT_ASI}}); 1120 0x1A: ldsha({{Rd = (int16_t)Mem.shw;}}, {{EXT_ASI}}); 1121 0x1B: ldxa({{Rd = (int64_t)Mem.sdw;}}, {{EXT_ASI}}); 1122 } 1123 0x1D: LoadStoreAlt::ldstuba( |
1123 {{Rd = Mem.ub;}}, 1124 {{Mem.ub = 0xFF}}, {{EXT_ASI}}); | 1124 {{uReg0 = Mem.ub;}}, 1125 {{Rd.ub = uReg0; 1126 Mem.ub = 0xFF;}}, {{EXT_ASI}}); |
1125 0x1E: StoreAlt::stxa({{Mem.udw = Rd}}, {{EXT_ASI}}); 1126 0x1F: LoadStoreAlt::swapa( | 1127 0x1E: StoreAlt::stxa({{Mem.udw = Rd}}, {{EXT_ASI}}); 1128 0x1F: LoadStoreAlt::swapa( |
1127 {{uReg0 = Rd.uw; 1128 Rd.uw = Mem.uw;}}, 1129 {{Mem.uw = uReg0;}}, {{EXT_ASI}}); | 1129 {{ uReg0 = Mem.uw}}, 1130 {{ Mem.uw = Rd.uw; 1131 Rd.uw = uReg0;}}, {{EXT_ASI}}); |
1130 format Trap { 1131 0x20: Load::ldf({{Frd.uw = Mem.uw;}}); 1132 0x21: decode X { 1133 0x0: Load::ldfsr({{Fsr = Mem.uw | Fsr<63:32>;}}); 1134 0x1: Load::ldxfsr({{Fsr = Mem.udw;}}); 1135 } 1136 0x22: ldqf({{fault = new FpDisabled;}}); 1137 0x23: Load::lddf({{Frd.udw = Mem.udw;}}); --- 192 unchanged lines hidden --- | 1132 format Trap { 1133 0x20: Load::ldf({{Frd.uw = Mem.uw;}}); 1134 0x21: decode X { 1135 0x0: Load::ldfsr({{Fsr = Mem.uw | Fsr<63:32>;}}); 1136 0x1: Load::ldxfsr({{Fsr = Mem.udw;}}); 1137 } 1138 0x22: ldqf({{fault = new FpDisabled;}}); 1139 0x23: Load::lddf({{Frd.udw = Mem.udw;}}); --- 192 unchanged lines hidden --- |