1 /*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "cg_irbuilder.h"
17 #include "isa.h"
18 #include "cg.h"
19 #include "cfi.h"
20 #include "gtest/gtest.h"
21 using namespace std;
22 using namespace maplebe;
23 namespace {
TEST(CreateMem_FUNC,t01)24 TEST(CreateMem_FUNC, t01)
25 {
26 MemPoolCtrler memPoolCtrler1, memPoolCtrler2;
27 MemPool memPool1(memPoolCtrler1, "poolName1"), memPool2(memPoolCtrler2, "poolName2");
28 OperandBuilder opbuilder_obj(memPool1, 30);
29 RegOperand regop_obj(0, 0, kRegTyInt, 0);
30 ImmOperand immop_obj(20, 8, false);
31 MIRSymbol mirsymbol_obj;
32 // test :CreateMem(uint32 size, RegOperand &baseOpnd, ImmOperand &ofstOperand, MemPool *mp)
33 MemOperand *ptr1 = &(opbuilder_obj.CreateMem(100, regop_obj, immop_obj, &memPool2));
34 EXPECT_NE(ptr1, nullptr);
35 // test :CreateMem(uint32, RegOperand &, ImmOperand &,const MIRSymbol &, MemPool *)
36 MemOperand *ptr2 = &(opbuilder_obj.CreateMem(100, regop_obj, immop_obj, mirsymbol_obj, &memPool2));
37 EXPECT_NE(ptr2, nullptr);
38 }
39
TEST(CreateBitShift_FUNC,t02)40 TEST(CreateBitShift_FUNC, t02)
41 {
42 MemPoolCtrler memPoolCtrler1, memPoolCtrler2;
43 MemPool memPool1(memPoolCtrler1, "poolName1"), memPool2(memPoolCtrler2, "poolName2");
44 // test method:CreateBitShift(BitShiftOperand::ShiftOp op, uint32 amount, uint32 bitLen, MemPool *mp)
45 OperandBuilder opbuilder_obj(memPool1, 30);
46 BitShiftOperand *ptr = &(opbuilder_obj.CreateBitShift(BitShiftOperand::ShiftOp::kASR, 1, 2, &memPool2));
47 EXPECT_NE(ptr, nullptr);
48 }
49 } // namespace