Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 956 Categories, Downloaded 50.325.223 Times

B::JVM::Jasmin::Emit 0.02

  Date Added: January 10, 2010  |  Visits: 1.161

B::JVM::Jasmin::Emit

Report Broken Link
Printer Friendly Version


Product Homepage
Download (125 downloads)



B::JVM::Jasmin::Emit is a package used by B::JVM::Jasmin to emit Jasmin syntaxed file. SYNOPSIS use B::JVM::Jasmin::Emit; my $emitter = new B::JVM::Emit(FILEHANDLE); # ... $emitter->DIRECTIVE_NAME([@ARGS]); # ... $emitter->OPCODE_NAME([@ARGS]); # ... $emitter->OPCODE_NAME([@ARGS]); This class is used emit JVM assembler code in Jasmin syntax. Each method one can use is either an opcode or a directive supported by Jasmin syntax. B::JVM::Jasmin::Emit Package Variables $VERSION Version number of B::JVM::Jasmin::Emit. For now, it should always match the version of B::JVM::Jasmin @EXPORT_OK All the methods that one can grab from B::JVM::Jasmin::Emit @EXPORT We dont export anything by default. Modules used by B::JVM::Jasmin::Emit Carp Used for error reporting B::JVM::Utils Used to get needed utility functions, such as ExtractMethodData and IsValidMethodString Methods in B::JVM::Jasmin::Emit B::JVM::Jasmin::Emit::new usage: B::JVM::Emit::new(FILEHANDLE, [SOURCE_FILE_NAME]) Creates a new object of the class. It assumes that FILEHANDLE is a lexically scoped file handle open for writing, and that SOURCE_FILE_NAME that should be used for a source directive. SOURCE_FILE_NAME is optional, but may annoys someone firing up your code in the Java debugger. B::JVM::Emit::Jasmin::_clearMethodData() usage: $jasminEmitter->_clearMethodData() Clear out the method data elements of the Jasmin emitter B::JVM::Emit::Jasmin::source usage: B::JVM::Emit::Jasmin::source(SOURCE_FILE_NAME) Emits the source file name directive. B::JVM::Emit::Jasmin::comment usage: B::JVM::Emit::Jasmin::comment($methodName, $commentString) Puts $commentString in a comment in the file, in the code for method $metohdName. B::JVM::Emit::Jasmin::super usage: B::JVM::Emit::Jasmin::super(CLASS_NAME) sends class directive, using CLASS_NAME, to the output file B::JVM::Emit::Jasmin::class usage: B::JVM::Emit::Jasmin::class(ACCESS_SPEC, CLASS_NAME) sends class directive, using CLASS_NAME to the ACCESS_SPEC, to the output file B::JVM::Emit::Jasmin::interface usage: B::JVM::Emit::Jasmin::interface(ACCESS_SPEC, INTERFACE_NAME) sends interface directive, using INTERFACE_NAME to the ACCESS_SPEC, to the output file B::JVM::Emit::Jasmin::implements usage: B::JVM::Emit::Jasmin::implements(CLASS_NAME) sends implements directive, using CLASS_NAME to the output file B::JVM::Emit::Jasmin::labelCreate usage: $emitter-labelCreate($methodName, $labelNameRequested)> In method, $methodName, creates a new label, whose name will "resemble" $labelNameRequested. This label is not actually sent to the output, that must be done later with $emitter-labelSend($methodName, $value)>. Note that the value returned from this method is the actual label name assigned and will only "resemble" (i.e., not match exactly) the $labelNameRequested. B::JVM::Emit::Jasmin::labelSend usage: $emitter-labelSend($methodName, $labelName)> Send a label, $labelName, to the output of method, $methodName. This label must be valid label previously returned from $emitter-labelCreate($methodName, $someValue)>. B::JVM::Emit::Jasmin::field usage: B::JVM::Emit::Jasmin::field(ACCESS_SPEC, FIELD_NAME, TYPE, [VALUE]) sends field directive, using the arguments given, to the output file B::JVM::Emit::Jasmin::methodStart usage: $emitter->methodStart(METHOD_NAME, ACCESS_SPEC, [STACK_SIZE]) sends method directive and other directives needed to start up a new method. Also sets the current method for the emitter. STACK_SIZE is optional. However, a stack size is always set to a default value (currently 256), because if it is not set, a number of problems occur with the stack. B::JVM::Emit::Jasmin::methodCreateLocal usage: $emitter->methodCreateLocal(METHOD_NAME, VARIABLE_NAME_REQUEST, VARIABLE_TYPE, [LABEL1], [LABEL2]) Creates a local of type VARIABLE_TYPE, with a given name in method, METHOD_NAME. If LABEL1 is given, LABEL2 must be given, and vice versa. If the labels are given, then the variable is only valid between those two labels in the resulting assembler source. methodCreateLocal attempts to give a variable name that "resembles" VARIABLE_NAME_REQUEST. If the labels are given, it is guaranteed that the variable name will "resemble" the VARIABLE_NAME_REQUEST. If the labels are not given, it is very likely that an old local variable of the same type will be returned. The actual variable name given will be returned. It is imperative that the user of methodCreateLocal use this variable name, and not VARIABLE_NAME_REQUEST, for obvious reasons. B::JVM::Emit::Jasmin::methodFreeLocal usage: $emitter->methodFreeLocal(METHOD_NAME VARIABLE_NAME) Indicates that the local, VARIABLE_NAME, in method, METHOD_NAME, is no longer in use. It is not required that locals be freed in this manner, however, many, many locals can be allocated unnecessarily if this is not done. B::JVM::Emit::Jasmin::methodEnd usage: $emitter-methodEnd($method, [$debug])> Finishes up a method, $method, that is currently being emitted. If $debug is defined and is true, then ".line" directives will be put into the output for debugging purposes. B::JVM::Emit::Jasmin::astore usage: $emitter->astore([METHOD, VARIABLE]) Emits an "astore" instruction, using the VARIABLE name in METHOD given, if one is given. If VARIABLE is given, it is looked up in variables created with B::JVM::Emit::Jasmin::methodCreateLocal() for the given method, METHOD. B::JVM::Emit::Jasmin::invokevirtual usage: $emitter->invokevirtual(METHOD_IN, METHOD_INVOKED) Emits an "invokevirtual" instruction to invoke METHOD_INVOKED in the code for METHOD_IN B::JVM::Emit::Jasmin::ifne usage: $emitter-ifne($methodName, $labelName)> Emits an "ifne" instruction with argument, $labelName in the code for method, $methodName. This label, $labelName must be valid label previously returned from $emitter-labelCreate($methodName, $someValue)>. B::JVM::Emit::Jasmin::ifeq usage: $emitter-ifeq($methodName, $labelName)> Emits an "ifeq" instruction with argument, $labelName in the code for method, $methodName. This label, $labelName must be valid label previously returned from $emitter-labelCreate($methodName, $someValue)>. B::JVM::Emit::Jasmin::aload usage: $emitter->aload([METHOD, VARIABLE]) Emits an "aload" instruction, using the VARIABLE name in METHOD given, if one is given. If VARIABLE is given, it is looked up in variables created with B::JVM::Emit::Jasmin::methodCreateLocal() for the given method, METHOD. B::JVM::Emit::Jasmin::invokestatic usage: $emitter->invokevirtual(METHOD_IN, METHOD_INVOKED) Emits an "invokestatic" instruction to invoke METHOD_INVOKED in the code for METHOD_IN B::JVM::Emit::Jasmin::iconst usage: $emitter->iconst(METHOD, VALUE) Emits an "iconst" instruction, using the value of VALUE for the constant, in the method named METHOD. B::JVM::Emit::Jasmin::istore usage: $emitter->istore([METHOD, VARIABLE]) Emits an "istore" instruction, using the VARIABLE name in METHOD given, if one is given. If VARIABLE is given, it is looked up in variables created with B::JVM::Emit::Jasmin::methodCreateLocal() for the given method, METHOD. B::JVM::Emit::Jasmin::iload usage: $emitter->iload([METHOD, VARIABLE]) Emits an "iload" instruction, using the VARIABLE name in METHOD given, if one is given. If VARIABLE is given, it is looked up in variables created with B::JVM::Emit::Jasmin::methodCreateLocal() for the given method, METHOD. B::JVM::Emit::Jasmin::iand usage: $emitter->iand([METHOD]) Emits an "iand" instruction, in METHOD given, if one is given. B::JVM::Emit::Jasmin::pop usage: $emitter->pop([METHOD]) Emits an "pop" instruction, in METHOD given, if one is given. B::JVM::Emit::Jasmin::getstatic usage: $emitter->getstatic(METHOD_IN, FIELD, TYPE) Emits an "getstatic" instruction for the field, FIELD, of type, TYPE in the code for METHOD_IN B::JVM::Emit::Jasmin::ldc usage: $emitter->ldc(METHOD_IN, VALUE) Emits an "ldc" instruction with the value of VALUE, in the method METHOD_IN. B::JVM::Emit::Jasmin::newObject usage: $emitter->newObject(METHOD_IN, CLASS) Emits an "new" instruction for the class, CLASS in the body for the method, METHOD_IN. CLASS must be a valid class name. B::JVM::Emit::Jasmin::invokespecial usage: $emitter->invokespecial(METHOD_IN, METHOD_INVOKED) Emits an "invokespecial" instruction to invoke METHOD_INVOKED in the code for METHOD_IN B::JVM::Emit::Jasmin::dup usage: $emitter-dup($method)> Emits an "dup" instruction in the code for the method, $method B::JVM::Emit::Jasmin::swap usage: $emitter-swap($method)> Emits an "swap" instruction in the code for the method, $method B::JVM::Emit::Jasmin::gotoLabel usage: $emitter-gotoLabel($methodName, $labelName)> Emits an "goto" instruction with argument, $labelName in the code for method, $methodName. This label, $labelName must be valid label previously returned from $emitter-labelCreate($methodName, $someValue)>. B::JVM::Emit::Jasmin::returnVoid usage: $emitter->returnVoid(METHOD_IN) Emits an "return" instruction in the code for method, METHOD_IN. B::JVM::Emit::Jasmin::iinc usage: $emitter-iinc($method, $variable, $amount)> Emits an "iinc" instruction, using the $variable name in the method, $method. The variable, $variable must have one previously returned from methodCreateLocal($method, ...) that has not been freed with methodFreeLocal($method, ...) yet. $amount is the integer amount to increment $variable by. B::JVM::Emit::Jasmin::bipush usage: $emitter-bipush($method, $value)> Emits an "bipush" instruction, into the method, $method using the value of $value. Note that an "iconst" or an "iconst_m1" instruction is emitted if the $value is the range where "iconst" will work. B::JVM::Emit::Jasmin::aastore usage: $emitter-aastore($method)> Emits an "aastore" instruction, into the method, $method. B::JVM::Emit::Jasmin::isub usage: $emitter-isub($method)> Emits an "isub" instruction, into the method, $method. B::JVM::Emit::Jasmin::nop usage: $emitter-nop($method)> Emits a "nop" instruction, into the method, $method. B::JVM::Emit::Jasmin::aaload usage: $emitter-aaload($method)> Emits an "aaload" instruction, into the method, $method. B::JVM::Emit::Jasmin::anewarray usage: $emitter-anewarray($method, $type)> Emits an "anewarray" instruction, into the method, $method. The new array will be of type $type. The method will fail if $type is not a valid JVM type identifier..

Requirements: No special requirements
Platforms: Linux
Keyword: Access Code For Emits Given Instruction Invoked Jvm Method Must Be Name Output File Spec Used By Value Variable Will Be
Users rating: 0/10

License: Freeware Size: 44.03 KB
USER REVIEWS
More Reviews or Write Review


B::JVM::JASMIN::EMIT RELATED
Development Tools  -  BEM Code for 2D Pulsating Cylinder 1.0
This is the code for calculating solid angle C, surface pressure ps, and field pressure pf coming out from a pulsating cylinder with radius of r and normal velocity vn in an unbounded two dimensional acoustic domain using the solution of Helmholtz...
10 KB  
Programming  -  sqlg2 rc.2.1.3
SQLG2 is preprocessor and library that combines ideas of JDBC, SQLJ and iBATIS to simplify writing DB access code for small and medium-sized applications, making it similar to PL/SQL development. It is intended for use under JDK 1.6 or later.
266.07 KB  
Modules  -  CCK Create Install 5.x-1.7 1.0
Currently this just lets you select a cck node type and generates install code for all of the cck tables, as well as all of the taxonomy referenced by the cck node_type.If your cck node type references taxonomies generated by other modules you...
 
Development Tools  -  Subroutines for the Internet Site for European Strong-Motion Data 1.0
These files are subroutines for importing and exporting files in the file format used by the Internet Site for European Strong-Motion Data (http://www.isesd.cv.ic.ac.uk). Raw_in imports uncorrected acceleration time-histories in ISESD format,...
10 KB  
Utilities  -  FolderWasher 1.01
For a given folder, FolderWasher deletes all files whose name begin with period like ".DS_Store" files created by Mac OS X. When copying folders from Mac OS X to Windows, these files become visible... and annoying. Runs with any OS X on...
3.45 MB  
Project Management  -  Cerere 2008 1.50
Cerere 2008 is a free program for people who work in agriculture and must complete and print a logbook, often by hand and with all paper-based data. This program lets the farmer insert the daily report with the operations performed by workers and...
1.62 MB  
Programming  -  Jamit 5.0
Jamit is short from Java Access Modifiers Inference Tool and it allows you to infer tighter access modifiers for Java code. Analyzing bytecode, it can find out if fields or methods may be declared private, default, protected, or final....
7.5 MB  
Modules  -  Webform invites 5.x-1.x-dev 1.0
The access code is only valid for a single submission, which prevents duplicate submissions.InstallationUnpack in your modules folder (usually /sites/all/modules/) and enable under Administer > Site Building > Modules. Requirements: - Drupal 5.x...
 
Development Editors  -  Easy Code for GoAsm 1.01
Easy Code is a visual programming setting in ensemble language, designed to 32-bit build Windows applications. To compile and link projects designed in this visual setting, Easy Code uses the EcGo programming tool packet, that includes among other...
1024 B  
Libraries  -  B::JVM::Jasmin::CompileState 0.02
B::JVM::Jasmin::CompileState is an internal package used by B::JVM::Jasmin to keep state of compilation. SYNOPSIS use B::JVM::Jasmin::CompileState; my $state = new B::JVM::Jasmin::CompileState([HASHREF]); This class is used to store the...
44.03 KB  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB  
Libraries  -  wolfSSL 4.0.0
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
3.88 MB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB