• Home
  • Search
  • Efficient Use of Invisible Registers in Thumb Code
  • Open Access IconOpen Access
  • Cite Icon8
  • https://doi.org/10.1109/micro.2005.19Copy DOI Icon

Efficient Use of Invisible Registers in Thumb Code

  • Nov 12, 2005
  • A Krishnaswamy +1 more
Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

The ARM processor is a dual width ISA processor that provides a 16-bit Thumb instruction set in addition to the 32-bit ARM instruction set. The compromises made in designing the Thumb instruction set leads to significantly increased instruction counts. This increase is in part due to the fact that only half of the register file is visible to most instructions in Thumb code. In this paper we address this inefficiency by providing a new instruction, the SetMask instruction, using which the compiler can change the visible subset of registers at any program point. Thus, through the use of this instruction the compiler can make use of all registers in all instructions. We present compiler techniques for allocating invisible registers and introducing SetMask instructions in a manner that the number of introduced instructions is minimized so that the increase in code size is insignificant. We implement this new instruction using the dynamic instruction coalescing framework which enables the SetMask instruction to have zero execution time cost. Our techniques eliminated 11.7% of MOV instructions from Thumb code while causing negligible code size increase.

Similar Papers
  • Research Article
  • Citations24

Dynamic coalescing for 16-bit instructions

  • Feb 01, 2005
  • ACM Transactions on Embedded Computing Systems
  • Arvind Krishnaswamy +1
  • Conference Article
  • Citations71

Profile guided selection of ARM and thumb instructions

  • Jun 19, 2002
  • Arvind Krishnaswamy +1
  • Conference Article
  • Citations17

Code size efficiency in global scheduling for ILP processors

  • Feb 03, 2002
  • Huiyang Zhou +1
  • Conference Article
  • Citations44

Instruction scheduling for clustered VLIW architectures

  • Jan 27, 2017
  • J Sánchez +1
  • Conference Article
  • Citations148

Dynamic overlay of scratchpad memory for energy minimization

  • Jan 01, 2004
  • Manish Verma +2
  • Conference Article
  • Citations13

Queue Register File Optimization Algorithm for QueueCore Processor

  • Oct 01, 2007
  • Arquimedes Canedo +2
  • Conference Article
  • Citations49

Faster laziness using dynamic pointer tagging

  • Oct 01, 2007
  • Simon Marlow +2
  • Research Article
  • Citations5

Source Code Analysis to Remove Security Vulnerabilities in Java Socket Programs: A Case Study

  • Jan 31, 2013
  • International Journal of Network Security & Its Applications
  • Natarajan Meghanathan
  • Conference Article
  • Citations7

Using machine learning to predict the code size impact of duplication heuristics in a dynamic compiler

  • Sep 29, 2021
  • Raphael Mosaner +3
  • Conference Article
  • Citations18

High performance code compression architecture for the embedded ARM/THUMB processor

  • Apr 14, 2004
  • X H Xu +2
  • PDF
  • Research Article
  • Citations4

A CASE FOR HYBRID INSTRUCTION ENCODING FOR REDUCING CODE SIZE IN EMBEDDED SYSTEM-ON-CHIPS BASED ON RISC PROCESSOR CORES

  • Mar 01, 2014
  • Journal of Computer Science
  • Bakthavatsalam
  • Research Article
  • Citations12

Dynamic code duplication with vulnerability awareness for soft error detection on VLIW architectures

  • Jan 01, 2013
  • ACM Transactions on Architecture and Code Optimization
  • Jongwon Lee +4
  • Conference Article
  • Citations2

Implementing dynamic implied addressing mode for multi-output instructions

  • Oct 24, 2010
  • Jonghee M Youn +4
  • PDF
  • Research Article
  • Citations2

Агрессивная инлайн-подстановка функций для VLIW-архитектур

  • Jan 01, 2015
  • Proceedings of the Institute for System Programming of the RAS
  • A Ermolitckii +4
  • Conference Article
  • Citations7

Developing embedded multi-threaded applications with CATAPULTS, a domain-specific language for generating thread schedulers

  • Sep 24, 2005
  • Matthew D Roper +1
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.