49c49,50
< template <typename, typename> class MicroopType>
---
> template <typename, typename> class MicroopType,
> template <typename> class FirstFaultWritebackMicroopType>
61c62
< uint64_t _imm)
---
> uint64_t _imm, bool firstFault)
65a67
> assert(!firstFault || isLoad);
71c73,77
< numMicroops++;
---
> if (firstFault) {
> numMicroops += 2;
> } else {
> numMicroops++;
> }
93c99
< num_elems);
---
> num_elems, firstFault);
96c102,108
< --uop;
---
> if (firstFault) {
> *uop = new FirstFaultWritebackMicroopType<RegElemType>(
> mnem, machInst, __opClass, num_elems, this);
> } else {
> --uop;
> }
>
133c145,146
< template <typename, typename> class MicroopType>
---
> template <typename, typename> class MicroopType,
> template <typename> class FirstFaultWritebackMicroopType>
150c163,164
< bool _offsetIsSigned, bool _offsetIsScaled)
---
> bool _offsetIsSigned, bool _offsetIsScaled,
> bool firstFault)
156a171
> assert(!firstFault || isLoad);
162c177,181
< numMicroops++;
---
> if (firstFault) {
> numMicroops += 2;
> } else {
> numMicroops++;
> }
184c203
< _offsetIsSigned, _offsetIsScaled, i, num_elems);
---
> _offsetIsSigned, _offsetIsScaled, i, num_elems, firstFault);
187c206,212
< --uop;
---
> if (firstFault) {
> *uop = new FirstFaultWritebackMicroopType<RegElemType>(
> mnem, machInst, __opClass, num_elems, this);
> } else {
> --uop;
> }
>