blob: 69382ecba8dc4f5ba932f14e1a1d9b23620cd3cd [file] [log] [blame]
//===- NullaryOp.cpp ------------------------------------------------------===//
//
// The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <mcld/Script/NullaryOp.h>
#include <mcld/Script/Operand.h>
#include <mcld/Target/TargetLDBackend.h>
using namespace mcld;
//===----------------------------------------------------------------------===//
// NullaryOp
//===----------------------------------------------------------------------===//
template<>
IntOperand*
NullaryOp<Operator::SIZEOF_HEADERS>::eval(const Module& pModule,
const TargetLDBackend& pBackend)
{
IntOperand* res = result();
res->setValue(pBackend.sectionStartOffset());
return res;
}
template<>
IntOperand*
NullaryOp<Operator::MAXPAGESIZE>::eval(const Module& pModule,
const TargetLDBackend& pBackend)
{
IntOperand* res = result();
res->setValue(pBackend.abiPageSize());
return res;
}
template<>
IntOperand*
NullaryOp<Operator::COMMONPAGESIZE>::eval(const Module& pModule,
const TargetLDBackend& pBackend)
{
IntOperand* res = result();
res->setValue(pBackend.commonPageSize());
return res;
}