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