decoder.isa (2726:368aa7140e81) | decoder.isa (2735:f74563d64c6b) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2003-2006 The Regents of The University of Michigan 4// All rights reserved. 5// 6// Redistribution and use in source and binary forms, with or without 7// modification, are permitted provided that the following conditions are 8// met: redistributions of source code must retain the above copyright --- 33 unchanged lines hidden (view full) --- 42 43 format LoadOrNop { 44 0x0a: ldbu({{ Ra.uq = Mem.ub; }}); 45 0x0c: ldwu({{ Ra.uq = Mem.uw; }}); 46 0x0b: ldq_u({{ Ra = Mem.uq; }}, ea_code = {{ EA = (Rb + disp) & ~7; }}); 47 0x23: ldt({{ Fa = Mem.df; }}); 48 0x2a: ldl_l({{ Ra.sl = Mem.sl; }}, mem_flags = LOCKED); 49 0x2b: ldq_l({{ Ra.uq = Mem.uq; }}, mem_flags = LOCKED); | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2003-2006 The Regents of The University of Michigan 4// All rights reserved. 5// 6// Redistribution and use in source and binary forms, with or without 7// modification, are permitted provided that the following conditions are 8// met: redistributions of source code must retain the above copyright --- 33 unchanged lines hidden (view full) --- 42 43 format LoadOrNop { 44 0x0a: ldbu({{ Ra.uq = Mem.ub; }}); 45 0x0c: ldwu({{ Ra.uq = Mem.uw; }}); 46 0x0b: ldq_u({{ Ra = Mem.uq; }}, ea_code = {{ EA = (Rb + disp) & ~7; }}); 47 0x23: ldt({{ Fa = Mem.df; }}); 48 0x2a: ldl_l({{ Ra.sl = Mem.sl; }}, mem_flags = LOCKED); 49 0x2b: ldq_l({{ Ra.uq = Mem.uq; }}, mem_flags = LOCKED); |
50#ifdef USE_COPY |
|
50 0x20: MiscPrefetch::copy_load({{ EA = Ra; }}, 51 {{ fault = xc->copySrcTranslate(EA); }}, 52 inst_flags = [IsMemRef, IsLoad, IsCopy]); | 51 0x20: MiscPrefetch::copy_load({{ EA = Ra; }}, 52 {{ fault = xc->copySrcTranslate(EA); }}, 53 inst_flags = [IsMemRef, IsLoad, IsCopy]); |
54#endif |
|
53 } 54 55 format LoadOrPrefetch { 56 0x28: ldl({{ Ra.sl = Mem.sl; }}); 57 0x29: ldq({{ Ra.uq = Mem.uq; }}, pf_flags = EVICT_NEXT); 58 // IsFloating flag on lds gets the prefetch to disassemble 59 // using f31 instead of r31... funcitonally it's unnecessary 60 0x22: lds({{ Fa.uq = s_to_t(Mem.ul); }}, 61 pf_flags = PF_EXCLUSIVE, inst_flags = IsFloating); 62 } 63 64 format Store { 65 0x0e: stb({{ Mem.ub = Ra<7:0>; }}); 66 0x0d: stw({{ Mem.uw = Ra<15:0>; }}); 67 0x2c: stl({{ Mem.ul = Ra<31:0>; }}); 68 0x2d: stq({{ Mem.uq = Ra.uq; }}); 69 0x0f: stq_u({{ Mem.uq = Ra.uq; }}, {{ EA = (Rb + disp) & ~7; }}); 70 0x26: sts({{ Mem.ul = t_to_s(Fa.uq); }}); 71 0x27: stt({{ Mem.df = Fa; }}); | 55 } 56 57 format LoadOrPrefetch { 58 0x28: ldl({{ Ra.sl = Mem.sl; }}); 59 0x29: ldq({{ Ra.uq = Mem.uq; }}, pf_flags = EVICT_NEXT); 60 // IsFloating flag on lds gets the prefetch to disassemble 61 // using f31 instead of r31... funcitonally it's unnecessary 62 0x22: lds({{ Fa.uq = s_to_t(Mem.ul); }}, 63 pf_flags = PF_EXCLUSIVE, inst_flags = IsFloating); 64 } 65 66 format Store { 67 0x0e: stb({{ Mem.ub = Ra<7:0>; }}); 68 0x0d: stw({{ Mem.uw = Ra<15:0>; }}); 69 0x2c: stl({{ Mem.ul = Ra<31:0>; }}); 70 0x2d: stq({{ Mem.uq = Ra.uq; }}); 71 0x0f: stq_u({{ Mem.uq = Ra.uq; }}, {{ EA = (Rb + disp) & ~7; }}); 72 0x26: sts({{ Mem.ul = t_to_s(Fa.uq); }}); 73 0x27: stt({{ Mem.df = Fa; }}); |
74#ifdef USE_COPY |
|
72 0x24: MiscPrefetch::copy_store({{ EA = Rb; }}, 73 {{ fault = xc->copy(EA); }}, 74 inst_flags = [IsMemRef, IsStore, IsCopy]); | 75 0x24: MiscPrefetch::copy_store({{ EA = Rb; }}, 76 {{ fault = xc->copy(EA); }}, 77 inst_flags = [IsMemRef, IsStore, IsCopy]); |
78#endif |
|
75 } 76 77 format StoreCond { 78 0x2e: stl_c({{ Mem.ul = Ra<31:0>; }}, 79 {{ 80 uint64_t tmp = write_result; 81 // see stq_c 82 Ra = (tmp == 0 || tmp == 1) ? tmp : Ra; --- 744 unchanged lines hidden --- | 79 } 80 81 format StoreCond { 82 0x2e: stl_c({{ Mem.ul = Ra<31:0>; }}, 83 {{ 84 uint64_t tmp = write_result; 85 // see stq_c 86 Ra = (tmp == 0 || tmp == 1) ? tmp : Ra; --- 744 unchanged lines hidden --- |