1------------------------------------------------------------------------------ 2-- -- 3-- GNAT COMPILER COMPONENTS -- 4-- -- 5-- G E T _ T A R G -- 6-- -- 7-- B o d y -- 8-- -- 9-- Copyright (C) 1992-2007, Free Software Foundation, Inc. -- 10-- -- 11-- GNAT is free software; you can redistribute it and/or modify it under -- 12-- terms of the GNU General Public License as published by the Free Soft- -- 13-- ware Foundation; either version 3, or (at your option) any later ver- -- 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- 17-- for more details. You should have received a copy of the GNU General -- 18-- Public License distributed with GNAT; see file COPYING3. If not, go to -- 19-- http://www.gnu.org/licenses for a complete copy of the license. -- 20-- -- 21-- GNAT was originally developed by the GNAT team at New York University. -- 22-- Extensive contributions were provided by Ada Core Technologies Inc. -- 23-- -- 24------------------------------------------------------------------------------ 25 26package body Get_Targ is 27 28 ---------------------- 29 -- Digits_From_Size -- 30 ---------------------- 31 32 function Digits_From_Size (Size : Pos) return Pos is 33 begin 34 if Size = 32 then 35 return 6; 36 elsif Size = 48 then 37 return 9; 38 elsif Size = 64 then 39 return 15; 40 elsif Size = 96 then 41 return 18; 42 elsif Size = 128 then 43 return 18; 44 else 45 raise Program_Error; 46 end if; 47 end Digits_From_Size; 48 49 ----------------------------- 50 -- Get_Max_Unaligned_Field -- 51 ----------------------------- 52 53 function Get_Max_Unaligned_Field return Pos is 54 begin 55 return 64; -- Can be different on some targets (e.g., AAMP) 56 end Get_Max_Unaligned_Field; 57 58 --------------------- 59 -- Width_From_Size -- 60 --------------------- 61 62 function Width_From_Size (Size : Pos) return Pos is 63 begin 64 if Size = 8 then 65 return 4; 66 elsif Size = 16 then 67 return 6; 68 elsif Size = 32 then 69 return 11; 70 elsif Size = 64 then 71 return 21; 72 else 73 raise Program_Error; 74 end if; 75 end Width_From_Size; 76 77end Get_Targ; 78