/src/serenity/Userland/Libraries/LibJS/Bytecode/ScopedOperand.cpp
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2024, Andreas Kling <kling@serenityos.org> |
3 | | * |
4 | | * SPDX-License-Identifier: BSD-2-Clause |
5 | | */ |
6 | | |
7 | | #include <LibJS/Bytecode/Generator.h> |
8 | | #include <LibJS/Bytecode/ScopedOperand.h> |
9 | | |
10 | | namespace JS::Bytecode { |
11 | | |
12 | | ScopedOperandImpl::~ScopedOperandImpl() |
13 | 203k | { |
14 | 203k | if (!m_generator.is_finished() && m_operand.is_register() && m_operand.as_register().index() >= Register::reserved_register_count) |
15 | 6 | m_generator.free_register(m_operand.as_register()); |
16 | 203k | } |
17 | | |
18 | | Register Operand::as_register() const |
19 | 12 | { |
20 | 12 | return Register { m_index }; |
21 | 12 | } |
22 | | |
23 | | } |