Home | History | Annotate | Download | only in Script
      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 
     11 #include "mcld/Script/Operand.h"
     12 #include "mcld/Target/TargetLDBackend.h"
     13 
     14 namespace mcld {
     15 //===----------------------------------------------------------------------===//
     16 // NullaryOp
     17 //===----------------------------------------------------------------------===//
     18 template <>
     19 IntOperand* NullaryOp<Operator::SIZEOF_HEADERS>::eval(
     20     const Module& pModule,
     21     const TargetLDBackend& pBackend) {
     22   IntOperand* res = result();
     23   res->setValue(pBackend.sectionStartOffset());
     24   return res;
     25 }
     26 
     27 template <>
     28 IntOperand* NullaryOp<Operator::MAXPAGESIZE>::eval(
     29     const Module& pModule,
     30     const TargetLDBackend& pBackend) {
     31   IntOperand* res = result();
     32   res->setValue(pBackend.abiPageSize());
     33   return res;
     34 }
     35 
     36 template <>
     37 IntOperand* NullaryOp<Operator::COMMONPAGESIZE>::eval(
     38     const Module& pModule,
     39     const TargetLDBackend& pBackend) {
     40   IntOperand* res = result();
     41   res->setValue(pBackend.commonPageSize());
     42   return res;
     43 }
     44 
     45 }  // namespace mcld
     46