1f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===- NullaryOp.cpp ------------------------------------------------------===// 2f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 3f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// The MCLinker Project 4f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 5f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// This file is distributed under the University of Illinois Open Source 6f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// License. See LICENSE.TXT for details. 7f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 8f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 9f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Script/NullaryOp.h> 10f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Script/Operand.h> 11f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Target/TargetLDBackend.h> 12f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 13f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesusing namespace mcld; 14f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 15f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// NullaryOp 16f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 17f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinestemplate<> 18f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesIntOperand* 19f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesNullaryOp<Operator::SIZEOF_HEADERS>::eval(const Module& pModule, 20f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines const TargetLDBackend& pBackend) 21f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 22f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines IntOperand* res = result(); 23f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines res->setValue(pBackend.sectionStartOffset()); 24f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return res; 25f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 26f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 27f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinestemplate<> 28f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesIntOperand* 29f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesNullaryOp<Operator::MAXPAGESIZE>::eval(const Module& pModule, 30f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines const TargetLDBackend& pBackend) 31f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 32f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines IntOperand* res = result(); 33f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines res->setValue(pBackend.abiPageSize()); 34f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return res; 35f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 36f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 37f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinestemplate<> 38f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesIntOperand* 39f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen HinesNullaryOp<Operator::COMMONPAGESIZE>::eval(const Module& pModule, 40f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines const TargetLDBackend& pBackend) 41f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines{ 42f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines IntOperand* res = result(); 43f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines res->setValue(pBackend.commonPageSize()); 44f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return res; 45f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 46