Orfeas Menis-Mastromichalakis

28 papers A* 1A 1B 2Misc 1Journal 17Unranked 6
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Mike A. Merrill, Alexander Glenn Shaw, Nicholas Carlini, Boxuan Li, Harsh Raj, Ivan Bercovich, Lin Shi, Jeong Yeon Shin, Thomas Walshe, Estefany Kelly Buchanan, Junhong Shen, Guanghao Ye, Haowei Lin, Jason Poulos, Maoyu Wang, Marianna Nezhurina, Jenia Jitsev, Di Lu, Orfeas Menis-Mastromichalakis, Zhiwei Xu, Zizhao Chen, Yue Liu, Robert Zhang, Leon Liangyu Chen, Anurag Kashyap, Jan-Lucas Uslu, Jeffrey Li, Jianbo Wu, Minghao Yan, Song Bian, Vedang Sharma, Ke Sun, Steven Dillmann, Akshay Anand, Andrew Lanpouthakoun, Bardia Koopah, Changran Hu, Etash Kumar Guha, Gabriel H. S. Dreiman, Jiacheng Zhu, Karl Krauth, Li Zhong, Niklas Muennighoff, Robert Amanfu, Shangyin Tan, Shreyas Pimpalgaonkar, Tushar Aggarwal, Xiangning Lin, Xin Lan, Xuandong Zhao, Yiqing Liang, Yuanli Wang, Zilong Wang, Changzhi Zhou, David Heineman, Hange Liu, Harsh Trivedi, John Yang, Junhong Lin, Manish Shetty, Michael Yang, Nabil Omi, Negin Raoof, Shanda Li, Terry Yue Zhuo, Wuwei Lin, Yiwei Dai, Yuxin Wang, Wenhao Chai, Shang Zhou, Dariush Wahdany, Ziyu She, Jiaming Hu, Zhikang Dong, Yuxuan Zhu, Sasha Cui, Ahson Saiyed, Arinbjörn Kolbeinsson, Jesse Hu, Christopher Michael Rytting, Ryan Marten, Yixin Wang, Alex Dimakis, Andy Konwinski, Ludwig Schmidt
2025 J jnl
CoRR
Iraklis Premptis, Maria Lymperaiou, Giorgos Filandrianos, Orfeas Menis-Mastromichalakis, Athanasios Voulodimos, Giorgos Stamou
2025 J jnl
CoRR
Orfeas Menis-Mastromichalakis, Giorgos Filandrianos, Maria Symeonaki, Giorgos Stamou
2025 A* conf
EMNLP
Orfeas Menis-Mastromichalakis, Giorgos Filandrianos, Maria Symeonaki, Giorgos Stamou
2025 conf
xAI (Late-breaking Work, Demos, Doctoral Consortium)
Orfeas Menis-Mastromichalakis, Jason Liartis, Giorgos Stamou
2025 conf
ACL (1)
Orfeas Menis-Mastromichalakis, Jason Liartis, Kristina Rose, Antoine Isaac, Giorgos Stamou
2025 J jnl
CoRR
Orfeas Menis-Mastromichalakis, Jason Liartis, Kristina Rose, Antoine Isaac, Giorgos Stamou
2025 J jnl
CoRR
Giorgos Filandrianos, Orfeas Menis-Mastromichalakis, Wafaa Mohammed, Giuseppe Attanasio, Chrysoula Zerva
2025 Misc conf
ICASSP
Theodoros Sotirou, Vassilis Lyberatos, Orfeas Menis-Mastromichalakis, Giorgos Stamou
2024 J jnl
CoRR
Orfeas Menis-Mastromichalakis, Jason Liartis, Giorgos Stamou
2024 J jnl
Hum. Comput.
Vassilis Lyberatos, Spyridon Kantarelis, Eirini Kaldeli, Spyros Bekiaris, Panagiotis Tzortzis, Orfeas Menis-Mastromichalakis, Giorgos Stamou
2024 J jnl
CoRR
Orfeas Menis-Mastromichalakis, Natasa Sofou, Giorgos Stamou
2024 J jnl
CoRR
Orfeas Menis-Mastromichalakis, Giorgos Filandrianos, Eva Tsouparopoulou, Dimitris Parsanoglou, Maria Symeonaki, Giorgos Stamou
2024 J jnl
CoRR
Theodoros Sotirou, Vassilis Lyberatos, Orfeas Menis-Mastromichalakis, Giorgos Stamou
2024 conf
AAAI Spring Symposia
Orfeas Menis-Mastromichalakis, Edmund Dervakos, Alexandros Chortaras, Giorgos Stamou
2024 J jnl
Semantic Web
Jason Liartis, Edmund Dervakos, Orfeas Menis-Mastromichalakis, Alexandros Chortaras, Giorgos Stamou
2024 J jnl
CoRR
Orfeas Menis-Mastromichalakis, Giorgos Filandrianos, Jason Liartis, Edmund Dervakos, Giorgos Stamou
2024 A conf
CIKM
Orfeas Menis-Mastromichalakis, Giorgos Filandrianos, Jason Liartis, Edmund Dervakos, Giorgos Stamou
2023 conf
ACL (Findings)
George Filandrianos, Edmund Dervakos, Orfeas Menis-Mastromichalakis, Chrysoula Zerva, Giorgos Stamou
2023 J jnl
CoRR
Giorgos Filandrianos, Edmund Dervakos, Orfeas Menis-Mastromichalakis, Chrysoula Zerva, Giorgos Stamou
2023 J jnl
CoRR
Vassilis Lyberatos, Spyridon Kantarelis, Eirini Kaldeli, Spyros Bekiaris, Panagiotis Tzortzis, Orfeas Menis-Mastromichalakis, Giorgos Stamou
2022 J jnl
CoRR
Edmund Dervakos, Orfeas Menis-Mastromichalakis, Alexandros Chortaras, Giorgos Stamou
2022 B conf
COLING
Maria Lymperaiou, George Manoliadis, Orfeas Menis-Mastromichalakis, Edmund G. Dervakos, Giorgos Stamou
2022 J jnl
CoRR
Maria Lymperaiou, George Manoliadis, Orfeas Menis-Mastromichalakis, Edmund G. Dervakos, Giorgos Stamou
2021 J jnl
Inf.
Eirini Kaldeli, Orfeas Menis-Mastromichalakis, Spyros Bekiaris, Maria Ralli, Vassilis Tzouvaras, Giorgos Stamou
2021 conf
DAO-XAI
Jason Liartis, Edmund Dervakos, Orfeas Menis-Mastromichalakis, Alexandros Chortaras, Giorgos Stamou
2020 conf
SMAP
Maria Ralli, Spyros Bekiaris, Eirini Kaldeli, Orfeas Menis-Mastromichalakis, Natasa Sofou, Vassilis Tzouvaras, Giorgos Stamou
2020 B conf
IJCNN
Orfeas Menis-Mastromichalakis, Natasa Sofou, Giorgos Stamou
tests/unit/test_decompile_arch.py
← Index tests/unit/test_decompile_arch.py python
"""Unit tests for architecture modules:
- bninja/arch/creator.py
- bninja/arch/x86.py
"""
import sys
import pytest

# Install binaryninja stubs before importing arch modules
from tests.unit.conftest_binja_stubs import install_binja_stubs
install_binja_stubs()

from redb.extractors.decompiler.bninja.arch.creator import ArchitectureCreator
from redb.extractors.decompiler.bninja.arch.x86 import Arch_x86


# ============================================================================
# 3a. ArchitectureCreator
# ============================================================================

class TestArchitectureCreator:
    def test_create_x86(self):
        arch = ArchitectureCreator("x86").get()
        assert isinstance(arch, Arch_x86)

    def test_create_x86_case_insensitive(self):
        for name in ["X86", "x86", "X86"]:
            arch = ArchitectureCreator(name).get()
            assert isinstance(arch, Arch_x86)

    def test_unsupported_arch_raises(self):
        with pytest.raises(ValueError, match="Unsupported architecture"):
            ArchitectureCreator("arm").get()


# ============================================================================
# 3b. Arch_x86
# ============================================================================

class TestArch_x86Registers:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_is_register_valid(self):
        assert self.arch.is_register("RAX") is True
        assert self.arch.is_register("eax") is True
        assert self.arch.is_register("XMM0") is True

    def test_is_register_invalid(self):
        assert self.arch.is_register("INVALID_REG") is False

    def test_is_general_purpose_register(self):
        assert self.arch.is_general_purpose_register("RAX") is True
        assert self.arch.is_general_purpose_register("XMM0") is False

    def test_is_stack_register(self):
        assert self.arch.is_stack_register("RSP") is True
        assert self.arch.is_stack_register("RBP") is True
        assert self.arch.is_stack_register("RAX") is False

    def test_is_xmm_register(self):
        assert self.arch.is_xmm_register("XMM0") is True
        assert self.arch.is_xmm_register("RAX") is False


class TestArch_x86OpcodeCategories:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_opcode_categories_populated(self):
        assert len(self.arch.opcode_categories) > 0

    def test_opcode_mov_category(self):
        assert self.arch.opcode_categories["MOV"] == "DATA_MOVEMENT"

    def test_opcode_call_category(self):
        assert self.arch.opcode_categories["CALL"] == "CONTROL_FLOW"

    def test_opcode_add_category(self):
        assert self.arch.opcode_categories["ADD"] == "ARITHMETIC"


class TestArch_x86ControlFlow:
    def setup_method(self):
        self.arch = Arch_x86()

    def test_is_control_flow_instruction_by_mnemonic(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("JMP") is True
        assert self.arch.is_control_flow_instruction_by_mnemonic("MOV") is False

    def test_is_control_flow_instruction_call(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("CALL") is True

    def test_is_control_flow_instruction_ret(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("RET") is True

    def test_is_control_flow_instruction_loop(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("LOOP") is True

    def test_is_control_flow_instruction_empty(self):
        assert self.arch.is_control_flow_instruction_by_mnemonic("") is False
        assert self.arch.is_control_flow_instruction_by_mnemonic(None) is False