IsForth 1.22b (Default branch)


 
Thread Tools Search this Thread
Special Forums News, Links, Events and Announcements Software Releases - RSS News IsForth 1.22b (Default branch)
# 1  
Old 02-02-2009
IsForth 1.22b (Default branch)

IsForth is a 32-bit Linux Forth compiler. Image

Image

More...
Login or Register to Ask a Question

Previous Thread | Next Thread
Login or Register to Ask a Question
emulate_branch(3)					     Library Functions Manual						 emulate_branch(3)

Name
       emulate_branch, execute_branch - branch emulation

Syntax
       #include <signal.h>

       emulate_branch(scp, branch_instruction)
       struct sigcontext *scp;
       unsigned long branch_instruction;

       execute_branch(branch_instruction)
       unsigned long branch_instruction;

Description
       The  function  is  passed  a signal context structure and a branch instruction.	It emulates the branch based on the register values in the
       signal context structure.  It modifies the value of the program counter in the signal context  structure  (sc_pc)  to  the  target  of  the
       branch_instruction.   The program counter must initially be pointing at the branch and the register values must be those at the time of the
       branch.	If the branch is not taken the program counter is advanced to point to the instruction after the delay slot (sc_pc += 8).

       If the branch instruction is a `branch on coprocessor 2' or `branch on coprocessor 3' instruction, calls to  execute  the  branch  in  data
       space to determine if it is taken or not.

Return Values
       The  function returns a 0 if the branch was emulated successfully.  A non-zero value indicates the value passed as a branch instruction was
       not a branch instruction.

       The function returns non-zero on taken branches and zero on non-taken branches.

Restrictions
       Since is only intended to be used by it does not check its parameter to see if in fact it is a branch instruction.  It is really a stop gap
       in case a coprocessor is added without the kernel fully supporting it (which is unlikely).

See Also
       cacheflush(2), sigvec(2), signal(3)

								       RISC							 emulate_branch(3)