Results 1 -
3 of
3
C-: A Portable Assembly Language
"... . Of late it has become very common for research compilers to emit C as their target code, relying on a C compiler to generate machine code. In effect, C is being used as a portable compiler target language. It offers a simple and effective way of avoiding the need to re-implement effective regi ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
. Of late it has become very common for research compilers to emit C as their target code, relying on a C compiler to generate machine code. In effect, C is being used as a portable compiler target language. It offers a simple and effective way of avoiding the need to re-implement effective register allocation, instruction selection, and instruction scheduling, and so on, all for a variety of target architectures. The trouble is that C was designed as a programming language not as a compiler target language, and is not very suitable for the latter purpose. The obvious thing to do is to define a language that is designed as a portable target language. This paper describes C--, a portable compiler target language, or assembler. C-- has to strike a balance between being high-level enough to allow the back end a fair crack of the whip, while being low level enough to give the front end the control it needs. It is not clear that a path exists between these two rocks; the ghos...
Compiling For Multithreaded Architectures
, 1999
"... : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : xvi Chapter 1 INTRODUCTION : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 1.1 Latency Tolerant Architectures : : : : : : : : : : : : : : : : : : : : : 1 1.2 Exploiting Thread Level Parallelism : : : : : : : : : : : ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : xvi Chapter 1 INTRODUCTION : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 1.1 Latency Tolerant Architectures : : : : : : : : : : : : : : : : : : : : : 1 1.2 Exploiting Thread Level Parallelism : : : : : : : : : : : : : : : : : : : 4 1.3 Multithreaded Models : : : : : : : : : : : : : : : : : : : : : : : : : : 5 1.4 Motivation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 8 1.5 Claim of Originality : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 1.6 Synopsis : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 15 2 EARTH ARCHITECTURE, EARTH-MANNA SYSTEM, AND PROGRAMMING LANGUAGES : : : : : : : : : : : : : : : : : : : : 18 2.1 EARTH Multithreading Model : : : : : : : : : : : : : : : : : : : : : 18 2.1.1 EARTH Architecture : : : : : : : : : : : : : : : : : : : : : : 19 2.1.2 EARTH Synchronization : : : : : : : : : : : : : : : : : : : : 21 2.2 EARTH-MANNA Syst...
The triVM intermediate language reference manual
, 2002
"... this report . . . . . . . . . . . . . . . . . . . . . . . 7 2 The triVM Virtual Machine 9 2.1 Virtual Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 Condition Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 Memory Hierarchy . . . . . . . . . . . . . . . . . ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
this report . . . . . . . . . . . . . . . . . . . . . . . 7 2 The triVM Virtual Machine 9 2.1 Virtual Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 Condition Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 Memory Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 Addressing Modes . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.5 Procedure Calling Mechanism . . . . . . . . . . . . . . . . . . . . 13 3 Number Formats and Data Storage 16 3.1 Integer Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 Floating Point Numbers . . . . . . . . . . . . . . . . . . . . . . . 17 3.3 Accessing Multi-byte Data . . . . . . . . . . . . . . . . . . . . . . 17 4 Single Assignment Behaviour 19 4.1 Conversion into SSA Form . . . . . . . . . . . . . . . . . . . . . . 19 4.2 Variable Renaming . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3 Control Flow and Phi-Functions . . . . . . . . . . . . . . . . . . 20 5 Intermediate Language Directives 22 5.1 Identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.2 Structural Directives . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.3 Data Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.4 Complete Scoping Example . . . . . . . . . . . . . . . . . . . . . 24 5.5 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6 The Virtual Instruction Set 27 6.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.2 add --- integer add . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.3 and --- bitwise AND . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.4 asr --- arithmetic shift right . . . . . . . . . . . . . . . . . . . . . 31 6.5 bae --- branch if...

