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

# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and
# modify it under the terms of the GNU General Public Licens
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be us
# but WITHOUT ANY WARRANTY; without even the implied warrant
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See 
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public 
# version 2 along with this program; if not, write to the Fr
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 

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



  function i386_counter eax edx
    arg_w Int eax edx
  function generate_i386_counter i f
    arg_rw Instruction i ; arg_rw Function f
    check i:0:where=argument_register and i:0:register=i386_
    check i:1:where=argument_register and i:1:register=i386_
    f code_immediat 0Fh 1 ; f code_immediat 31h 1
  (the_function i386_counter Int Int) set_generate_binary (t
  ((the_function i386_counter Int Int) arg 0) access := acce
  ((the_function i386_counter Int Int) arg 1) access := acce
  
  function pentium_counter low high
    arg_w uInt low high
    has_side_effects
module "/pliant/install/ring2.pli"



  function i386_counter eax edx
    arg_w Int eax edx
  function generate_i386_counter i f
    arg_rw Instruction i ; arg_rw Function f
    check i:0:where=argument_register and i:0:register=i386_
    check i:1:where=argument_register and i:1:register=i386_
    f code_immediat 0Fh 1 ; f code_immediat 31h 1
  (the_function i386_counter Int Int) set_generate_binary (t
  ((the_function i386_counter Int Int) arg 0) access := acce
  ((the_function i386_counter Int Int) arg 1) access := acce
  
  function pentium_counter low high
    arg_w uInt low high
    has_side_effects
    gcc_inline "asm( [dq].byte 0x0f; .byte 0x31[dq] : [dq]=a[dq]($1),[dq]=d[dq]($2) : );"
  function assemble_pentium_counter i gc
    arg_rw Instruction i ; arg_rw GeneratorContext gc
    var Link:Argument eax :> gc register i386_eax
    var Link:Argument edx :> gc register i386_edx
    var Pointer:Instruction cur :> i
    cur :> gc insert_after_instruction cur (instruction (the
    cur :> gc insert_after_instruction cur (instruction (the
    cur :> gc insert_after_instruction cur (instruction (the
    gc remove i
  (the_function pentium_counter uInt uInt) set_generate_asse

  export pentium_counter
  function assemble_pentium_counter i gc
    arg_rw Instruction i ; arg_rw GeneratorContext gc
    var Link:Argument eax :> gc register i386_eax
    var Link:Argument edx :> gc register i386_edx
    var Pointer:Instruction cur :> i
    cur :> gc insert_after_instruction cur (instruction (the
    cur :> gc insert_after_instruction cur (instruction (the
    cur :> gc insert_after_instruction cur (instruction (the
    gc remove i
  (the_function pentium_counter uInt uInt) set_generate_asse

  export pentium_counter