base_dyn_inst.hh (9920:028e4da64b42) base_dyn_inst.hh (9932:2efeed2cef09)
1/*
2 * Copyright (c) 2011,2013 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved.
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 995 unchanged lines hidden (view full) ---

1004
1005 if (!TheISA::HasUnalignedMemAcc || sreqLow == NULL) {
1006 WholeTranslationState *state =
1007 new WholeTranslationState(req, NULL, res, mode);
1008
1009 // One translation if the request isn't split.
1010 DataTranslation<BaseDynInstPtr> *trans =
1011 new DataTranslation<BaseDynInstPtr>(this, state);
1/*
2 * Copyright (c) 2011,2013 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved.
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 995 unchanged lines hidden (view full) ---

1004
1005 if (!TheISA::HasUnalignedMemAcc || sreqLow == NULL) {
1006 WholeTranslationState *state =
1007 new WholeTranslationState(req, NULL, res, mode);
1008
1009 // One translation if the request isn't split.
1010 DataTranslation<BaseDynInstPtr> *trans =
1011 new DataTranslation<BaseDynInstPtr>(this, state);
1012
1012 cpu->dtb->translateTiming(req, thread->getTC(), trans, mode);
1013 cpu->dtb->translateTiming(req, thread->getTC(), trans, mode);
1014
1013 if (!translationCompleted()) {
1015 if (!translationCompleted()) {
1016 // The translation isn't yet complete, so we can't possibly have a
1017 // fault. Overwrite any existing fault we might have from a previous
1018 // execution of this instruction (e.g. an uncachable load that
1019 // couldn't execute because it wasn't at the head of the ROB).
1020 fault = NoFault;
1021
1014 // Save memory requests.
1015 savedReq = state->mainReq;
1016 savedSreqLow = state->sreqLow;
1017 savedSreqHigh = state->sreqHigh;
1018 }
1019 } else {
1020 WholeTranslationState *state =
1021 new WholeTranslationState(req, sreqLow, sreqHigh, NULL, res, mode);
1022
1023 // Two translations when the request is split.
1024 DataTranslation<BaseDynInstPtr> *stransLow =
1025 new DataTranslation<BaseDynInstPtr>(this, state, 0);
1026 DataTranslation<BaseDynInstPtr> *stransHigh =
1027 new DataTranslation<BaseDynInstPtr>(this, state, 1);
1028
1029 cpu->dtb->translateTiming(sreqLow, thread->getTC(), stransLow, mode);
1030 cpu->dtb->translateTiming(sreqHigh, thread->getTC(), stransHigh, mode);
1022 // Save memory requests.
1023 savedReq = state->mainReq;
1024 savedSreqLow = state->sreqLow;
1025 savedSreqHigh = state->sreqHigh;
1026 }
1027 } else {
1028 WholeTranslationState *state =
1029 new WholeTranslationState(req, sreqLow, sreqHigh, NULL, res, mode);
1030
1031 // Two translations when the request is split.
1032 DataTranslation<BaseDynInstPtr> *stransLow =
1033 new DataTranslation<BaseDynInstPtr>(this, state, 0);
1034 DataTranslation<BaseDynInstPtr> *stransHigh =
1035 new DataTranslation<BaseDynInstPtr>(this, state, 1);
1036
1037 cpu->dtb->translateTiming(sreqLow, thread->getTC(), stransLow, mode);
1038 cpu->dtb->translateTiming(sreqHigh, thread->getTC(), stransHigh, mode);
1039
1031 if (!translationCompleted()) {
1040 if (!translationCompleted()) {
1041 // The translation isn't yet complete, so we can't possibly have a
1042 // fault. Overwrite any existing fault we might have from a previous
1043 // execution of this instruction (e.g. an uncachable load that
1044 // couldn't execute because it wasn't at the head of the ROB).
1045 fault = NoFault;
1046
1032 // Save memory requests.
1033 savedReq = state->mainReq;
1034 savedSreqLow = state->sreqLow;
1035 savedSreqHigh = state->sreqHigh;
1036 }
1037 }
1038}
1039

--- 26 unchanged lines hidden ---
1047 // Save memory requests.
1048 savedReq = state->mainReq;
1049 savedSreqLow = state->sreqLow;
1050 savedSreqHigh = state->sreqHigh;
1051 }
1052 }
1053}
1054

--- 26 unchanged lines hidden ---