Instruction: dup2_x2
Wiki References
Note: Before reading wiki pages, clone the wiki repository if .wiki/ directory does not exist:
git clone git@github.com:LSantha/jnode_ai.wiki.git .wiki
Agent Instructions
-
Read Spec Pages:
-
Read Wiki Pages:
- First, check if
.wiki/ directory exists. If not, clone it:
git clone git@github.com:LSantha/jnode_ai.wiki.git .wiki
- Review
JIT-Compilers.md to understand the 3-tier compilation model.
- Review
L1-Compiler.md for L1A/L1B implementation details.
- Review
L2-Compiler-Deep-Dive.md for L2 specifics.
- Review
Type-System-Internals.md for type/category rules that affect stack and local-variable handling.
-
Analyze Implementations:
Focus on the JNode bytecode parser, visitor contract, and all compiler implementations that can execute or lower this instruction:
- Parser / opcode dispatch:
core/src/core/org/jnode/vm/bytecode/BytecodeParser.java
- Visitor contract:
core/src/core/org/jnode/vm/bytecode/BytecodeVisitor.java
- l1a:
core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java
- l1b:
core/src/core/org/jnode/vm/x86/compiler/l1b/X86BytecodeVisitor.java
- l2 support:
core/src/core/org/jnode/vm/x86/compiler/l2/L2ByteCodeSupportChecker.java
- l2 code generation:
core/src/core/org/jnode/vm/x86/compiler/l2/GenericX86CodeGenerator.java
- Operand stack behavior:
core/src/core/org/jnode/vm/x86/compiler/l1a/ItemStack.java, core/src/core/org/jnode/vm/x86/compiler/l1b/ItemStack.java, core/src/core/org/jnode/vm/x86/compiler/l1a/VirtualStack.java, core/src/core/org/jnode/vm/x86/compiler/l1b/VirtualStack.java
- Local variable / frame behavior:
core/src/core/org/jnode/vm/x86/compiler/l1a/X86StackFrame.java, core/src/core/org/jnode/vm/x86/compiler/l1b/X86StackFrame.java, core/src/core/org/jnode/vm/x86/compiler/l2/X86StackFrame.java
For dup2_x2, also focus on this instruction family context: operand stack manipulation.
core/src/core/org/jnode/vm/bytecode/BytecodeVisitor.java — visitor method signatures for stack manipulation instructions.
core/src/core/org/jnode/vm/x86/compiler/l1a/ItemStack.java and core/src/core/org/jnode/vm/x86/compiler/l1b/ItemStack.java — operand stack item/category bookkeeping.
core/src/core/org/jnode/vm/x86/compiler/l1a/VirtualStack.java and core/src/core/org/jnode/vm/x86/compiler/l1b/VirtualStack.java — stack push/pop/dup/swap behavior.
core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java and core/src/core/org/jnode/vm/x86/compiler/l1b/X86BytecodeVisitor.java — instruction lowering.
core/src/core/org/jnode/vm/x86/compiler/l2/L2ByteCodeSupportChecker.java and core/src/core/org/jnode/vm/x86/compiler/l2/GenericX86CodeGenerator.java — L2 support and code generation.
-
Verify Spec Compliance:
Check the implementation against the dup2_x2 spec page and the JNode code focus above. In particular, verify:
- Verify the operand stack effect exactly matches the spec, including category-2 value handling.
- Check that invalid stack forms that should be rejected by verification are not silently accepted by compiler assumptions.
- Check that no stack item is lost, duplicated incorrectly, or assigned the wrong category.
- For L2, verify support decisions and code generation agree with the stack effect.
-
Document Results:
Add a comment to this issue with the following format. Do not open a PR and do not change source code or wiki pages for this ticket.
Spec compliance report
| Compiler |
Status |
Issues |
| l1a |
✅ PASS / ❌ FAIL / ⚠️ PARTIAL |
|
| l1b |
✅ PASS / ❌ FAIL / ⚠️ PARTIAL |
|
| l2 |
✅ PASS / ❌ FAIL / ⚠️ PARTIAL |
|
Details
l1a Implementation
- Status: ✅ PASS / ❌ FAIL / ⚠️ PARTIAL
- Files:
core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:<line>, plus any stack/local helper files that affect dup2_x2
- Issues: <specific issues with line numbers or "None">
l1b Implementation
- Status: ✅ PASS / ❌ FAIL / ⚠️ PARTIAL
- Files:
core/src/core/org/jnode/vm/x86/compiler/l1b/X86BytecodeVisitor.java:<line>, plus any stack/local helper files that affect dup2_x2
- Issues: <specific issues with line numbers or "None">
l2 Implementation
- Status: ✅ PASS / ❌ FAIL / ⚠️ PARTIAL
- Files:
core/src/core/org/jnode/vm/x86/compiler/l2/L2ByteCodeSupportChecker.java:<line>, core/src/core/org/jnode/vm/x86/compiler/l2/GenericX86CodeGenerator.java:<line>
- Issues: <specific issues with line numbers or "None">
IMPORTANT: No changes to source code or wiki are permitted. This is a read-only analysis task. The expected outcome is a single issue comment containing the spec compliance report above, with JVM spec references and JNode file references.
Instruction: dup2_x2
Wiki References
Agent Instructions
Read Spec Pages:
dup2_x2: https://docs.oracle.com/javase/specs/jvms/se6/html/Instructions2.doc3.htmldup2_x2.Read Wiki Pages:
.wiki/directory exists. If not, clone it:git clone git@github.com:LSantha/jnode_ai.wiki.git .wikiJIT-Compilers.mdto understand the 3-tier compilation model.L1-Compiler.mdfor L1A/L1B implementation details.L2-Compiler-Deep-Dive.mdfor L2 specifics.Type-System-Internals.mdfor type/category rules that affect stack and local-variable handling.Analyze Implementations:
Focus on the JNode bytecode parser, visitor contract, and all compiler implementations that can execute or lower this instruction:
core/src/core/org/jnode/vm/bytecode/BytecodeParser.javacore/src/core/org/jnode/vm/bytecode/BytecodeVisitor.javacore/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.javacore/src/core/org/jnode/vm/x86/compiler/l1b/X86BytecodeVisitor.javacore/src/core/org/jnode/vm/x86/compiler/l2/L2ByteCodeSupportChecker.javacore/src/core/org/jnode/vm/x86/compiler/l2/GenericX86CodeGenerator.javacore/src/core/org/jnode/vm/x86/compiler/l1a/ItemStack.java,core/src/core/org/jnode/vm/x86/compiler/l1b/ItemStack.java,core/src/core/org/jnode/vm/x86/compiler/l1a/VirtualStack.java,core/src/core/org/jnode/vm/x86/compiler/l1b/VirtualStack.javacore/src/core/org/jnode/vm/x86/compiler/l1a/X86StackFrame.java,core/src/core/org/jnode/vm/x86/compiler/l1b/X86StackFrame.java,core/src/core/org/jnode/vm/x86/compiler/l2/X86StackFrame.javaFor
dup2_x2, also focus on this instruction family context: operand stack manipulation.core/src/core/org/jnode/vm/bytecode/BytecodeVisitor.java— visitor method signatures for stack manipulation instructions.core/src/core/org/jnode/vm/x86/compiler/l1a/ItemStack.javaandcore/src/core/org/jnode/vm/x86/compiler/l1b/ItemStack.java— operand stack item/category bookkeeping.core/src/core/org/jnode/vm/x86/compiler/l1a/VirtualStack.javaandcore/src/core/org/jnode/vm/x86/compiler/l1b/VirtualStack.java— stack push/pop/dup/swap behavior.core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.javaandcore/src/core/org/jnode/vm/x86/compiler/l1b/X86BytecodeVisitor.java— instruction lowering.core/src/core/org/jnode/vm/x86/compiler/l2/L2ByteCodeSupportChecker.javaandcore/src/core/org/jnode/vm/x86/compiler/l2/GenericX86CodeGenerator.java— L2 support and code generation.Verify Spec Compliance:
Check the implementation against the
dup2_x2spec page and the JNode code focus above. In particular, verify:Document Results:
Add a comment to this issue with the following format. Do not open a PR and do not change source code or wiki pages for this ticket.
Spec compliance report
Details
l1a Implementation
core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:<line>, plus any stack/local helper files that affectdup2_x2l1b Implementation
core/src/core/org/jnode/vm/x86/compiler/l1b/X86BytecodeVisitor.java:<line>, plus any stack/local helper files that affectdup2_x2l2 Implementation
core/src/core/org/jnode/vm/x86/compiler/l2/L2ByteCodeSupportChecker.java:<line>,core/src/core/org/jnode/vm/x86/compiler/l2/GenericX86CodeGenerator.java:<line>IMPORTANT: No changes to source code or wiki are permitted. This is a read-only analysis task. The expected outcome is a single issue comment containing the spec compliance report above, with JVM spec references and JNode file references.