Patch title: Release 85 bulk changes
Abstract:
File: /pliant/language/type/number/int_indian.pli
Key:
    Removed line
    Added line
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# version 2 along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

scope "/pliant/language/" "/pliant/install/"
module "/pliant/install/ring2.pli"


function revert16 ui -> rui
  arg uInt ui rui
  rui := (ui .and. 0FFh)*2^8 .or. (ui .and. 0FF00h)\2^8
   
function revert32 ui -> rui
  arg uInt ui rui
  rui := (ui .and. 0FFh)*2^24 .or. (ui .and. 0FF00h)*2^8 .or. (ui .and. 0FF0000h)\2^8 .or. (ui .and. 0FF000000h)\2^24

function revert ui -> rui
  arg uInt ui rui
  if uInt:size=4
    rui := (ui .and. 0FFh)*2^24 .or. (ui .and. 0FF00h)*2^8 .or. (ui .and. 0FF0000h)\2^8 .or. (ui .and. 0FF000000h)\2^24


public


if processor_is_low_indian
  alias uInt16_li uInt16 from "/pliant/language/type/number/int_sized.pli"
if processor_is_high_indian
  type uInt16_li
    field uInt16 value
  function 'cast uInt16_li' i -> ii
    arg uInt16 i ; arg uInt16_li ii
    implicit
    ii value := revert16 i
  function 'cast uInt16' ii -> i
    arg uInt16_li ii ; arg uInt16 i
    implicit
    i := revert16 ii:value

if processor_is_high_indian
  alias uInt16_hi uInt16 from "/pliant/language/type/number/int_sized.pli"
if processor_is_low_indian
  type uInt16_hi
    field uInt16 value
  function 'cast uInt16_hi' i -> ii
    arg uInt16 i ; arg uInt16_hi ii
    implicit
    ii value := revert16 i
  function 'cast uInt16' ii -> i
    arg uInt16_hi ii ; arg uInt16 i
    implicit
    i := revert16 ii:value


if processor_is_low_indian
  alias uInt32_li uInt32 from "/pliant/language/type/number/int_sized.pli"
if processor_is_high_indian
  type uInt32_li
    field uInt32 value
  function 'cast uInt32_li' i -> ii
    arg uInt32 i ; arg uInt32_li ii
    implicit
    ii value := revert32 i
  function 'cast uInt32' ii -> i
    arg uInt32_li ii ; arg uInt32 i
    implicit
    i := revert32 ii:value

if processor_is_high_indian
  alias uInt32_hi uInt32 from "/pliant/language/type/number/int_sized.pli"
if processor_is_low_indian
  type uInt32_hi
    field uInt32 value
  function 'cast uInt32_hi' i -> ii
    arg uInt32 i ; arg uInt32_hi ii
    implicit
    ii value := revert32 i
  function 'cast uInt32' ii -> i
    arg uInt32_hi ii ; arg uInt32 i
    implicit
    i := revert32 ii:value


if processor_is_low_indian
  alias uInt_li uInt from "/pliant/language/type/number/int.pli"
if processor_is_high_indian
  type uInt_li
    field uInt value
  function 'cast uInt_li' i -> ii
    arg uInt i ; arg uInt_li ii
    implicit
    ii value := revert i
  function 'cast uInt' ii -> i
    arg uInt_li iii ; arg uInt i
    implicit
    i := revert ii:value

if processor_is_high_indian
  alias uInt_hi uInt from "/pliant/language/type/number/int.pli"
if processor_is_low_indian
  type uInt_hi
    field uInt value
  function 'cast uInt_hi' i -> ii
    arg uInt i ; arg uInt_hi ii
    implicit
    ii value := revert i
  function 'cast uInt' ii -> i
    arg uInt_hi ii ; arg uInt i
    implicit
    i := revert ii:value