001 /* 002 * This file is part of the Jikes RVM project (http://jikesrvm.org). 003 * 004 * This file is licensed to You under the Eclipse Public License (EPL); 005 * You may not use this file except in compliance with the License. You 006 * may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/eclipse-1.0.php 009 * 010 * See the COPYRIGHT.txt file distributed with this work for information 011 * regarding copyright ownership. 012 */ 013 package org.jikesrvm.compilers.common.assembler.ia32; 014 015 /** 016 * Constants exported by the assembler 017 */ 018 public interface AssemblerConstants { 019 String[] CONDITION = 020 {"O", "NO", "LLT", "LGE", "EQ", "NE", "LLE", "LGT", "S", "NS", "PE", "PO", "LT", "GE", "LE", "GT"}; 021 022 /** OF == 1 - overflow */ 023 byte O = 0x0; 024 /** OF == 0 - not overflow */ 025 byte NO = 0x1; 026 /** CF == 1 - logically less than (below) */ 027 byte LLT = 0x2; 028 /** CF == 0 - logically greater than or equal (not below) */ 029 byte LGE = 0x3; 030 /** ZF == 1 - equal (zero) */ 031 byte EQ = 0x4; 032 /** ZF == 0 - not equal (not zero) */ 033 byte NE = 0x5; 034 /** CF == 1 or ZF == 1 - logically less than or equal (not above) */ 035 byte LLE = 0x6; 036 /** CF == 0 and ZF == 0 - logically greater than (above) */ 037 byte LGT = 0x7; 038 byte S = 0x8; // SF == 1 - (sign) negative?? 039 byte NS = 0x9; // SF == 0 - (not sign) positive or zero?? 040 /** PF == 1 - even parity or unordered floating point #s */ 041 byte PE = 0xA; 042 /** PF == 0 - odd parity or ordered floating point #s */ 043 byte PO = 0xB; 044 /** SF != OF - less than */ 045 byte LT = 0xC; 046 /** SF == OF - greater than or equal (not less than) */ 047 byte GE = 0xD; 048 /** ZF == 1 or SF != OF - less than or equal (not greater than) */ 049 byte LE = 0xE; 050 /** ZF == 0 and SF == OF - greater than */ 051 byte GT = 0xF; 052 053 // scale factors for SIB bytes 054 short BYTE = 0; 055 short SHORT = 1; 056 short WORD = 2; 057 short LONG = 3; 058 059 }