Browse Source

+ nasmelf mode for BeOS
+ DQWORD directive in intel assembler mode

florian 22 years ago
parent
commit
11c5331fbf
3 changed files with 40 additions and 5 deletions
  1. 25 1
      compiler/i386/ag386nsm.pas
  2. 9 3
      compiler/i386/ra386int.pas
  3. 6 1
      compiler/systems.pas

+ 25 - 1
compiler/i386/ag386nsm.pas

@@ -890,17 +890,41 @@ interface
               '.stab','.stabstr','')
               '.stab','.stabstr','')
           );
           );
 
 
+       as_i386_nasmbeos_info : tasminfo =
+          (
+            id           : as_i386_nasmbeos;
+            idtxt  : 'NASMELF';
+            asmbin : 'nasm';
+            asmcmd : '-f elf -o $OBJ $ASM';
+            supported_target : system_i386_beos;
+            outputbinary: false;
+            allowdirect : true;
+            needar : true;
+            labelprefix_only_inside_procedure: false;
+            labelprefix : '..@';
+            comment : '; ';
+            secnames : ('',
+              '.text','.data','.bss',
+              '.idata2','.idata4','.idata5','.idata6','.idata7','.edata',
+              '.stab','.stabstr','')
+          );
+
 
 
 initialization
 initialization
   RegisterAssembler(as_i386_nasmcoff_info,T386NasmAssembler);
   RegisterAssembler(as_i386_nasmcoff_info,T386NasmAssembler);
   RegisterAssembler(as_i386_nasmwin32_info,T386NasmAssembler);
   RegisterAssembler(as_i386_nasmwin32_info,T386NasmAssembler);
   RegisterAssembler(as_i386_nasmwdosx_info,T386NasmAssembler);
   RegisterAssembler(as_i386_nasmwdosx_info,T386NasmAssembler);
   RegisterAssembler(as_i386_nasmobj_info,T386NasmAssembler);
   RegisterAssembler(as_i386_nasmobj_info,T386NasmAssembler);
+  RegisterAssembler(as_i386_nasmbeos_info,T386NasmAssembler);
   RegisterAssembler(as_i386_nasmelf_info,T386NasmAssembler);
   RegisterAssembler(as_i386_nasmelf_info,T386NasmAssembler);
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.41  2003-10-21 15:15:36  peter
+  Revision 1.42  2003-11-29 15:53:06  florian
+    + nasmelf mode for BeOS
+    + DQWORD directive in intel assembler mode
+
+  Revision 1.41  2003/10/21 15:15:36  peter
     * taicpu_abstract.oper[] changed to pointers
     * taicpu_abstract.oper[] changed to pointers
 
 
   Revision 1.40  2003/10/01 20:34:49  peter
   Revision 1.40  2003/10/01 20:34:49  peter

+ 9 - 3
compiler/i386/ra386int.pas

@@ -41,7 +41,7 @@ Unit Ra386int;
        {------------------ Assembler directives --------------------}
        {------------------ Assembler directives --------------------}
       AS_DB,AS_DW,AS_DD,AS_END,
       AS_DB,AS_DW,AS_DD,AS_END,
        {------------------ Assembler Operators  --------------------}
        {------------------ Assembler Operators  --------------------}
-      AS_BYTE,AS_WORD,AS_DWORD,AS_QWORD,AS_TBYTE,AS_NEAR,AS_FAR,
+      AS_BYTE,AS_WORD,AS_DWORD,AS_QWORD,AS_TBYTE,AS_DQWORD,AS_NEAR,AS_FAR,
       AS_HIGH,AS_LOW,AS_OFFSET,AS_SEG,AS_TYPE,AS_PTR,AS_MOD,AS_SHL,AS_SHR,AS_NOT,
       AS_HIGH,AS_LOW,AS_OFFSET,AS_SEG,AS_TYPE,AS_PTR,AS_MOD,AS_SHL,AS_SHR,AS_NOT,
       AS_AND,AS_OR,AS_XOR);
       AS_AND,AS_OR,AS_XOR);
 
 
@@ -114,7 +114,7 @@ Unit Ra386int;
        { problems with shl,shr,not,and,or and xor, they are }
        { problems with shl,shr,not,and,or and xor, they are }
        { context sensitive.                                 }
        { context sensitive.                                 }
        _asmoperators : array[0.._count_asmoperators] of tasmkeyword = (
        _asmoperators : array[0.._count_asmoperators] of tasmkeyword = (
-        'BYTE','WORD','DWORD','QWORD','TBYTE','NEAR','FAR','HIGH',
+        'BYTE','WORD','DWORD','QWORD','TBYTE','DQWORD','NEAR','FAR','HIGH',
         'LOW','OFFSET','SEG','TYPE','PTR','MOD','SHL','SHR','NOT','AND',
         'LOW','OFFSET','SEG','TYPE','PTR','MOD','SHL','SHR','NOT','AND',
         'OR','XOR');
         'OR','XOR');
 
 
@@ -1731,6 +1731,7 @@ Unit Ra386int;
             AS_BYTE,
             AS_BYTE,
             AS_WORD,
             AS_WORD,
             AS_TBYTE,
             AS_TBYTE,
+            AS_DQWORD,
             AS_QWORD :
             AS_QWORD :
               Begin
               Begin
                 { load the size in a temp variable, so it can be set when the
                 { load the size in a temp variable, so it can be set when the
@@ -1741,6 +1742,7 @@ Unit Ra386int;
                   AS_WORD  : size:=2;
                   AS_WORD  : size:=2;
                   AS_BYTE  : size:=1;
                   AS_BYTE  : size:=1;
                   AS_QWORD : size:=8;
                   AS_QWORD : size:=8;
+                  AS_DQWORD : size:=16;
                   AS_TBYTE : size:=extended_size;
                   AS_TBYTE : size:=extended_size;
                 end;
                 end;
                 Consume(actasmtoken);
                 Consume(actasmtoken);
@@ -1975,7 +1977,11 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.66  2003-11-29 14:41:02  peter
+  Revision 1.67  2003-11-29 15:53:06  florian
+    + nasmelf mode for BeOS
+    + DQWORD directive in intel assembler mode
+
+  Revision 1.66  2003/11/29 14:41:02  peter
     * support type()
     * support type()
 
 
   Revision 1.65  2003/11/12 16:05:39  florian
   Revision 1.65  2003/11/12 16:05:39  florian

+ 6 - 1
compiler/systems.pas

@@ -127,6 +127,7 @@ interface
              ,as_i386_nasmwdosx
              ,as_i386_nasmwdosx
              ,as_i386_nasmelf
              ,as_i386_nasmelf
              ,as_i386_nasmobj
              ,as_i386_nasmobj
+             ,as_i386_nasmbeos
              ,as_i386_tasm
              ,as_i386_tasm
              ,as_i386_masm
              ,as_i386_masm
              ,as_i386_wasm
              ,as_i386_wasm
@@ -648,7 +649,11 @@ finalization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.73  2003-11-17 23:23:47  florian
+  Revision 1.74  2003-11-29 15:53:06  florian
+    + nasmelf mode for BeOS
+    + DQWORD directive in intel assembler mode
+
+  Revision 1.73  2003/11/17 23:23:47  florian
     + first part of arm assembler reader
     + first part of arm assembler reader
 
 
   Revision 1.72  2003/11/12 16:05:39  florian
   Revision 1.72  2003/11/12 16:05:39  florian