BVB Source Codes

mars Show fcontext_sparc.hpp Source code

Return Download mars: download fcontext_sparc.hpp Source code - Download mars Source code - Type:.hpp
  1. //          Copyright Martin Husemann 2012
  2. // Distributed under the Boost Software License, Version 1.0.
  3. //    (See accompanying file LICENSE_1_0.txt or copy at
  4. //          http://www.boost.org/LICENSE_1_0.txt)
  5.  
  6. #ifndef BOOST_CTX_DETAIL_FCONTEXT_SPARC_H
  7. #define BOOST_CTX_DETAIL_FCONTEXT_SPARC_H
  8.  
  9. #include <cstddef>
  10.  
  11. #include <boost/config.hpp>
  12. #include <boost/cstdint.hpp>
  13.  
  14. #include <boost/context/detail/config.hpp>
  15.  
  16. #ifdef BOOST_HAS_ABI_HEADERS
  17. # include BOOST_ABI_PREFIX
  18. #endif
  19.  
  20. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  21. namespace context {
  22.  
  23. extern "C" {
  24.  
  25. #define BOOST_CONTEXT_CALLDECL
  26.  
  27. // if defined(_LP64) we are compiling for sparc64, otherwise it is 32 bit
  28. // sparc.
  29.  
  30.  
  31. struct stack_t
  32. {
  33.     void    *   sp;
  34.     std::size_t size;
  35.  
  36.     stack_t() :
  37.         sp( 0), size( 0)
  38.     {}
  39. };
  40.  
  41. struct fp_t
  42. {
  43. #ifdef _LP64
  44.     mars_boost::uint64_t     fp_freg[32];
  45.     mars_boost::uint64_t        fp_fprs, fp_fsr;
  46. #else
  47.     mars_boost::uint64_t     fp_freg[16];
  48.     mars_boost::uint32_t        fp_fsr;
  49. #endif
  50.  
  51.     fp_t() :
  52.         fp_freg(),
  53. #ifdef _LP64
  54.         fp_fprs(),
  55. #endif
  56.         fp_fsr()
  57.     {}
  58. }
  59. #ifdef _LP64
  60.                  __attribute__((__aligned__(64)))       // allow VIS instructions to be used
  61. #endif
  62. ;
  63.  
  64. struct fcontext_t
  65. {
  66.     fp_t                fc_fp;  // fpu stuff first, for easier alignement
  67. #ifdef _LP64
  68.     mars_boost::uint64_t
  69. #else
  70.     mars_boost::uint32_t
  71. #endif
  72.                         fc_greg[8];
  73.     stack_t             fc_stack;
  74.  
  75.     fcontext_t() :
  76.         fc_fp(),
  77.         fc_greg(),
  78.         fc_stack()
  79.     {}
  80. };
  81.  
  82. }
  83.  
  84. }}
  85.  
  86. #ifdef BOOST_HAS_ABI_HEADERS
  87. # include BOOST_ABI_SUFFIX
  88. #endif
  89.  
  90. #endif // BOOST_CTX_DETAIL_FCONTEXT_SPARC_H
  91.  
downloadfcontext_sparc.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top