summaryrefslogtreecommitdiff
path: root/gmp-impl.h
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2001-07-17 02:06:34 +0200
committerKevin Ryde <user42@zip.com.au>2001-07-17 02:06:34 +0200
commit96077f938f56ad9c6664ca9ec5418d1d70dd61ab (patch)
tree7fb2347f636dd6d671ac2c10eed3ca45aa910bf9 /gmp-impl.h
parent6ba5d25ccbdc1e9a7a9d0ed197b157371d1b81c6 (diff)
downloadgmp-96077f938f56ad9c6664ca9ec5418d1d70dd61ab.tar.gz
* gmp-h.in, gmp-impl.h, acinclude.m4: Remove __GMP_ASM_L and
__GMP_LSYM_PREFIX, revert to ASM_L in gmp-impl.h and AC_DEFINE of LSYM_PREFIX.
Diffstat (limited to 'gmp-impl.h')
-rw-r--r--gmp-impl.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/gmp-impl.h b/gmp-impl.h
index 473074515..80d03be4b 100644
--- a/gmp-impl.h
+++ b/gmp-impl.h
@@ -250,7 +250,6 @@ void __gmp_tmp_debug_free _PROTO ((const char *, int, struct tmp_debug_t **));
/* From gmp.h, nicer names for internal use. */
#define MPN_CMP(result, xp, yp, size) __GMPN_CMP(result, xp, yp, size)
-#define ASM_L(name) __GMP_ASM_L(name)
#define ABS(x) ((x) >= 0 ? (x) : -(x))
#define MIN(l,o) ((l) < (o) ? (l) : (o))
@@ -436,6 +435,19 @@ void __gmp_default_free _PROTO ((void *, size_t));
#endif
+/* ASM_L gives a local label for a gcc asm block, for use when temporary
+ local labels like "1:" might not be available, which is the case for
+ instance on the x86s (the SCO assembler doesn't support them).
+
+ The label generated is made unique by including "%=" which is a unique
+ number for each insn. This ensures the same name can be used in multiple
+ asm blocks, perhaps via a macro. Since jumps between asm blocks are not
+ allowed there's no need for a label to be usable outside a single
+ block. */
+
+#define ASM_L(name) LSYM_PREFIX "asm_%=_" #name
+
+
#if defined (__GNUC__) && defined (__i386__)
#if 0
/* FIXME: Check that these actually improve things.