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//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Script/NullaryOp.h" 10f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Script/Operand.h" 1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Target/TargetLDBackend.h" 1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines 1437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcld { 15f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 16f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// NullaryOp 17f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 1837b74a387bb3993387029859c2d9d051c41c724eStephen Hinestemplate <> 1937b74a387bb3993387029859c2d9d051c41c724eStephen HinesIntOperand* NullaryOp<Operator::SIZEOF_HEADERS>::eval( 2037b74a387bb3993387029859c2d9d051c41c724eStephen Hines const Module& pModule, 2137b74a387bb3993387029859c2d9d051c41c724eStephen Hines const TargetLDBackend& pBackend) { 22f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines IntOperand* res = result(); 23f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines res->setValue(pBackend.sectionStartOffset()); 24f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return res; 25f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 26f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 2737b74a387bb3993387029859c2d9d051c41c724eStephen Hinestemplate <> 2837b74a387bb3993387029859c2d9d051c41c724eStephen HinesIntOperand* NullaryOp<Operator::MAXPAGESIZE>::eval( 2937b74a387bb3993387029859c2d9d051c41c724eStephen Hines const Module& pModule, 3037b74a387bb3993387029859c2d9d051c41c724eStephen Hines const TargetLDBackend& pBackend) { 31f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines IntOperand* res = result(); 32f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines res->setValue(pBackend.abiPageSize()); 33f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return res; 34f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 35f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 3637b74a387bb3993387029859c2d9d051c41c724eStephen Hinestemplate <> 3737b74a387bb3993387029859c2d9d051c41c724eStephen HinesIntOperand* NullaryOp<Operator::COMMONPAGESIZE>::eval( 3837b74a387bb3993387029859c2d9d051c41c724eStephen Hines const Module& pModule, 3937b74a387bb3993387029859c2d9d051c41c724eStephen Hines const TargetLDBackend& pBackend) { 40f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines IntOperand* res = result(); 41f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines res->setValue(pBackend.commonPageSize()); 42f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines return res; 43f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 4437b74a387bb3993387029859c2d9d051c41c724eStephen Hines 4537b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 46