Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 11 jdk.scripting.nashorn.jmod - Scripting Nashorn Module
JDK 11 jdk.scripting.nashorn.jmod is the JMOD file for JDK 11 Scripting Nashorn module.
JDK 11 Scripting Nashorn module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\jdk.scripting.nashorn.jmod.
JDK 11 Scripting Nashorn module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Scripting Nashorn module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\jdk.scripting.nashorn.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ jdk/nashorn/internal/codegen/BranchOptimizer.java
/* * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package jdk.nashorn.internal.codegen; import static jdk.nashorn.internal.codegen.Condition.EQ; import static jdk.nashorn.internal.codegen.Condition.GE; import static jdk.nashorn.internal.codegen.Condition.GT; import static jdk.nashorn.internal.codegen.Condition.LE; import static jdk.nashorn.internal.codegen.Condition.LT; import static jdk.nashorn.internal.codegen.Condition.NE; import static jdk.nashorn.internal.parser.TokenType.NOT; import jdk.nashorn.internal.ir.BinaryNode; import jdk.nashorn.internal.ir.Expression; import jdk.nashorn.internal.ir.JoinPredecessorExpression; import jdk.nashorn.internal.ir.LocalVariableConversion; import jdk.nashorn.internal.ir.UnaryNode; /** * Branch optimizer for CodeGenerator. Given a jump condition this helper * class attempts to simplify the control flow */ final class BranchOptimizer { private final CodeGenerator codegen; private final MethodEmitter method; BranchOptimizer(final CodeGenerator codegen, final MethodEmitter method) { this.codegen = codegen; this.method = method; } void execute(final Expression node, final Label label, final boolean state) { branchOptimizer(node, label, state); } private void branchOptimizer(final UnaryNode unaryNode, final Label label, final boolean state) { if (unaryNode.isTokenType(NOT)) { branchOptimizer(unaryNode.getExpression(), label, !state); } else { loadTestAndJump(unaryNode, label, state); } } private void branchOptimizer(final BinaryNode binaryNode, final Label label, final boolean state) { final Expression lhs = binaryNode.lhs(); final Expression rhs = binaryNode.rhs(); switch (binaryNode.tokenType()) { case AND: if (state) { final Label skip = new Label("skip"); optimizeLogicalOperand(lhs, skip, false, false); optimizeLogicalOperand(rhs, label, true, true); method.label(skip); } else { optimizeLogicalOperand(lhs, label, false, false); optimizeLogicalOperand(rhs, label, false, true); } return; case OR: if (state) { optimizeLogicalOperand(lhs, label, true, false); optimizeLogicalOperand(rhs, label, true, true); } else { final Label skip = new Label("skip"); optimizeLogicalOperand(lhs, skip, true, false); optimizeLogicalOperand(rhs, label, false, true); method.label(skip); } return; case EQ: case EQ_STRICT: codegen.loadComparisonOperands(binaryNode); method.conditionalJump(state ? EQ : NE, true, label); return; case NE: case NE_STRICT: codegen.loadComparisonOperands(binaryNode); method.conditionalJump(state ? NE : EQ, true, label); return; case GE: codegen.loadComparisonOperands(binaryNode); method.conditionalJump(state ? GE : LT, false, label); return; case GT: codegen.loadComparisonOperands(binaryNode); method.conditionalJump(state ? GT : LE, false, label); return; case LE: codegen.loadComparisonOperands(binaryNode); method.conditionalJump(state ? LE : GT, true, label); return; case LT: codegen.loadComparisonOperands(binaryNode); method.conditionalJump(state ? LT : GE, true, label); return; default: break; } loadTestAndJump(binaryNode, label, state); } private void optimizeLogicalOperand(final Expression expr, final Label label, final boolean state, final boolean isRhs) { final JoinPredecessorExpression jpexpr = (JoinPredecessorExpression)expr; if(LocalVariableConversion.hasLiveConversion(jpexpr)) { final Label after = new Label("after"); branchOptimizer(jpexpr.getExpression(), after, !state); method.beforeJoinPoint(jpexpr); method._goto(label); method.label(after); if(isRhs) { method.beforeJoinPoint(jpexpr); } } else { branchOptimizer(jpexpr.getExpression(), label, state); } } private void branchOptimizer(final Expression node, final Label label, final boolean state) { if (node instanceof BinaryNode) { branchOptimizer((BinaryNode)node, label, state); return; } if (node instanceof UnaryNode) { branchOptimizer((UnaryNode)node, label, state); return; } loadTestAndJump(node, label, state); } private void loadTestAndJump(final Expression node, final Label label, final boolean state) { codegen.loadExpressionAsBoolean(node); if (state) { method.ifne(label); } else { method.ifeq(label); } } }
⏎ jdk/nashorn/internal/codegen/BranchOptimizer.java
Or download all of them as a single archive file:
File name: jdk.scripting.nashorn-11.0.1-src.zip File size: 1390965 bytes Release date: 2018-11-04 Download
⇒ JDK 11 jdk.scripting.nashorn.shell.jmod - Scripting Nashorn Shell Module
2020-04-25, 107287👍, 0💬
Popular Posts:
What Is ojdbc7.jar for Oracle 12c R1? ojdbc7.jar for Oracle 12c R1 is the JAR files of ojdbc.jar, JD...
Java Architecture for XML Binding (JAXB) is a Java API that allows Java developers to map Java class...
commons-fileupload-1.3.3 -sources.jaris the source JAR file for Apache Commons FileUpload 1.3., whic...
What Is js.jar in Rhino JavaScript 1.7R5? js.jar in Rhino JavaScript 1.7R5 is the JAR file for Rhino...
What Is poi-contrib-3.5.jar? poi-contrib-3.5.jar is one of the JAR files for Apache POI 3.5, which p...