macromem.isa (6726:a5322e816a2a) | macromem.isa (6754:72836109775f) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2007-2008 The Florida State University 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 --- 58 unchanged lines hidden (view full) --- 67let {{ 68 microLdrUopIop = InstObjParams('ldr_uop', 'MicroLdrUop', 69 'MicroMemOp', 70 {'memacc_code': 'Ra = Mem;', 71 'ea_code': 'EA = Rb + (UP ? imm : -imm);', 72 'predicate_test': predicateTest}, 73 ['IsMicroop']) 74 | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2007-2008 The Florida State University 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 --- 58 unchanged lines hidden (view full) --- 67let {{ 68 microLdrUopIop = InstObjParams('ldr_uop', 'MicroLdrUop', 69 'MicroMemOp', 70 {'memacc_code': 'Ra = Mem;', 71 'ea_code': 'EA = Rb + (UP ? imm : -imm);', 72 'predicate_test': predicateTest}, 73 ['IsMicroop']) 74 |
75 microLdrRetUopCode = ''' 76 Ra = Mem; 77 Cpsr = cpsrWriteByInstr(Cpsr, Spsr, 0xF, true); 78 ''' 79 microLdrRetUopIop = InstObjParams('ldr_ret_uop', 'MicroLdrRetUop', 80 'MicroMemOp', 81 {'memacc_code': microLdrRetUopCode, 82 'ea_code': 83 'EA = Rb + (UP ? imm : -imm);', 84 'predicate_test': predicateTest}, 85 ['IsMicroop']) 86 |
|
75 microStrUopIop = InstObjParams('str_uop', 'MicroStrUop', 76 'MicroMemOp', 77 {'memacc_code': 'Mem = Ra;', 78 'ea_code': 'EA = Rb + (UP ? imm : -imm);', 79 'predicate_test': predicateTest}, 80 ['IsMicroop']) 81 82 header_output = MicroMemDeclare.subst(microLdrUopIop) + \ | 87 microStrUopIop = InstObjParams('str_uop', 'MicroStrUop', 88 'MicroMemOp', 89 {'memacc_code': 'Mem = Ra;', 90 'ea_code': 'EA = Rb + (UP ? imm : -imm);', 91 'predicate_test': predicateTest}, 92 ['IsMicroop']) 93 94 header_output = MicroMemDeclare.subst(microLdrUopIop) + \ |
95 MicroMemDeclare.subst(microLdrRetUopIop) + \ |
|
83 MicroMemDeclare.subst(microStrUopIop) 84 decoder_output = MicroConstructor.subst(microLdrUopIop) + \ | 96 MicroMemDeclare.subst(microStrUopIop) 97 decoder_output = MicroConstructor.subst(microLdrUopIop) + \ |
98 MicroConstructor.subst(microLdrRetUopIop) + \ |
|
85 MicroConstructor.subst(microStrUopIop) 86 exec_output = LoadExecute.subst(microLdrUopIop) + \ | 99 MicroConstructor.subst(microStrUopIop) 100 exec_output = LoadExecute.subst(microLdrUopIop) + \ |
101 LoadExecute.subst(microLdrRetUopIop) + \ |
|
87 StoreExecute.subst(microStrUopIop) + \ 88 LoadInitiateAcc.subst(microLdrUopIop) + \ | 102 StoreExecute.subst(microStrUopIop) + \ 103 LoadInitiateAcc.subst(microLdrUopIop) + \ |
104 LoadInitiateAcc.subst(microLdrRetUopIop) + \ |
|
89 StoreInitiateAcc.subst(microStrUopIop) + \ 90 LoadCompleteAcc.subst(microLdrUopIop) + \ | 105 StoreInitiateAcc.subst(microStrUopIop) + \ 106 LoadCompleteAcc.subst(microLdrUopIop) + \ |
107 LoadCompleteAcc.subst(microLdrRetUopIop) + \ |
|
91 StoreCompleteAcc.subst(microStrUopIop) 92}}; 93 94//////////////////////////////////////////////////////////////////// 95// 96// Integer = Integer op Immediate microops 97// 98 --- 243 unchanged lines hidden --- | 108 StoreCompleteAcc.subst(microStrUopIop) 109}}; 110 111//////////////////////////////////////////////////////////////////// 112// 113// Integer = Integer op Immediate microops 114// 115 --- 243 unchanged lines hidden --- |