asm: rename TEXT, DATA, CONST macros to SEG_TEXT, SEG_DATA and SEG_CONST

Defining certain keywords in nasm makes it go haywire.
See, https://bugzilla.nasm.us/show_bug.cgi?id=3392505

$ cat 1.asm
%define TEXT  _TEXT     align=1 public use32 class=CODE FLAT
%define DATA  _DATA     align=4 public use32 class=DATA FLAT
%define CONST CONST2    align=4 public use32 class=DATA FLAT

segment TEXT
segment DATA
segment CONST

$ nasm -E 1.asm
%line 4+1 1.asm

[segment _TEXT align=1 public use32 class=CODE FLAT]
[segment _DATA align=4 public use32 class=_DATA align=4 public use32 class=DATA FLAT FLAT]
[segment CONST2 align=4 public use32 class=_DATA align=4 public use32 class=_DATA align=4 public use32 class=DATA FLAT FLAT FLAT]

Either this (with nasm-2.0..nasm-2.09.xx), or it errors out with:
1.asm:6: error: interminable macro recursion
1.asm:7: error: interminable macro recursion
... which happens with nasm-2.10.xx-nasm-2.13.01

The glide3 tree uses this for Watcom builds / obj output format,
and the result is not what is intended.  After the renaming, it
works as expected:

$ cat 1.asm
%define SEG_TEXT   _TEXT    align=1 public use32 class=CODE FLAT
%define SEG_DATA   _DATA    align=4 public use32 class=DATA FLAT
%define SEG_CONST CONST2    align=4 public use32 class=DATA FLAT

segment SEG_TEXT
segment SEG_DATA
segment SEG_CONST

$ nasm -E 1.asm
%line 4+1 1.asm

[segment _TEXT align=1 public use32 class=CODE FLAT]
[segment _DATA align=4 public use32 class=DATA FLAT]
[segment CONST2 align=4 public use32 class=DATA FLAT]
This commit is contained in:
sezero
2018-08-16 21:11:10 +03:00
parent 9d646ac504
commit e6797e4fd8
27 changed files with 142 additions and 147 deletions

View File

@@ -31,7 +31,6 @@
;; ;;
;; Revision 1.1.1.1 1999/12/07 21:49:13 joseph ;; Revision 1.1.1.1 1999/12/07 21:49:13 joseph
;; Initial checkin into SourceForge. ;; Initial checkin into SourceForge.
;;
;; ;;
;; 7 5/18/98 12:16p Peter ;; 7 5/18/98 12:16p Peter
;; culling enabling ;; culling enabling
@@ -88,7 +87,7 @@ extrn _FifoMakeRoom, 12
%endif %endif
%ENDMACRO ; WRITE_MM1LOW_FIFO %ENDMACRO ; WRITE_MM1LOW_FIFO
segment DATA segment SEG_DATA
One DD 1.0 One DD 1.0
Area DD 0 Area DD 0
%IF GLIDE_PACKED_RGB %IF GLIDE_PACKED_RGB
@@ -96,7 +95,7 @@ segment DATA
bias1 DD 0 bias1 DD 0
%ENDIF %ENDIF
segment CONST segment SEG_CONST
$T2003 DD 12288.0 $T2003 DD 12288.0
$T2005 DD 1.0 $T2005 DD 1.0
$T2006 DD 256.0 $T2006 DD 256.0
@@ -125,7 +124,7 @@ Y equ 4
;; enables/disables trisProcessed and trisDrawn counters ;; enables/disables trisProcessed and trisDrawn counters
%define STATS 1 %define STATS 1
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
PROC_TYPE _trisetup_cull PROC_TYPE _trisetup_cull

View File

@@ -107,9 +107,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WIN32 %if XOS == XOS_WIN32
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rdata align=32 %define SEG_CONST .rdata align=32
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -122,9 +122,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_DJGPP %if XOS == XOS_DJGPP
%define TEXT .text %define SEG_TEXT .text
%define DATA .data %define SEG_DATA .data
%define CONST .rodata %define SEG_CONST .rodata
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -137,9 +137,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_LINUX %if XOS == XOS_LINUX
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rodata align=32 %define SEG_CONST .rodata align=32
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -152,9 +152,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WATCD %if XOS == XOS_WATCD
%define TEXT _TEXT align=1 public use32 class=CODE FLAT %define SEG_TEXT _TEXT align=1 public use32 class=CODE FLAT
%define DATA _DATA align=4 public use32 class=DATA FLAT %define SEG_DATA _DATA align=4 public use32 class=DATA FLAT
%define CONST CONST2 align=4 public use32 class=DATA FLAT %define SEG_CONST CONST2 align=4 public use32 class=DATA FLAT
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]

View File

@@ -120,7 +120,7 @@ _texData$ equ 24 + STACKOFFSET
; ;
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32

View File

@@ -69,7 +69,7 @@ CPUTypeP6 equ 6h
;;; References to external data: ;;; References to external data:
segment TEXT segment SEG_TEXT
;; ;;
;; _cpu_detect_asm - detect the type of CPU ;; _cpu_detect_asm - detect the type of CPU
;; ;;
@@ -279,7 +279,6 @@ UnknownVendor:
mov eax, 0ffffffffh mov eax, 0ffffffffh
jmp DoneCpu jmp DoneCpu
endp endp

View File

@@ -106,9 +106,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WIN32 %if XOS == XOS_WIN32
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rdata align=32 %define SEG_CONST .rdata align=32
%endif %endif
@@ -117,9 +117,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_DJGPP %if XOS == XOS_DJGPP
%define TEXT .text %define SEG_TEXT .text
%define DATA .data %define SEG_DATA .data
%define CONST .rodata %define SEG_CONST .rodata
%endif %endif
@@ -128,9 +128,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_LINUX %if XOS == XOS_LINUX
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rodata align=32 %define SEG_CONST .rodata align=32
%endif %endif
@@ -139,8 +139,8 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WATCD %if XOS == XOS_WATCD
%define TEXT _TEXT align=1 public use32 class=CODE FLAT %define SEG_TEXT _TEXT align=1 public use32 class=CODE FLAT
%define DATA _DATA align=4 public use32 class=DATA FLAT %define SEG_DATA _DATA align=4 public use32 class=DATA FLAT
%define CONST CONST2 align=4 public use32 class=DATA FLAT %define SEG_CONST CONST2 align=4 public use32 class=DATA FLAT
%endif %endif

View File

@@ -47,7 +47,7 @@ CPUTypeP6 equ 6h
;;; References to external data: ;;; References to external data:
segment TEXT segment SEG_TEXT
;; ;;
;; _cpu_detect_asm - detect the type of CPU ;; _cpu_detect_asm - detect the type of CPU
;; ;;

View File

@@ -106,9 +106,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WIN32 %if XOS == XOS_WIN32
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rdata align=32 %define SEG_CONST .rdata align=32
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -121,9 +121,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_DJGPP %if XOS == XOS_DJGPP
%define TEXT .text %define SEG_TEXT .text
%define DATA .data %define SEG_DATA .data
%define CONST .rodata %define SEG_CONST .rodata
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -136,9 +136,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_LINUX %if XOS == XOS_LINUX
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rodata align=32 %define SEG_CONST .rodata align=32
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -151,9 +151,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WATCD %if XOS == XOS_WATCD
%define TEXT _TEXT align=1 public use32 class=CODE FLAT %define SEG_TEXT _TEXT align=1 public use32 class=CODE FLAT
%define DATA _DATA align=4 public use32 class=DATA FLAT %define SEG_DATA _DATA align=4 public use32 class=DATA FLAT
%define CONST CONST2 align=4 public use32 class=DATA FLAT %define SEG_CONST CONST2 align=4 public use32 class=DATA FLAT
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]

View File

@@ -54,7 +54,7 @@ CPUTypeP6 equ 6h
;;; References to external data: ;;; References to external data:
segment TEXT segment SEG_TEXT
;; ;;
;; _cpu_detect_asm - detect the type of CPU ;; _cpu_detect_asm - detect the type of CPU
;; ;;

View File

@@ -96,7 +96,7 @@ extrn _FifoMakeRoom
%ENDMACRO ; WRITE_MM1LOW_FIFO %ENDMACRO ; WRITE_MM1LOW_FIFO
segment DATA segment SEG_DATA
One DD 1.0 One DD 1.0
Area DD 0 Area DD 0
@@ -119,7 +119,7 @@ _vc$ equ 12 + STKOFF
X equ 0 X equ 0
Y equ 4 Y equ 4
segment CONST segment SEG_CONST
T2003 DD 12288.0 ; 12288 T2003 DD 12288.0 ; 12288
T2005 DD 1.0 ; 1 T2005 DD 1.0 ; 1
T2006 DD 256.0 ; 256 T2006 DD 256.0 ; 256
@@ -134,7 +134,7 @@ T2006 DD 256.0 ; 256
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32

View File

@@ -30,11 +30,11 @@
extrn _GlideRoot extrn _GlideRoot
extrn _FifoMakeRoom extrn _FifoMakeRoom
segment CONST segment SEG_CONST
ALIGN 8 ALIGN 8
_F256_F256 DD 256.0, 256.0 _F256_F256 DD 256.0, 256.0
segment DATA segment SEG_DATA
ALIGN 8 ALIGN 8
btab DD 0, 0, 0, 0, 0, 0, 0, 0 btab DD 0, 0, 0, 0, 0, 0, 0, 0
atab DD 0, 0, 0, 0, 0, 0, 0, 0 atab DD 0, 0, 0, 0, 0, 0, 0, 0
@@ -42,7 +42,7 @@ vSize DD 0
strideinbytes DD 0 strideinbytes DD 0
vertices DD 0 vertices DD 0
segment TEXT segment SEG_TEXT
_pktype equ 20 _pktype equ 20
_type equ 24 _type equ 24
@@ -3805,14 +3805,14 @@ endp
extrn _GlideRoot extrn _GlideRoot
extrn _FifoMakeRoom extrn _FifoMakeRoom
segment CONST segment SEG_CONST
_F1 DD 1.0 _F1 DD 1.0
_F256 DD 256.0 _F256 DD 256.0
_VPF1 DD 1.0 _VPF1 DD 1.0
_VPF256 DD 256.0 _VPF256 DD 256.0
segment DATA segment SEG_DATA
vSize DD 0 vSize DD 0
ccoow DD 0 ccoow DD 0
packetVal DD 0 packetVal DD 0
@@ -3835,7 +3835,7 @@ xc DD 0
yc DD 0 yc DD 0
zArea DD 0 zArea DD 0
segment TEXT segment SEG_TEXT
%define _pktype 20 %define _pktype 20
%define _type 24 %define _type 24
%define _mode 28 %define _mode 28

View File

@@ -102,9 +102,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WIN32 %if XOS == XOS_WIN32
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rdata align=32 %define SEG_CONST .rdata align=32
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -117,9 +117,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_DJGPP %if XOS == XOS_DJGPP
%define TEXT .text %define SEG_TEXT .text
%define DATA .data %define SEG_DATA .data
%define CONST .rodata %define SEG_CONST .rodata
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -132,9 +132,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_LINUX %if XOS == XOS_LINUX
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rodata align=32 %define SEG_CONST .rodata align=32
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -147,9 +147,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WATCD %if XOS == XOS_WATCD
%define TEXT _TEXT align=1 public use32 class=CODE FLAT %define SEG_TEXT _TEXT align=1 public use32 class=CODE FLAT
%define DATA _DATA align=4 public use32 class=DATA FLAT %define SEG_DATA _DATA align=4 public use32 class=DATA FLAT
%define CONST CONST2 align=4 public use32 class=DATA FLAT %define SEG_CONST CONST2 align=4 public use32 class=DATA FLAT
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]

View File

@@ -123,7 +123,7 @@ _texData$ equ 24 + STACKOFFSET
; ;
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
@@ -342,7 +342,7 @@ endp
; ;
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
@@ -533,7 +533,7 @@ endp
;segment TEXT ;segment SEG_TEXT
ALIGN 32 ALIGN 32

View File

@@ -64,7 +64,7 @@ CPUTypeP6 equ 6h
;;; References to external data: ;;; References to external data:
segment TEXT segment SEG_TEXT
;; ;;
;; _cpu_detect_asm - detect the type of CPU ;; _cpu_detect_asm - detect the type of CPU
;; ;;
@@ -274,7 +274,6 @@ UnknownVendor:
mov eax, 0ffffffffh mov eax, 0ffffffffh
jmp DoneCpu jmp DoneCpu
endp endp

View File

@@ -108,11 +108,11 @@ extrn _grValidateState
movd [fifo], mm1 ; store current param | previous param movd [fifo], mm1 ; store current param | previous param
%ENDMACRO ; WRITE_MM1LOW_FIFO %ENDMACRO ; WRITE_MM1LOW_FIFO
segment DATA segment SEG_DATA
One DD 1.0 One DD 1.0
Area DD 0 Area DD 0
segment CONST segment SEG_CONST
$T2003 DD 12288.0 $T2003 DD 12288.0
$T2005 DD 1.0 $T2005 DD 1.0
$T2006 DD 256.0 $T2006 DD 256.0
@@ -150,7 +150,7 @@ Y equ 4
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
PROC_TYPE clip_nocull_invalid PROC_TYPE clip_nocull_invalid

View File

@@ -31,11 +31,11 @@ extrn _grCommandTransportMakeRoom, 12
;;; include listing.inc ;;; include listing.inc
%INCLUDE "fxgasm.h" %INCLUDE "fxgasm.h"
segment CONST segment SEG_CONST
ALIGN 8 ALIGN 8
_F256_F256 DD 256.0, 256.0 _F256_F256 DD 256.0, 256.0
segment DATA segment SEG_DATA
ALIGN 8 ALIGN 8
btab DD 0, 0, 0, 0, 0, 0, 0, 0 btab DD 0, 0, 0, 0, 0, 0, 0, 0
atab DD 0, 0, 0, 0, 0, 0, 0, 0 atab DD 0, 0, 0, 0, 0, 0, 0, 0
@@ -44,7 +44,7 @@ strideinbytes DD 0
vertices DD 0 vertices DD 0
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
%define _mode 20 %define _mode 20
@@ -2143,14 +2143,14 @@ endp
;;; include listing.inc ;;; include listing.inc
%INCLUDE "fxgasm.h" %INCLUDE "fxgasm.h"
segment CONST segment SEG_CONST
_F1 DD 1.0 _F1 DD 1.0
_F256 DD 256.0 _F256 DD 256.0
_VPF1 DD 1.0 _VPF1 DD 1.0
_VPF256 DD 256.0 _VPF256 DD 256.0
segment DATA segment SEG_DATA
vSize DD 0 vSize DD 0
ccoow DD 0 ccoow DD 0
packetVal DD 0 packetVal DD 0
@@ -2162,7 +2162,7 @@ vPtr0 DD 0
vPtr1 DD 0 vPtr1 DD 0
vPtr2 DD 0 vPtr2 DD 0
segment TEXT segment SEG_TEXT
_pktype equ 20 _pktype equ 20
_type equ 24 _type equ 24

View File

@@ -35,7 +35,7 @@
extrn _GlideRoot extrn _GlideRoot
segment TEXT segment SEG_TEXT
align 4 align 4
proc grDrawTriangle, 12 proc grDrawTriangle, 12

View File

@@ -102,9 +102,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WIN32 %if XOS == XOS_WIN32
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rdata align=32 %define SEG_CONST .rdata align=32
%macro SET_TLSBASE 1 %macro SET_TLSBASE 1
mov %1, dword [fs:18h] ; get thread local storage base pointer mov %1, dword [fs:18h] ; get thread local storage base pointer
@@ -125,9 +125,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_DJGPP %if XOS == XOS_DJGPP
%define TEXT .text %define SEG_TEXT .text
%define DATA .data %define SEG_DATA .data
%define CONST .rodata %define SEG_CONST .rodata
extrn threadValueDJGPP extrn threadValueDJGPP
@@ -148,9 +148,9 @@ extrn threadValueDJGPP
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_LINUX %if XOS == XOS_LINUX
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rodata align=32 %define SEG_CONST .rodata align=32
extrn threadValueLinux extrn threadValueLinux
@@ -171,9 +171,9 @@ extrn threadValueLinux
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WATCD %if XOS == XOS_WATCD
%define TEXT _TEXT align=1 public use32 class=CODE FLAT %define SEG_TEXT _TEXT align=1 public use32 class=CODE FLAT
%define DATA _DATA align=4 public use32 class=DATA FLAT %define SEG_DATA _DATA align=4 public use32 class=DATA FLAT
%define CONST CONST2 align=4 public use32 class=DATA FLAT %define SEG_CONST CONST2 align=4 public use32 class=DATA FLAT
extrn threadValueDJGPP extrn threadValueDJGPP

View File

@@ -111,7 +111,7 @@ _texData$ equ 24 + STACKOFFSET
; ;
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
@@ -327,7 +327,7 @@ endp
; ;
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
@@ -518,7 +518,7 @@ endp
;segment TEXT ;segment SEG_TEXT
ALIGN 32 ALIGN 32

View File

@@ -200,11 +200,11 @@ extrn halStore32, 8
%ENDMACRO ; WRITE_MM1LOW_FIFO %ENDMACRO ; WRITE_MM1LOW_FIFO
segment DATA segment SEG_DATA
One DD 1.0 One DD 1.0
Area DD 0 Area DD 0
segment CONST segment SEG_CONST
$T2003 DD 12288.0 $T2003 DD 12288.0
$T2005 DD 1.0 $T2005 DD 1.0
$T2006 DD 256.0 $T2006 DD 256.0
@@ -244,7 +244,7 @@ Y equ 4
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
PROC_TYPE clip_nocull_invalid PROC_TYPE clip_nocull_invalid

View File

@@ -33,11 +33,11 @@ extrn _grCommandTransportMakeRoom, 12
;;; include listing.inc ;;; include listing.inc
%INCLUDE "fxgasm.h" %INCLUDE "fxgasm.h"
segment CONST segment SEG_CONST
ALIGN 8 ALIGN 8
_F256_F256 DD 256.0, 256.0 _F256_F256 DD 256.0, 256.0
segment DATA segment SEG_DATA
ALIGN 8 ALIGN 8
btab DD 0, 0, 0, 0, 0, 0, 0, 0 btab DD 0, 0, 0, 0, 0, 0, 0, 0
atab DD 0, 0, 0, 0, 0, 0, 0, 0 atab DD 0, 0, 0, 0, 0, 0, 0, 0
@@ -46,7 +46,7 @@ strideinbytes DD 0
vertices DD 0 vertices DD 0
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
proc _grDrawTriangles_3DNow, 12 proc _grDrawTriangles_3DNow, 12
@@ -2193,11 +2193,11 @@ endp
;;; include listing.inc ;;; include listing.inc
%INCLUDE "fxgasm.h" %INCLUDE "fxgasm.h"
segment CONST segment SEG_CONST
ALIGN 8 ALIGN 8
_F256_F256 DD 43800000h, 43800000h ; 256 | 256 _F256_F256 DD 43800000h, 43800000h ; 256 | 256
segment DATA segment SEG_DATA
ALIGN 8 ALIGN 8
btab DD 0, 0, 0, 0, 0, 0, 0, 0 btab DD 0, 0, 0, 0, 0, 0, 0, 0
atab DD 0, 0, 0, 0, 0, 0, 0, 0 atab DD 0, 0, 0, 0, 0, 0, 0, 0
@@ -2206,7 +2206,7 @@ strideinbytes DD 0
vertices DD 0 vertices DD 0
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
proc _grDrawTriangles_SSE, 12 proc _grDrawTriangles_SSE, 12
@@ -4393,14 +4393,14 @@ endp
;;; include listing.inc ;;; include listing.inc
%INCLUDE "fxgasm.h" %INCLUDE "fxgasm.h"
segment CONST segment SEG_CONST
_F1 DD 1.0 _F1 DD 1.0
_F256 DD 256.0 _F256 DD 256.0
_VPF1 DD 1.0 _VPF1 DD 1.0
_VPF256 DD 256.0 _VPF256 DD 256.0
segment DATA segment SEG_DATA
vSize DD 0 vSize DD 0
ccoow DD 0 ccoow DD 0
packetVal DD 0 packetVal DD 0
@@ -4412,7 +4412,7 @@ vPtr0 DD 0
vPtr1 DD 0 vPtr1 DD 0
vPtr2 DD 0 vPtr2 DD 0
segment TEXT segment SEG_TEXT
_pktype equ 20 _pktype equ 20
_type equ 24 _type equ 24

View File

@@ -35,7 +35,7 @@
extrn _GlideRoot extrn _GlideRoot
segment TEXT segment SEG_TEXT
align 4 align 4
proc grDrawTriangle, 12 proc grDrawTriangle, 12

View File

@@ -103,9 +103,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WIN32 %if XOS == XOS_WIN32
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rdata align=32 %define SEG_CONST .rdata align=32
%if USE_STANDARD_TLS_FUNC == 1 %if USE_STANDARD_TLS_FUNC == 1
@@ -145,9 +145,9 @@ extrn getThreadValue
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_DJGPP %if XOS == XOS_DJGPP
%define TEXT .text %define SEG_TEXT .text
%define DATA .data %define SEG_DATA .data
%define CONST .rodata %define SEG_CONST .rodata
extrn threadValueDJGPP extrn threadValueDJGPP
@@ -168,9 +168,9 @@ extrn threadValueDJGPP
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_LINUX %if XOS == XOS_LINUX
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rodata align=32 %define SEG_CONST .rodata align=32
extrn threadValueLinux extrn threadValueLinux
@@ -191,9 +191,9 @@ extrn threadValueLinux
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WATCD %if XOS == XOS_WATCD
%define TEXT _TEXT align=1 public use32 class=CODE FLAT %define SEG_TEXT _TEXT align=1 public use32 class=CODE FLAT
%define DATA _DATA align=4 public use32 class=DATA FLAT %define SEG_DATA _DATA align=4 public use32 class=DATA FLAT
%define CONST CONST2 align=4 public use32 class=DATA FLAT %define SEG_CONST CONST2 align=4 public use32 class=DATA FLAT
extrn threadValueDJGPP extrn threadValueDJGPP

View File

@@ -114,7 +114,7 @@ _texData$ equ 24 + STACKOFFSET
; ;
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
@@ -327,7 +327,7 @@ endp
; ;
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
segment TEXT segment SEG_TEXT
ALIGN 32 ALIGN 32
@@ -518,7 +518,7 @@ endp
;segment TEXT ;segment SEG_TEXT
ALIGN 32 ALIGN 32

View File

@@ -44,7 +44,7 @@ CPUTypeP6 equ 6h
;;; References to external data: ;;; References to external data:
segment TEXT segment SEG_TEXT
;; ;;
;; _cpu_detect_asm - detect the type of CPU ;; _cpu_detect_asm - detect the type of CPU
;; ;;

View File

@@ -65,7 +65,7 @@ extrn _trisetup, 12
%define fsubs fsub DWORD %define fsubs fsub DWORD
%define fmuls fmul DWORD %define fmuls fmul DWORD
segment DATA segment SEG_DATA
One DD 1.0 One DD 1.0
Area DD 0 Area DD 0
dxAB DD 0 dxAB DD 0
@@ -81,7 +81,7 @@ segment DATA
snap_xc DD 0 snap_xc DD 0
snap_yc DD 0 snap_yc DD 0
segment CONST segment SEG_CONST
SNAP_BIAS DD 786432.0 SNAP_BIAS DD 786432.0
; Ugly, but seems to workaround the problem with locally defined ; Ugly, but seems to workaround the problem with locally defined
@@ -240,7 +240,7 @@ Y equ 4
%define i edx ; i = dlp->i %define i edx ; i = dlp->i
%define tmpy ebp ; temp Y storage %define tmpy ebp ; temp Y storage
segment TEXT segment SEG_TEXT
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
@@ -775,7 +775,7 @@ endp
; we may not write to the PCI buffer without stalling. This causes ; we may not write to the PCI buffer without stalling. This causes
; the amount of clocks the workaround adds to the loop to vary in the ; the amount of clocks the workaround adds to the loop to vary in the
; following way++: ; following way++:
; ;
; CPU Bus/CPU Clock Total Bus Total Penalty ; CPU Bus/CPU Clock Total Bus Total Penalty
; Ratio* Clocks Since (add to later clocks) ; Ratio* Clocks Since (add to later clocks)
;====================================================================== ;======================================================================

View File

@@ -50,14 +50,13 @@ extrn _grValidateState
extrn _grVpDrawTriangle, 12 extrn _grVpDrawTriangle, 12
extrn _trisetup, 12 extrn _trisetup, 12
; some useful floating load and store macros <ala gmt> ; some useful floating load and store macros <ala gmt>
%define flds fld DWORD %define flds fld DWORD
%define fadds fadd DWORD %define fadds fadd DWORD
%define fsubs fsub DWORD %define fsubs fsub DWORD
%define fmuls fmul DWORD %define fmuls fmul DWORD
segment DATA segment SEG_DATA
One DD 1.0 One DD 1.0
Area DD 0 Area DD 0
dxAB DD 0 dxAB DD 0
@@ -73,7 +72,7 @@ segment DATA
snap_xc DD 0 snap_xc DD 0
snap_yc DD 0 snap_yc DD 0
segment CONST segment SEG_CONST
SNAP_BIAS DD 786432.0 SNAP_BIAS DD 786432.0
; Ugly, but seems to workaround the problem with locally defined ; Ugly, but seems to workaround the problem with locally defined
@@ -205,7 +204,7 @@ Y equ 4
%define i edx ; i = dlp->i %define i edx ; i = dlp->i
%define tmpy ebp ; temp Y storage %define tmpy ebp ; temp Y storage
segment TEXT segment SEG_TEXT
;-------------------------------------------------------------------------- ;--------------------------------------------------------------------------
@@ -601,7 +600,6 @@ no_padding0:
mov eax, 1h ; return 1 (triangle drawn) mov eax, 1h ; return 1 (triangle drawn)
ret ret
align 4 align 4
zero_area: zero_area:
backfaced: backfaced:
@@ -748,7 +746,7 @@ endp
; we may not write to the PCI buffer without stalling. This causes ; we may not write to the PCI buffer without stalling. This causes
; the amount of clocks the workaround adds to the loop to vary in the ; the amount of clocks the workaround adds to the loop to vary in the
; following way++: ; following way++:
; ;
; CPU Bus/CPU Clock Total Bus Total Penalty ; CPU Bus/CPU Clock Total Bus Total Penalty
; Ratio* Clocks Since (add to later clocks) ; Ratio* Clocks Since (add to later clocks)
;====================================================================== ;======================================================================

View File

@@ -102,9 +102,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WIN32 %if XOS == XOS_WIN32
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rdata align=32 %define SEG_CONST .rdata align=32
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -117,9 +117,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_DJGPP %if XOS == XOS_DJGPP
%define TEXT .text %define SEG_TEXT .text
%define DATA .data %define SEG_DATA .data
%define CONST .rodata %define SEG_CONST .rodata
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -132,9 +132,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_LINUX %if XOS == XOS_LINUX
%define TEXT .text align=32 %define SEG_TEXT .text align=32
%define DATA .data align=32 %define SEG_DATA .data align=32
%define CONST .rodata align=32 %define SEG_CONST .rodata align=32
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]
@@ -147,9 +147,9 @@
;--------------------------------------- ;---------------------------------------
%if XOS == XOS_WATCD %if XOS == XOS_WATCD
%define TEXT _TEXT align=1 public use32 class=CODE FLAT %define SEG_TEXT _TEXT align=1 public use32 class=CODE FLAT
%define DATA _DATA align=4 public use32 class=DATA FLAT %define SEG_DATA _DATA align=4 public use32 class=DATA FLAT
%define CONST CONST2 align=4 public use32 class=DATA FLAT %define SEG_CONST CONST2 align=4 public use32 class=DATA FLAT
%macro GET_GC 0 %macro GET_GC 0
mov gc, [_GlideRoot + curGC] mov gc, [_GlideRoot + curGC]